Programmazione II. Lezione 2. Daniele Sgandurra 22/10/2010.
|
|
- Fulvio Salvi
- 4 anni fa
- Visualizzazioni
Transcript
1 Programmazione II Lezione 2 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 22/10/2010 1/40 Programmazione II Lezione 2 22/10/2010
2 Sommario 1 2/40 Programmazione II Lezione 2 22/10/2010
3 Parte I 3/40 Programmazione II Lezione 2 22/10/2010
4 Definizioni Macchina fisica (calcolatore) Dispositivo elettronico capace di eseguire algoritmi opportunamente formalizzati in un linguaggio comprensibile all esecutore. Una macchina astratta è un astrazione del concetto di calcolatore. Gli algoritmi devono essere formalizzati in termini di un linguaggio di programmazione L. La sintassi di L permette di usare un certo insieme infinito di costrutti (istruzioni) che permettono di comporre i programmi. 4/40 Programmazione II Lezione 2 22/10/2010
5 Definizioni Linguaggio Macchina L Linguaggio compreso dalla macchina. Macchina astratta per L (M L) Insieme di algoritmi e strutture dati che permettono di memorizzare ed eseguire programmi scritti in L. Programma Insieme di istruzioni scritte in L. 5/40 Programmazione II Lezione 2 22/10/2010
6 Struttura di una Macchina Astratta Una generica macchina astratta M L è composta da: una memoria: per contenere i dati e i programmi; un interprete: componente che esegue le istruzioni contenute nei programmi. 6/40 Programmazione II Lezione 2 22/10/2010
7 Struttura di una Macchina Astratta 7/40 Programmazione II Lezione 2 22/10/2010
8 Interprete Componente della macchina che esegue le operazioni contenute nei programmi: 1 Elaborazione dati primitivi: es.: operazioni aritmetiche su numeri interi. 2 Controllo della sequenza d esecuzione: gestione salti (sotto determinate condizioni); PC (program counter) registro con la prossima istruzione. 3 Controllo trasferimento dati: indirizzamento e ordine trasferimento dati; stack e operatori dedicati. 4 Gestione della memoria: allocazione della memoria per dati/programmi; opportune strutture dati (es. pile); operazioni per la gestione dinamica. 8/40 Programmazione II Lezione 2 22/10/2010
9 Ciclo di Esecuzione di un Generico Interprete 9/40 Programmazione II Lezione 2 22/10/2010
10 Ciclo di Esecuzione di un Generico Interprete 1 Acquisizione da memoria della prossima istruzione. 2 Decodifica: operazione e operandi. 3 Acquisizione operandi. 4 Esecuzione operazione. 5 Memorizzazione risultato. 6 Se non era l istruzione HALT: passa all istruzione successiva (vai a 1). 10/40 Programmazione II Lezione 2 22/10/2010
11 Una macchina astratta M corrisponde ad un linguaggio L (il suo linguaggio macchina). Dato un linguaggio L ci sono infinite macchine che possono adottare lo stesso linguaggio L: implementazione dell interprete; strutture dati utilizzate. Implementare un linguaggio L = realizzare una macchina astratta che abbia L come linguaggio macchina. 11/40 Programmazione II Lezione 2 22/10/2010
12 Realizzazione in Hardware Realizzazione tramite dispositivi fisici: Vantaggi: memorie, unità aritmetico-logiche, bus, reti, etc. esecuzione molto veloce; linguaggi a basso livello; linguaggi dedicati. Svantaggi: non adatta per linguaggi di alto livello; complessità della progettazione; impossibile da modificare. Spesso influenzata dalla struttura dei linguaggi ad alto livello: es.: scelta di operazioni primitive e strutture dati che permettano di realizzare l interprete per il linguaggio di alto livello in maniera semplice ed efficiente. 12/40 Programmazione II Lezione 2 22/10/2010
13 Realizzazione in Software Realizzazione mediante programmi in un altro linguaggio L (supposto già implementato). Data una macchina M L per L, si può realizzare una macchina M L per L simulando, con un programma in linguaggio L, i costrutti di L, cioè le funzionalità di M L. Vantaggi: massima flessibilità. Svantaggi: prestazioni inferiori. L esecuzione passa per l interpretazione sulla macchina M L, comunque essa sia stata realizzata (HW, SW, FW). 13/40 Programmazione II Lezione 2 22/10/2010
14 Realizzazione in Firmware Realizzazione intermedia ottenuta attraverso microprogrammi che simulano algoritmi e strutture dati di M L. Simile al caso precedente ma con una macchina intermedia che è realizzata come macchina fisica (con linguaggi a basso livello: micro-linguaggi). Risiedono su (EP)ROM. Vantaggi: elevata velocità. Svantaggi: minore flessibilità; maggiore complessità della programmazione opportuni dispositivi di scrittura su ROM. 14/40 Programmazione II Lezione 2 22/10/2010
15 Implementazione Pura Caso ideale: realizzazione di M L per L. Data una macchina astratta Mo Lo (macchina ospite) per il linguaggio Lo, la traduzione da L a Lo può essere: implicita: implementazione interpretativa pura: realizzata attraverso programmi in Lo per simulare M L; esecuzione della traduzione. esplicita: implementazione compilativa pura: traduzione dei programmi in L in programmi in Lo. 15/40 Programmazione II Lezione 2 22/10/2010
16 Notazione Pedice L: costrutto che si riferisce al linguaggio L. Apice L : un programma scritto in L. Prog L : insieme dei possibili programmi in linguaggio L. D: dominio dei dati in input e output. Programma in L: tale che P L : D D P L (input) = Output quando termina, altrimenti la funzione è indefinita. 16/40 Programmazione II Lezione 2 22/10/2010
17 Implementazione Interpretativa Pura 17/40 Programmazione II Lezione 2 22/10/2010
18 Implementazione Interpretativa Pura L interprete per M L è realizzato tramite istruzioni in Lo. Programma scritto in Lo (denotato con I Lo L ) che sa interpretare tutte le istruzioni di L: per eseguire un programma P L in linguaggio L per un certo input D D, si esegue I Lo L sulla macchina Mo Lo con input P L e D. Interprete I Lo L Programma che calcola la funzione parziale: I Lo L : (Prog L D) D tale che I Lo L (P L, Input) = P L (Input) = Output. 18/40 Programmazione II Lezione 2 22/10/2010
19 Implementazione Interpretativa Pura Un programma può essere usato come input per un altro programma: un programma è un insieme di istruzioni, rappresentate da un certo insieme di simboli (sequenze di bit). Procedimento di decodifica: IL Lo esegue un istruzione di L tramite un certo insieme di istruzioni di Lo (istruzioni eseguite direttamente). Mo Lo non è specificata: può essere di qualunque natura. 19/40 Programmazione II Lezione 2 22/10/2010
20 Implementazione Compilativa Pura 20/40 Programmazione II Lezione 2 22/10/2010
21 Implementazione Compilativa Pura Il programma in L è tradotto esplicitamente in un programma scritto in Lo eseguendo un programma, il compilatore, denotato con C L,Lo: L linguaggio sorgente; Lo linguaggio oggetto; per eseguire P L con un dato di input D, si esegue C L,Lo con input P L producendo Pc Lo. Successivamente si esegue Pc Lo su Mo Lo con input D. Compilatore C L,Lo Programma che realizza una funzione: C L,Lo = Prog L Prog Lo tale che, dato un programma P L, se: C L,Lo(P L ) = Pc Lo allora, D D: P L (D) = Pc Lo (D) 21/40 Programmazione II Lezione 2 22/10/2010
22 Implementazione Compilativa Pura La fase di traduzione è separata dalla fase di esecuzione. Il programma (risultato della compilazione) può essere eseguito successivamente. Il compilatore può anche essere eseguito su un altra macchina astratta che usa un linguaggio diverso (deve però produrre codice eseguibile su Mo Lo). 22/40 Programmazione II Lezione 2 22/10/2010
23 Confronto Implementazione interpretativa: Svantaggi: Vantaggi: scarsa efficienza (overhead per la decodifica); replica della traduzione. maggiore flessibilità; facilità di sviluppo e debugging; memoria ridotta (solo sorgente). Implementazione compilativa: Svantaggi: Vantaggi: minore flessibilità; perdita di informazioni sul sorgente; minore facilità di debugging degli errori run-time. esecuzione più efficiente; una sola traduzione 23/40 Programmazione II Lezione 2 22/10/2010
24 Implementazione con Macchina Intermedia 24/40 Programmazione II Lezione 2 22/10/2010
25 Livelli di Interpretazione M L = Mi Li : implementazione puramente interpretativa: M L Mi Li Mo Lo: se l interprete della macchina intermedia Mi Li è molto diverso da quello della Mo Lo allora l implementazione è di tipo interpretativo; non tutti i costrutti di L vanno simulati: per alcuni (pochi) il corrispettivo è diretto in Lo. se l interprete della macchina intermedia Mi Li è molto simile a quello della Mo Lo allora l implementazione è di tipo compilativo: molti costrutti hanno un corrispettivo: pochi (es. I/O) vanno simulati in Lo. Mi Li = Mo Lo implementazione puramente compilativa. Per la precisione: ogni linguaggio può essere implementato con entrambe le tecniche, per cui si dovrebbe parlare di implementazione interpretativa o compilativa e non di linguaggio interpretato o compilato. 25/40 Programmazione II Lezione 2 22/10/2010
26 Just-in-Time Compilation In alcuni casi, la compilazione può essere rimandata all ultimo momento possibile. Lisp e Prolog invocano il compilatore on-the-fly, per tradurre codice sorgente appena creato in linguaggio macchina, o per ottimizzarlo per un particolare input. Java definisce una forma di codice intermedia chiamata bytecode: interpreti o just-in-time compiler che traducono il bytecode in linguaggio macchina prima di ogni esecuzione. I compilatori C# producono il CIL (.NET Common Intermediate Language) che viene tradotto in linguaggio macchina prima di essere eseguito. 26/40 Programmazione II Lezione 2 22/10/2010
27 Supporto a Run-Time (SRT) Insieme dei programmi che estendono le funzionalità di Mo e che simulano le funzionalità di Li (e quindi di L). Per alcuni linguaggi la macchina intermedia non è esplicita. Per altri la macchina intermedia è definita formalmente per questioni di portabilità: applicata per la prima volta per il Pascal (P-code); analogamente in Java il bytecode è interpretato dalla JVM. L implementazione compilativa per una nuova architettura hardware è più complessa di quella interpretativa. 27/40 Programmazione II Lezione 2 22/10/2010
28 Librerie e Linking Il compilatore usa un linker per comporre le opportune librerie di routine (es, funzioni matematiche) nel programma finale. 28/40 Programmazione II Lezione 2 22/10/2010
29 Gerarchia di Ogni volta che scriviamo un programma P in un linguaggio L definiamo un nuovo linguaggio Lp: nuova macchina astratta: nuove funzionalità messe a disposizione da P. Gerarchia di macchine M L0, M L1,..., M Ln. Ogni macchina M Li è implementata su M Li 1 (utilizza sue funzionalità) e ne offre a quella di livello superiore M Li+1 : mascherare i livelli inferiori: M Li non può accedere direttamente alle risorse delle macchine sottostanti ma solo usare quello che fornisce il linguaggio L i 1 ; permette di dominare la complessità; consente l indipendenza dei vari livelli: una modifica su un livello non ha influenza sugli altri livelli. 29/40 Programmazione II Lezione 2 22/10/2010
30 Gerarchia di 30/40 Programmazione II Lezione 2 22/10/2010
31 Valutazione Parziale Tecnica di trasformazione di programmi all interno di uno stesso linguaggio per migliorare l efficienza. Valutare un programma del quale sia nota una parte degli input, per ottenere un programma specializzato per tale input (più efficiente). Valutatore Parziale Programma che realizza una funzione Peval L : (Prog L D) Prog L tale che dato un programma P scritto in L che accetta due argomenti, il risultato della valutazione parziale di P rispetto ad un primo input D 1 Peval L(P, D 1) = P è il programma P che accetta un solo argomento e che, per qualsiasi input Y, si ha: I L(P, (D 1, Y )) = I L(P, Y ) dove I L è l interprete del linguaggio. 31/40 Programmazione II Lezione 2 22/10/2010
32 32/40 Programmazione II Lezione 2 22/10/2010
33 Programma di Esempio: GCD program gcd(input, output); var i, j: integer; begin read(i,j); // get i & j from read while i<>j do if i>j then i := i-j; else j := j-i; writeln(i); end. 33/40 Programmazione II Lezione 2 22/10/2010
34 Scanning Lo scanner legge caratteri ( p r o g r a m g c d etc). Suddivide il programma in token, che sono le più piccole unità significative. 34/40 Programmazione II Lezione 2 22/10/2010
35 Parsing Il parser organizza i token in una grammatica libera da contesto (sintassi). Parse tree: rappresenta i costrutti linguistici tramite i loro costituenti base. 35/40 Programmazione II Lezione 2 22/10/2010
36 Analisi Semantica L analisi semantica deduce il significato di un programma tramite la costruzione di un abstract syntax tree (AST) che rimuove token estranei. L analizzatore semantico crea e mantiene una symbol table: mappa identificatori con informazioni su di essi (es., struttura interna, variabili locali/globali, etc). 36/40 Programmazione II Lezione 2 22/10/2010
37 Abstract Syntax Tree 37/40 Programmazione II Lezione 2 22/10/2010
38 Analisi Semantica L analizzatore semantico può catturare problemi non rilevabili dal parser, per es. si assicura che: gli identificatori siano dichiarati prima del loro uso; nessun identificatore sia usato in maniera inappropriata (es., sommare un intero a una stringa); una chiamata a subroutine contenga il numero esatto e il tipo corretto degli argomenti. 38/40 Programmazione II Lezione 2 22/10/2010
39 Generazione del Codice La fase di generazione del codice usa come input l abstract syntax tree e la symbol table e produce il codice macchina. Questa fase produce codice corretto ma non necessariamente veloce. L ottimizzazione serve per migliorare le performance del programma: machine-independent: es. mantenere le variabili i e j nei registri nel loop; machine-dependent: es. assegnare le variabili i e j a specifici registri. 39/40 Programmazione II Lezione 2 22/10/2010
40 Riferimenti [1] Linguaggi di programmazione: principi e paradigmi (Cap 1). Maurizio Gabbrielli, Simone Martini. 40/40 Programmazione II Lezione 2 22/10/2010
Macchine Astratte. Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari. Linguaggi di Programmazione feb, 2016
Macchine Astratte Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari Linguaggi di Programmazione 010194 29 feb, 2016 Sommario 1 Introduzione Macchina astratta Interprete Implementazione
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione Corso di Laurea in ITPS a.a. 07-08 Macchine Astratte Valeria Carofiglio (Questo materiale è una rivisitazione del materiale prodotto da Nicola Fanizzi) Contenuti Macchine Astratte
DettagliCorso di Linguaggi di Programmazione + Laboratorio
Corso di inguaggi di Programmazione + aboratorio Capitolo 1 - Introduzione Si ringrazia il Dott. Marco de Gemmis per la collaborazione nella predisposizione del materiale didattico Apprendimento di un
DettagliTraduzione ed Interpretazione
Traduzione ed Interpretazione Queste sconosciute Siano L Linguaggio ad alto livello M L Macchina astratta di L M 0 Macchina ospite Implementazione interpretativa di L Implementazione compilativa di L Simulazione
DettagliTraduzione ed Interpretazione. Queste sconosciute
Traduzione ed Interpretazione Queste sconosciute Siano L Linguaggio ad alto livello M L M 0 Macchina astratta di L Macchina ospite Implementazione interpretativa di L Simulazione software di M L su M 0
DettagliMacchina Astratta: struttura e realizzazione.
Macchina Astratta: struttura e realizzazione. Sommario Macchina Astratta e l interprete di Macchina Hight e Low Level Languages Implementazione di un Linguaggio Macchina Intermedia Gerarchia di Macchine
DettagliMacchine Astratte. Definizione e tipi di implementazione
Macchine Astratte Definizione e tipi di implementazione Macchine astratte Sono un insieme di concetti che sintetizzano le caratteristiche base di ogni linguaggio di programmazione Sono un modello di riferimento
DettagliMacchine Astratte. Luca Abeni. February 22, 2017
Macchine Astratte February 22, 2017 Architettura dei Calcolatori - 1 Un computer è composto almeno da: Un processore (CPU) Esegue le istruzioni macchina Per fare questo, può muovere dati da/verso la memoria
DettagliMacchine astratte, linguaggi, interpretazione, compilazione
Macchine astratte, linguaggi, interpretazione, compilazione 1 Macchine astratte una collezione di strutture dati ed algoritmi in grado di memorizzare ed eseguire programmi componenti della macchina astratta
DettagliMacchine astratte, linguaggi, interpretazione, compilazione
Macchine astratte, linguaggi, interpretazione, compilazione 1 Macchine astratte una collezione di strutture dati ed algoritmi in grado di memorizzare ed eseguire programmi componenti della macchina astratta
DettagliMacchine astratte, linguaggi, interpretazione, compilazione
Macchine astratte, linguaggi, interpretazione, compilazione 1 Macchine astratte una collezione di strutture dati ed algoritmi in grado di memorizzare ed eseguire programmi componenti della macchina astratta
DettagliTraduzione e interpretazione
Traduzione e interpretazione Parte dei lucidi sono stati gentilmente forniti dal Prof. Salza VII.1 Linguaggi di programmazione Linguaggi ad alto livello Maggiore espressività Maggiore produttività Migliore
DettagliLinguaggi di programmazione
Linguaggi di programmazione Introduzione al corso Introduzione al corso Linguaggi di programmazione 1 / 1 Una presentazione generale dei linguaggi di programmazione: Completare le conoscenze acquisite
DettagliLinguaggi di alto livello, compilatori e interpreti
Linguaggi di alto livello, compilatori e interpreti Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Limiti del linguaggio assembler Esempio: gestione
DettagliIl linguaggio di programmazione Python
Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani (liverani@mat.uniroma3.it)
DettagliLa Programmazione. Programmare Macchine Astratte Compilazione / Interpretazione Java. Laboratorio di Programmazione - Luca Tesei
La Programmazione Programmare Macchine Astratte Compilazione / Interpretazione Java 1 Programmare vs Usare un computer Esite una grossa differenza e l'ignoranza della stessa genera confusione e incomprensioni
DettagliLa Programmazione. Cos è la programmazione? Concetti preliminari. Programmazione e Laboratorio di Programmazione Luca Tesei 1
La Programmazione Cos è la programmazione? Concetti preliminari Programmazione e Laboratorio di Programmazione Luca Tesei 1 Sommario La programmazione, questa sconosciuta Programmiamo Macchine Astratte
DettagliSommario. La Programmazione. Programmare vs Usare un computer. Programmare vs Usare un computer. Programmi ognidove. Programmi ognidove
Sommario La zione Cos è la programmazione? Concetti preliminari La programmazione, questa sconosciuta Programmiamo Macchine Astratte Linguaggi di basso e alto livello e loro implementazione Esempi: C,
DettagliProgramma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
DettagliArchitettura di un linguaggio dinamico
Parte 3 Architettura di un linguaggio dinamico 1 Compilatori ed interpreti Gli strumenti per la generazione di codice eseguibile sono classificabili in due categorie distinte: Compilatori Interpreti Compilatore:
DettagliMacchine astratte, linguaggi, interpretazione, compilazione
Macchine astratte, linguaggi, interpretazione, compilazione 1 Macchine astratte! una collezione di strutture dati ed algoritmi in grado di memorizzare ed eseguire programmi! componenti della macchina astratta
DettagliMarco Tarini - Università dell'insubria A.A. 2016/17. Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate
Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Astrazione e Macchine Virtuali parte 2: in un tipico calcolatore I livelli nei moderni calcolatori 6. Livello delle applicazioni
Dettaglio Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori
Programma del corso o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori o Elementi di Programmazione Algoritmi e programmi o Algoritmo
DettagliLinguaggi di programmazione
Linguaggi di programmazione Fondamenti di Informatica Daniele Loiacono Ho definito un algoritmo e adesso? Daniele Loiacono Dall algoritmo all esecuzione q Come deve essere formalizzato un algoritmo affinché
DettagliLa Programmazione. Cos è la programmazione? Concetti preliminari
La Programmazione Cos è la programmazione? Concetti preliminari 1 Sommario La programmazione, questa sconosciuta Programmiamo Macchine Astratte Linguaggi di basso e alto livello e loro implementazione
DettagliLinguaggi di alto livello, compilatori e interpreti
Linguaggi di alto livello, compilatori e interpreti Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Il punto della situazione STATO DATI
DettagliMacchina Astratta: struttura e realizzazione.
Macchina Astratta: struttura e realizzazione. Sommario: 6 marzo, 2018 Macchina Astratta e l interprete di Macchina High e Low Level Programming Languages Implementazione di un Linguaggio Macchina Intermedia
DettagliAXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori
AXO - Architettura dei Calcolatori e Sistema Operativo organizzazione strutturata dei calcolatori I livelli I calcolatori sono progettati come una serie di livelli ognuno dei quali si basa sui livelli
DettagliCosa è un programma. Informatica di Base -- R.Gaeta 18
Cosa è un programma Il programma è la scatola nera che risolve il problema computazionale; Il programma è una sequenza di istruzioni che devono essere eseguite; Il programma è la traduzione per il computer
DettagliArchitettura degli Elaboratori
Architettura degli Elaboratori Ciclo di, classificazione e livelli delle architetture di calcolatore Lezioni del Corso di Laurea Triennale in Informatica Per gentilezza del Prof. Sebastiano Pizzutilo (Dipartimento
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio
DettagliProgrammazione II. Lezione 7. Daniele Sgandurra 9/11/2010.
Programmazione II Lezione 7 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 9/11/2010 1/24 Programmazione II Lezione 7 9/11/2010 Sommario 1 Gestione della Memoria 2/24 Programmazione II Lezione 7 9/11/2010
DettagliArgomento del corso: una trattazione generale dei linguaggi di programmazione Completare le conoscenze acquisite finora: Linguaggi di programmazione
Linguaggi di programmazione Introduzione al corso Argomento del corso: una trattazione generale dei linguaggi di programmazione Completare le conoscenze acquisite finora: assembly ARM Scheme Java C Una
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione Linguaggi di Programmazione Programmazione. Insieme delle attività e tecniche svolte per creare un programma (codice sorgente) da far eseguire ad un computer. Che lingua comprende
DettagliCorso di Laurea Magistrale in Ingegneria Informatica A.A Linguaggi Formali e Compilatori. Introduzione. Giacomo PISCITELLI
Corso di Laurea Magistrale in Ingegneria Informatica A.A. 2013-2014 Linguaggi Formali e Compilatori Introduzione Giacomo PISCITELLI Scheduling Orario delle lezioni Martedi ore 15:30-18.30 aula 4 Giovedi
DettagliI Linguaggi di Programmazione
I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio
DettagliPROGRAMMAZIONE Macchine astratte, linguaggi, interpretazione e compilazione
PROGRAMMAZIONE 2 15. Macchine astratte, linguaggi, interpretazione e compilazione 1 Von Neumann: The first draft report Il modello di Von Neumann è alla base della struttura dei computer attuali Due componenti
DettagliLez. 5 La Programmazione. Prof. Salvatore CUOMO
Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente
DettagliINFORMATICA. L informatica comprende:
Varie definizioni: INFORMATICA Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione dell informazione
DettagliELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)
1 LEZIONE 9 ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) Laboratorio di Informatica per l Educazione A. A. 2014/2015 IN SINTESI (ELABORAZIONE) Con i COMPUTER, le macchine diventano
DettagliElementi di programmazione
Fondamenti di Informatica per la Sicurezza a.a. 2003/04 Elementi di programmazione Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università
DettagliIl Software programmabili programma algoritmo
Il Software La proprietà fondamentale dei calcolatori e` quella di essere programmabili cioè in grado di svolgere compiti diversi a seconda delle istruzioni fornite dall utente mediante un programma, ossia
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione Lezione 4 Chiara Braghin braghin@dti.unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 6 Marzo 2007 Regole della grammatica di un linguaggio
DettagliSommario Linguaggi, messaggi e comunicazione. Introduzione ai Linguaggi di Programmazione. Linguaggio (1) Linguaggio (2)
Sommario Linguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione 1 2 Linguaggio (1) Linguaggio (2) Insieme di sequenze di simboli,
DettagliInformatica 1. 4 Programmazione e Sviluppo del software. ing. Luigi Puzone
Informatica 1 4 Programmazione e Sviluppo del software ing. Luigi Puzone Software Software, l insieme di programmi che consentono alla macchina di funzionare e svolgono le funzioni richieste dall utente
DettagliLINGUAGGI DI ALTO LIVELLO
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic Ada
DettagliCorso di Laurea Magistrale in Ingegneria Informatica A.A Linguaggi Formali e Compilatori. Introduzione. Giacomo PISCITELLI
Corso di Laurea Magistrale in Ingegneria Informatica A.A. 2011-2012 Linguaggi Formali e Compilatori Introduzione Giacomo PISCITELLI Scheduling Orario delle lezioni Lunedi ore 15.50-17.30 aula 10 Giovedi
DettagliAlgoritmi, linguaggi e programmi. Emilio Di Giacomo e Walter Didimo
Algoritmi, linguaggi e programmi Emilio Di Giacomo e Walter Didimo Risolvere i problemi Il calcolatore permette di risolvere molti problemi, ma sfortunatamente non tutti Il concetto di algoritmo consente
DettagliIntroduzione al funzionamento di un calcolatore elettronico
1 / 21 Introduzione al funzionamento di un calcolatore elettronico Natascia Piroso 23 settembre 2009 2 / 21 Sommario Che cos è un calcolatore? 1 Che cos è un calcolatore? Definizioni preliminari Il calcolatore
DettagliElementi di programmazione
Elementi di programmazione L E Z I O N I P E R I C O R S I D I I N F O R M A T I C A D E L L I C E O S C I E N T I F I C O O P Z I O N E S C I E N Z E A P P L I C A T E P R O F. D O M E N I C O L O R U
DettagliLINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione Fortran Cobol Basic Pascal Python C
DettagliLinguaggi e Ambienti di Programmazione
Linguaggi e Ambienti di Programmazione Principi e tecniche diffuse che si incontrano spesso nelle applicazioni dell informatica. Compilatori Editor di struttura: riceve in input una sequenza di comandi
DettagliLINGUAGGI DI ALTO LIVELLO
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic
DettagliAlgoritmi, Strutture Dati e Programmi. UD 2.d: Linguaggi Procedurali
Algoritmi, Strutture Dati e Programmi : Linguaggi Procedurali Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno LINGUAGGI PROCEDURALI Curtin, cap. 12.3 1 Linguaggi di Programmazione
DettagliSommario Linguaggi, messaggi e comunicazione. Introduzione ai Linguaggi di Programmazione. Linguaggio. Messaggio
Sommario Linguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione 1 2 Linguaggio Messaggio Insieme di sequenze di simboli, le parole,
DettagliASTRAZIONE. Sono indipendenti dalla macchina hardware sottostante ASTRAZIONE 1
ASTRAZIONE Esistono linguaggi a vari livelli di astrazione Linguaggio Macchina: implica la conoscenza dei metodi utilizzati per la rappresentazione delle informazioni Linguaggio Macchina e Assembler: implica
DettagliAssembly. Linguaggio di programmazione corrispondente al linguaggio macchina P.H. Cap. 2.1, 2.2 e App. A. Linguaggio assembly (App.
Assembly Linguaggio di programmazione corrispondente al linguaggio macchina P.H. Cap. 2.1, 2.2 e App. A 1 Linguaggio assembly (App. A) Rappresentazione simbolica del linguaggio macchina Più comprensibile
DettagliSommario FONDAMENTI DI INFORMATICA. Definizione formale di algoritmo. Informatica e algoritmi. ALGORITMI E LINGUAGGIO PYTHON Introduzione
Università degli Studi di Cagliari Corsi di Laurea in Ingegneria Chimica e Ingegneria Meccanica FONDAMENTI DI INFORMATICA http://www.diee.unica.it/~marcialis/fi A.A. 2017/2018 Sommario Algoritmi, linguaggi
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione E una notazione con cui e possibile descrivere gli algoritmi. Programma: e la rappresentazione di un algoritmo in un particolare linguaggio di programmazione. In generale, ogni
DettagliProgrammazione C Massimo Callisto De Donato
Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE
DettagliLinguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione
Sommario Linguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione 1 2 Linguaggio (1) Linguaggio (2) Insieme di sequenze di simboli,
DettagliDAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione
DAGLI ALGORITMI AI LINGUAGGI Linguaggi di Programmazione E` una notazione con cui e` possibile descrivere gli algoritmi. Programma: e` la rappresentazione di un algoritmo in un particolare linguaggio di
DettagliCorso di Fondamenti di Informatica Linguaggi di Programmazione
di Cassino e del Lazio Meridionale Corso di Informatica Linguaggi di Programmazione Anno Accademico 2014/2015 Francesco Tortorella Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann
DettagliIntroduzione alla programmazione
Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste
DettagliElementi di programmazione
Fondamenti di Informatica per la Sicurezza a.a. 2008/09 Elementi di programmazione Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università
DettagliCalcolatori Elettronici Parte VIII: linguaggi assemblativi
Anno Accademico 2013/2014 Calcolatori Elettronici Parte VIII: linguaggi assemblativi Prof. Riccardo Torlone Universita di Roma Tre Linguaggi di Programmazione Linguaggi ad alto livello Maggiore espressività
DettagliLinguaggi, compilatori e interpreti
Linguaggi, compilatori e interpreti 1 Il codice macchina Ciascun calcolatore ha un ampio insieme di istruzioni che è in grado di eseguire. Le istruzioni vengono rappresentate mediante sequenze di bit 001000100011
DettagliLA CODIFICA DELLE INFORMAZIONI
LA CODIFICA DELLE INFORMAZIONI Linguaggio Elaborazione delle informazioni: operazioni che possono essere effettuate sulle informazioni: inserimento, archiviazione, modifica, ordinamento, calcolo, ecc.
DettagliProgrammazione in Java e gestione della grafica (I modulo) Lezione 2: Prime nozioni di Java
Programmazione in Java e gestione della grafica (I modulo) Lezione 2: Prime nozioni di Java Programmi Un programma è un insieme di istruzioni che il computer deve seguire Usiamo programmi in continuazione
DettagliI linguaggi. Informatica
I linguaggi Informatica Comunicazione La comunicazione è un processo che consente di scambiare informazioni e coinvolge un mittente, un destinatario, un messaggio ed un canale comunicativo. Affinché la
DettagliLinguaggi e traduttori
Operatore giuridico d impresa Informatica Giuridica A.A 2004/2005 I Semestre Linguaggi e traduttori Lezione 3 prof. Monica Palmirani Produzione del Software il software si genera trasformando l algoritmo
DettagliAMBIENTI DI PROGRAMMAZIONE
AMBIENTI DI PROGRAMMAZIONE È l'insieme dei programmi che consentono la scrittura, la verifica e l'esecuzione di nuovi programmi (fasi di sviluppo) Sviluppo di un programma Affinché un programma scritto
DettagliInformatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura
Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina
DettagliSistemi a microprocessore
Sistemi a microprocessore Programma: Segnali analogici e digitali Uso di segnali digitali per la rappresentazione dei numeri interi La memoria e la CPU I programmi in linguaggio macchina La connessione
DettagliLinguaggi, compilatori e interpreti
Linguaggi, compilatori e interpreti Il codice macchina Ciascun calcolatore ha un ampio insieme di istruzioni che è in grado di eseguire. Le istruzioni vengono rappresentate mediante sequenze di bit 000101
DettagliAutomi e Linguaggi Formali
Linguaggi di programmazione Automi e Linguaggi Formali A.A. 2014-2015 Enrico Mezzetti emezzett@math.unipd.it Struttura di un compilatore e fasi principali 01 Ottobre 2014 Linguaggio di programmazione e
DettagliLe etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j
L insieme delle istruzioni (2) Architetture dei Calcolatori (lettere A-I) Istruzioni per operazioni logiche: shift Shift (traslazione) dei bit di una parola a destra o sinistra sll (shift left logical):
DettagliProblema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.
Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la
DettagliProgrammazione: Sommario
Programmazione: Sommario Concetti di Base della Programmazione; Algoritmi; Diagrammi di Flusso; Istruzioni Sequenziali, Condizionali, Cicliche; Logo Variabili, Procedure e Parametri; 1 Il Problema computazionale
DettagliLe istruzioni corrispondono univocamente a quelle macchina, ma vengono espresse tramite nomi simbolici i (parole chiave)
ASTRAZIONE Esistono linguaggi a vari livelli di astrazione Linguaggio Macchina: implica la conoscenza dei metodi utilizzati per la rappresentazione delle informazioni Linguaggio Macchina e Assembler: implica
DettagliProgrammazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica
Programmazione Dipartimento di Matematica Ing. Cristiano Gregnanin Corso di laurea in Matematica 29 febbraio 2016 1 / 28 Linguaggi 2 / 28 Linguaggi 3 / 28 Linguaggi di alto livello Si basano su una macchina
DettagliCOMPILAZIONE. Tarsformazione di linguaggi
COMPILAZIONE Tarsformazione di linguaggi Le fasi della compilazione File sorgente Compilazione File sorgente File sorgente File sorgente Compilazione Compilazione Compilazione Libreria di run-time File
DettagliSommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo
Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi Istruzioni variabili e tipi Sottoprogrammi Strutture di controllo Ricorsione 1 2 Obiettivo Ciclo di sviluppo di programmi Risoluzione
DettagliInformatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione
Informatica 3 LEZIONE 1: Introduzione Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di Informatica 3 Lezione 1- Modulo 1 Introduzione al corso Introduzione Corso di Informatica 3
DettagliEsempio. Le istruzioni corrispondono a quelle di sopra, ma sono scritte in modo simbolico. E indipendente dalla machina
Il compilatore C Astrazione Linguaggio macchina implica la conoscenza dei metodi usati per la rappresentazione dell informazioni nella CPU Linguaggio Assembly è il linguaggio delle istruzioni che possono
DettagliIntroduction. The Structure of a Compiler
Introduction The Structure of a Compiler ISBN 978-88-386-6573-8 Text Books Maurizio Gabbrielli e Simone Martini sono professori ordinari di Informatica presso l'alma Mater Studiorum - Università di Bologna.
DettagliConcetti Introduttivi
Concetti Introduttivi Linguaggi di Programmazione http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Linguaggi di Programmazione Impartiscono
DettagliIntroduzione al Linguaggio C Corso di Informatica Laurea in Fisica
Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica prof. ing. Corrado Santoro A.A. 2009-10 Dai flow-chart ai linguaggi... Abbiamo imparato ad usare uno strumento formale i flowchart per
DettagliJava: un linguaggio per applicazioni di rete
Java: un linguaggio per applicazioni di rete Moreno Falaschi Dipartimento di Ingegneria dell Informazione e Scienze Matematiche Università di Siena March 3, 2014 1 Caratteristiche di Java (SUN) Linguaggio
DettagliLinguaggi, Traduttori e le Basi della Programmazione
Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi
DettagliIstruzioni e linguaggio macchina
Istruzioni e linguaggio macchina I linguaggi macchina sono composti da istruzioni macchina, codificate in binario, con formato ben definito processori diversi hanno linguaggi macchina simili scopo: massimizzare
DettagliC++ Barriera di astrazione. Barriera di astrazione. Basic. Basic. Lisp. Lisp. Pascal. Prolog. Pascal. Prolog. Cobol. Fortran IMPERATIVI FUNZIONALI
Linguaggi di alto livello Barriera di astrazione C Fortran Cobol Modula-2 Basic Pascal Algol Ada Lisp Smalltalk Simula67 Scheme C++ Prolog ML AN - 1995 Linguaggi di alto livello IMPERATIVI C Fortran Modula-2
DettagliSettimana n.2. Obiettivi Esecuzione di un programma. Tutorial su CodeBlocks e ambiente di sviluppo.
Settimana n.2 Obiettivi Esecuzione di un programma. Tutorial su CodeBlocks e ambiente di sviluppo. Contenuti Linguaggi di programmazione Dati e istruzioni Architettura di un elaboratore Uso del compilatore
DettagliEsecuzione di Programmi Esercitazione
Alfonso Miola Esecuzione di Programmi Esercitazione Dispensa B-03-E Settembre 2005 1 Calcolatori e programmazione Abbiamo detto che un calcolatore è una macchina per eseguire programmi Programmi che qualcuno
DettagliAstrazione e Macchine Virtuali. parte 1: in generale
Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Astrazione e Macchine Virtuali parte 1: in generale Architettura di Von Neumann - Astrazione e Macchine Virtuali (Pt 1)
Dettagli