Argomento del corso: una trattazione generale dei linguaggi di programmazione Completare le conoscenze acquisite finora: Linguaggi di programmazione
|
|
- Maurizio Maggio
- 5 anni fa
- Visualizzazioni
Transcript
1 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 minuscola parte dei linguaggi disponibili, difficile impararli tutti; ma esistono: regole, principi, caratteristiche comuni ai vari linguaggi di programmazione; argomenti di questo corso. Introduzione al corso Linguaggi di programmazione 1 / 38 Introduzione al corso Linguaggi di programmazione 2 / 38 Presentazione generali di: Obiettivi caratteristiche dei linguaggi programmazione, meccanismi funzionamento (es. identificatori ambiente, gestione della memoria,... ) implementazione: compilatori, interpreti,... Fornire un quadro generale dei linguaggi di programmazione diverse famiglie di linguaggi, similitudi e differenze. Mettere in risalto: gli aspetti comuni dei linguaggi, punti critici della loro comprensione. Introduzione al corso Linguaggi di programmazione 3 / 38 Alcuni obiettivi pratici Rendere più facile l apprendimento di nuove linguaggi: alcuni linguaggi sono piuttosto simili: albero genealogico. i concetti base sono ancora più simili, sono comuni a molti linguaggi: iterazione, ricorsione, astrazione Fare un uso migliore dei linguaggi: capire le caratteristiche complesse: passaggi dei parametri, uso della memoria usare i linguaggi nella loro completezza, comprendere i costi di implementazione: scegliere tra modi alternativi di fare la stessa cosa: ricorsione di coda Capire come implementare features che non supportate esplicitamente: mancanza di strutture di controllo adeguate, ricorsione in Fortran, riscrivere un algoritmo ricorsivo in uno iterativo, eliminazione meccanica Introduzione al corsodella ricorsione Linguaggi di programmazione 4 / 38
2 Libri di testo Pro e contro M. Gabbrielli, S. Martini. Linguaggi di programmazione - Principi e paradigmi. McGraw-Hill articoli e manuali reperibili nella pagina web del corso. Corso e contenuti in gran parte standard. Diversi libri di testo con contenuti e ordine di presentazione sovrapponibili Michael Scott. Programming language pragmatics Elsevier, MK Morgan Kaufmann. Sebasta. Concept in progamming language Pearson Gabbrielli-Martini, semplice, chiaro, senza banalizzare, pregio principale, specie in confronto ad altri libri di testo; astratto: tende a essere formale; mancano: argomenti più complessi; pochi riferimenti ai linguaggi di programmazione più usati, si preferisce usare un pseudo linguaggio, esempi reperibili negli altri libri di testo, a lezione farò qualche riferimento in più. Introduzione al corso Linguaggi di programmazione 5 / 38 Introduzione al corso Linguaggi di programmazione 6 / 38 Pagina web del corso Organizzazione raggiungibile dalla mia home page, copia della pagina disponibile anche su elearning, stabile e abbastanza completa, probabilmente verrà aggiornata, completata nel corso dell anno. periodo didattico: secondo orario modificabile su richiesta Immagini e Multimedialità, mercoledì: spostamenti orario causa consiglio di dipartimento, venerdì: orario di ricevimento mercoledì: 11:30 13:00. Introduzione al corso Linguaggi di programmazione 7 / 38 Introduzione al corso Linguaggi di programmazione 8 / 38
3 Esame Perché tanti linguaggi di programmazione? Tradizionale: scritto domande di teoria, esercizi, esercizi da svolgere a casa e discutere durante l esame orale, orale obbligatorio per tutti. Più paradigmi di programmazione: Imperativo: von Neumann (Fortran, Pascal, Basic, C) orientato agli oggetti (Smalltalk, Eiffel, C ++?) linguaggi di scripting (Perl, Python, JavaScript, PHP) Dichiarativo: funzionale (Scheme, ML, pure Lisp, FP) logico, basato su vincoli (Prolog, VisiCalc, RPG) Introduzione al corso Linguaggi di programmazione 9 / 38 Introduzione al corso Linguaggi di programmazione 10 / 38 Perché tanti linguaggi di programmazione? evoluzione: nel tempo si scoprono nuove tecniche, principi migliori fattori economici: interessi proprietari, vantaggio commerciale diverse priorità: codice efficiente, pulizia del codice, flessibilità diversi usi: calcolo scientifico (Fortan), analisi dei dati (R), sistemi embedded (C), applicazioni web (JavaScript, PHP),... Cosa rende un linguaggio di successo? buon supporto: librerie, codice preesistente, IDE (tutti i linguaggi più diffusi) supporto da uno sponsor importante (C#, Visual Basic, Objetive C, Switft, Go) ampia diffusione a costi minimi, portabilità (JavaScript, Java, Pascal) espressivo, flessibile, potente (C, Lisp, APL, Perl) possibilità di ottenere codice veloce / compatto (Fortran, C) facile da implementare (BASIC, Forth) Introduzione al corso Linguaggi di programmazione 11 / 38 Introduzione al corso Linguaggi di programmazione 12 / 38
4 Qualità di un linguaggio: Leggibilità chiarezza, naturalità, semplicità: supporto all astrazione: è facile modificare del codice. Scrivibilità è facile passare dagli algoritmi al codice, semplice da imparare: (BASIC, Pascal, Scheme) polimorfismo: stesso codice su dati diversi; ortogonalità: diverse caratteristiche si integrano in modo naturale tra loro, poche eccezione (es. tipi dato e passaggio parametri a procedure) Affidabilità facilità di verifica, Costo Introduzione efficienza al corso Linguaggi di programmazione 13 / 38 Aspetti di un linguaggio di programmazione sintassi: quali sequenze di caratteri costituiscono programmi, la loro struttura, semantica: come si comporta un programma, l effetto della loro esecuzione, pragmatica: utilizzo pratico; come scrivere buon codice; convenzioni, stili nello scrivere i programmi, implementazione: come il codice viene convertito in istruzioni macchina, eseguito, librerie: codice fornito con il linguaggio per implementare funzionalità base, tools: per editing, debugging, gestione del codice. Nel corso consideriamo principalmente i primi 4 aspetti, gli ultimi due importanti ma molto variabili. Introduzione al corso Linguaggi di programmazione 14 / 38 Macchina astratta. Sistema di calcolo diviso in un gerarchia di macchine virtuali (astratte) M i. Ciascuna costruita sulla precedente, a partire dal livello hardware. Ciascuna caratterizzata da un linguaggio, L i, con cui scrivere codice. Esecuzioni del codice Come eseguire un programma, per esempio, scritto in L Java, quindi relativo alla macchina astratta M Java (macchina Java) si sfrutta uno dei livelli di macchina sottostanti, per esempio una M JVM (Java Virtual Machine) che qualcuno ha già implementato, si esegue una traduzione nel linguaggio relativo L JVM (Java ByteCode) Introduzione al corso Linguaggi di programmazione 15 / 38 Introduzione al corso Linguaggi di programmazione 16 / 38
5 Compilazione vs. Interpretazione Compilazione pura: Il compilatore traduce il programma sorgente di alto livello in un programma di destinazione equivalente (tipicamente in linguaggio macchina), Programma sorgente e compilatore non necessari durante l esecuzione del codice. Interpretazione pura L interprete riceve programma sorgente e dati, e traduce, passo passo, le singole istruzione che vengono eseguite immediatamente. L interprete, programma sorgente, sono presenti durante l esecuzione del programma. L interprete è il luogo del controllo durante l esecuzione. Introduzione al corso Linguaggi di programmazione 17 / 38 Introduzione al corso Linguaggi di programmazione 18 / 38 Compilazione Compilazione vs. Interpretazione Migliori prestazioni: si evitano traduzioni e controlli a tempo di esecuzione sono possibili controlli prima dell esecuzione (type-checking statico) Interpretazione: maggiore flessibilità (Scheme), più semplice da implementare, esecuzione diretta del codice, più semplice il debugging. Compilazione vs. Interpretazione Nei casi reali, traduzione in codice macchina, avviene con più passi di traduzione, la maggior parte delle implementazioni prevedono una combinazione tra compilazione e interpretazione linguaggi interpretati pre-processing seguita dall interpretazione linguaggi compilati generazione codice intermedio esempi: Pascal P-code, Java bytecode, Microsoft COM + Introduzione al corso Linguaggi di programmazione 19 / 38 Introduzione al corso Linguaggi di programmazione 20 / 38
6 Preprocessing vs. Compilazione schema precedente può descrivere un pre-processing (semplice elaborazione dell input) in questo caso caso parliamo di linguaggi interpretati, compilazione traduzione da una lingua all altra, prevede un analisi complessiva del dell input compilazione implica una comprensione semantica di ciò che viene elaborato; il preprocessing no un pre-processore non garantisce assenza di errori nel tradotto Supporto a run-time: raramente compilatore produce solo codice macchina, anche istruzioni virtuali chiamate al sistema operativo chiamate a funzioni di libreria es. funzioni matematiche (sin, cos, log, ecc.), input-output traduzione a livello di sistema operativo o a livello di libreria un programma linker unisce codice library subroutine Introduzione al corso Linguaggi di programmazione 21 / 38 Introduzione al corso Linguaggi di programmazione 22 / 38 Assemblaggio post-compilazione Il compilatore produce assembly (non codice macchina) Traduzioni da linguaggio a linguaggio (C++) prime implementazioni C++ generano un programma intermedio in C: facilita il debugging (assembly più leggibile) isola il compilatore da modifiche nel formato delle istruzioni (solo l assemblatore, condiviso tra molti compilatori, deve essere modificato) Introduzione al corso Linguaggi di programmazione 23 / 38 Introduzione al corso Linguaggi di programmazione 24 / 38
7 Bootstrap: sollevarsi tirando i lacci dei propri stivali (Barone Munchausen) Implementare il compilatore scrivo un nuovo compilatore per C, come programma in C. circolo vizioso evitato usando versioni differenti Pascal e P-code Meccanismo per semplificare la creazioni di compilatori, semplifica la diffusione di un linguaggio. P-code: codice intermedio, Pascal fornisce: Compilatore Pascal, scritto in Pascal: CPascal Pascal PCode, Compilatore Pascal, scritto in P-Code: CPCode Pascal PCode (traduzione del predente) Interprete PCode, scritto in Pascal: IPascal PCode A mano costruisco: Interprete PCode, scritto nel mio linguaggio macchina: I PCode LM Introduzione al corso Linguaggi di programmazione 25 / 38 Introduzione al corso Linguaggi di programmazione 26 / 38 Interprete Pascal Compilatore Pascal Preso un programma Pascal PrPa posso: ottenere la sua traduzione in PCode: PrPC = ILM PCode (CPCode Pascal PCode, PrPa) eseguire la traduzione: ILM PCode (PrPC, Dati) Se, a mano, trasformo il C Pascal PCode Pascal CPCode Pascal LM. CLM Pascal LM = I PCode LM = I PCode LM in CPascal Pascal LM, posso: (CPCode Pascal PCode, CPascal Pascal LM ) (CPCode Pascal LM, CPascal Pascal LM ) e ottengo un compilatore da Pascal in linguaggio macchina, scritto in linguaggio macchina. Introduzione al corso Linguaggi di programmazione 27 / 38 Introduzione al corso Linguaggi di programmazione 28 / 38
8 Compilatore Pascal Compilazione dinamica, just-in-time si ritarda la compilazione fino all ultimo momento. implementazioni efficienti di Java (JVM) analogamente compilatore C# produce.net Common Intermediate Language (CIL), tradotto in codice macchina immediatamente prima dell esecuzione. Lisp o Prolog invocano il compilatori just-in-time, per tradurre il nuovo sorgente creato in linguaggio macchina o per ottimizzare il codice per un particolare set di input. Introduzione al corso Linguaggi di programmazione 29 / 38 Introduzione al corso Linguaggi di programmazione 30 / 38 Firmware, microcodice, Una panoramica della compilazione Compilazione divisa in più fasi. Le istruzioni a livello macchina non sono implementate direttamente nell hardware; circuiti di controllo del processore microprogramma, funziona con un interprete, Introduzione al corso Linguaggi di programmazione 31 / 38 Introduzione al corso Linguaggi di programmazione 32 / 38
9 Analisi lessicale - Scansione: Analisi sintattica - Parsing divide il programma in token, le unità più piccole e significative scanner: lavoro è semplice, semplifica le fasi successive possibile progettare un parser che esamina caratteri anziché token come input, ma inefficiente la scansione è il riconoscimento di una linguaggio regolare, si analizza l intero programma, definendo la sua struttura programmi definiti a linguaggi liberi dal contesto, riconosciuti tramite PDA alternativamente grammatica definita da diagrammi sintattici (vedi cerchi e le frecce in manuale Pascal) riconosciuto tramite DFA Introduzione al corso Linguaggi di programmazione 33 / 38 Introduzione al corso Linguaggi di programmazione 34 / 38 L analisi semantica Modulo intermedio costruisce l albero della sintassi astratta esegue controlli sul codice statici (es type checking) non implementabili dal parser (contex free grammar) altri controlli (ad esempio, indice di matrice fuori limite) eseguibili sola a tempo di esecuzione (dinamici) Si produce codice intermedio codice intermedio: indipendente dal processore, facilità di ottimizzazione o compattezza (richieste contrastanti) codice intermedio assomiglia spesso a codice macchina per qualche macchina astratta; per esempio. una macchina stack o una macchina con molti registri Introduzione al corso Linguaggi di programmazione 35 / 38 Introduzione al corso Linguaggi di programmazione 36 / 38
10 L ottimizzazione Tabella dei simboli prende un programma a codice intermedio e ne produce un altro che fa la stessa cosa più velocemente o con meno memoria il termine è improprio; si migliora il codice: fase facoltativa La fase di generazione del codice produce linguaggio assembly o linguaggio macchina rilocabile (a volte) Alcune ottimizzazioni specifiche della macchina (uso di istruzioni speciali o modalità di indirizzamento, ecc.) Possono essere eseguite durante o dopo la generazione del codice target tutte le fasi si basano su una tabella dei simboli tiene traccia di tutti gli identificatori nel programma e di ciò che il compilatore sa di loro può essere mantenuta (in qualche modo) per essere utilizzata da un debugger, anche dopo che la compilazione è stata completata Introduzione al corso Linguaggi di programmazione 37 / 38 Introduzione al corso Linguaggi di programmazione 38 / 38
Linguaggi 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
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
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
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
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
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 2. Daniele Sgandurra 22/10/2010.
Programmazione II Lezione 2 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 22/10/2010 1/40 Programmazione II Lezione 2 22/10/2010 Sommario 1 2/40 Programmazione II Lezione 2 22/10/2010 Parte I 3/40 Programmazione
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 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
DettagliInformatica 3. Informatica 3. Lezione 1- Modulo 1. LEZIONE 1: Introduzione. Concetti di linguaggi di programmazione. Introduzione
Informatica 3 Informatica 3 LEZIONE 1: Introduzione Lezione 1- Modulo 1 Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di Introduzione al corso Politecnico di Milano - Prof. Sara Comai
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
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
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,
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
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
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
DettagliMacchine 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
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,
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,
Dettaglila traduzione dei programmi ed introduzione a Java
la traduzione dei programmi ed introduzione a Java programmi descrizioni di algoritmi effettuate tramite linguaggi di programmazione lo stesso algoritmo, fissato un linguaggio di programmazione, può essere
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
DettagliUnità di apprendimento 6. Il software: dal linguaggio alla applicazione
Unità di apprendimento 6 Il software: dal linguaggio alla applicazione Unità di apprendimento 6 Lezione 2 Conosciamo i linguaggi di programmazione In questa lezione impareremo: che cos è un linguaggio
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
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
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, 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
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)
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
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
DettagliLinguaggi di alto livello. Barriera di astrazione. Pascal. Cobol. Fortran. Basic. Modula-2. Lisp. Simula67 Scheme. Smalltalk C++ Prolog AN
Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Basic Pascal Algol Ada Lisp Smalltalk Simula67 Scheme C++ Prolog ML AN - 1995 Linguaggi di alto livello IMPERATIVI Fortran Cobol
DettagliCos'e un linguaggio di programmazione?
Linguaggi di Programmazione Corso di Laurea in Informatica Introduzione ai linguaggi di Valeria Carofiglio a.a. 2016-2017 (questo materiale è una rivisitazione del materiale prodotto da Nicola Fanizzi)
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
DettagliInformatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 20 ottobre Corso di laurea in Economia
Informatica Dipartimento di Economia Ing. Cristiano Gregnanin Corso di laurea in Economia 20 ottobre 2016 1 / 19 Linguaggi 2 / 19 Linguaggi 3 / 19 Linguaggi di alto livello Si basano su una macchina virtuale
Dettagli28/02/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 5 LA RAPPRESENTAZIONE DELLE ISTRUZIONI
LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 5 LA RAPPRESENTAZIONE DELLE ISTRUZIONI Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna
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:
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
DettagliIntroduzione alla Programmazione. Giselda De Vita
Introduzione alla Programmazione Giselda De Vita - 2015 1 Sulla base dell ambito in cui si colloca il problema da risolvere, è opportuno adottare un linguaggio piuttosto che un altro: ² Calcolo scientifico:
DettagliPROBLEMI E ALGORITMI
Fondamenti di Informatica PROBLEMI E ALGORITMI Fondamenti di Informatica - D. Talia - UNICAL 1 Specifica di un algoritmo Primo approccio, scrittura diretta del programma: la soluzione coincide con la codifica
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
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
DettagliIntroduzione ai linguaggi di programmazione
Università degli Studi di Milano Laurea Specialistica in Genomica Funzionale e Bioinformatica Corso di Linguaggi di Programmazione per la Bioinformatica Introduzione ai linguaggi di programmazione Giorgio
DettagliDavide Cervi Classe : 3E I.T.E Agostino Bassi - Lodi
INTRODUZIONE AI LINGUAGGI DI PROGRAMMAZIONE Davide Cervi Classe : 3E I.T.E Agostino Bassi - Lodi I LINGUAGGI DI PRIMA GENERAZIONE rientrano in questa categoria i vari linguaggi macchina proprietari, decisamente
DettagliIntroduzione allo Studio dei Linguaggi di Programmazione. Corso di Linguaggi di Programmazione Informatica e Tecnologie Produzione Software
Introduzione allo Studio dei Linguaggi di Programmazione Corso di Linguaggi di Programmazione Informatica e Tecnologie Produzione Software Argomenti 2 Studiare i Linguaggi di Programmazione Domini Applicativi
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
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
Dettaglipermette di utilizzare lo stesso programma su CPU diverse (con opportuni traduttori)
Linguaggi di programmazione Il calcolatore è in grado di comprendere solo istruzioni in linguaggio macchina. Il linguaggio macchina non è adatto alla scrittura di programmi poiché troppo distante dal linguaggio
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
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à
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
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione!paradigmi linguistici, costrutti!semantica!implementazione, strutture a tempo di esecuzione 1 Linguaggi di programmazione e astrazione! i linguaggi di programmazione ad alto
DettagliTecnologie dell'informazione e della comunicazione
Tecnologie dell'informazione e della comunicazione Introduzione al corso e Linguaggi di programmazione ad alto livello Prof. Mauro Gaspari: gaspari@cs.unibo.it Tutor: Elisa Del Bianco: elisadelbianco@gmail.com
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
DettagliCalcolo numerico e programmazione Programmazione
Calcolo numerico e programmazione Programmazione Tullio Facchinetti 11 maggio 2012 14:05 http://robot.unipv.it/toolleeo La programmazione la programmazione è l insieme delle
DettagliProgrammazione. Andrea Passerini Informatica. Programmazione
Andrea Passerini passerini@disi.unitn.it Informatica Linguaggi di programmazione Il calcolatore è in grado di comprendere solo istruzioni in linguaggio macchina. Il linguaggio macchina non è adatto alla
DettagliFONDAMENTI DI INFORMATICA
Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia talia@deis.unical.it A.A. 2002-2003 Facoltà di Ingegneria UNICAL Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica
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
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à
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
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
DettagliProgrammazione. Andrea Passerini Informatica. Programmazione
Andrea Passerini passerini@disi.unitn.it Informatica Linguaggi di programmazione Il calcolatore è in grado di comprendere solo istruzioni in linguaggio macchina. Il linguaggio macchina non è adatto alla
DettagliLinguaggi di programmazione
Linguaggi di programmazione Programmazione L attività con cui si predispone l elaboratore ad eseguire un particolare insieme di azioni su particolari dati, allo scopo di risolvere un problema Dati Input
DettagliUnità Didattica 2 I Linguaggi di Programmazione
Unità Didattica 2 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
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
DettagliIl calcolatore. Architettura di un calcolatore (Hardware)
Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti
DettagliLinguaggi di programmazione
Parte 2 Linguaggi di programmazione Livello di Astrazione per la Codifica di un Algoritmo Si può risolvere un problema senza prima fissare un insieme di azioni, di mosse elementari possibili per l elaboratore?
DettagliIntroduzione al corso. Obiettivo del corso
Università della Calabria Corso di Laurea in Ingegneria Elettronica Programmazione Orientata agli Oggetti A.A. 2006/2007 Introduzione al corso Paolo Trunfio * * DEIS, Università della Calabria http://si.deis.unical.it/~trunfio
DettagliLinguaggi di programmazione. Paradigmi di programmazione
Linguaggi di programmazione Paradigmi di programmazione Linguaggi: un po di storia Albori: Macchine a programma memorizzato, Programmi come dati Linguaggio Macchina Assemblatore FORTRAN (calcolo scientifico)
DettagliInformatica e Comunicazione Digitale Crediti formativi 9. No, ma la frequenza è fortemente consigliata Lingua di erogazione
Principali informazioni sull insegnamento Titolo insegnamento Linguaggi di Programmazione Corso di studio Informatica e Comunicazione Digitale Crediti formativi 9 Denominazione inglese Programming Languages
DettagliLinguaggi di programmazione e astrazione
Linguaggi di programmazione e astrazione i linguaggi di programmazione ad alto livello moderni sono il più potente strumento di astrazione messo a disposizione dei programmatori che possono, con un solo
DettagliFasi di un Compilatore
Dipartimento di Matematica e Informatica Università di Camerino Un implementazione compilativa di un linguaggio di programmazione viene realizzata tramite un programma che prende il nome di compilatore
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à
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
DettagliIniziare a programmare in C++
Iniziare a programmare in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi di Napoli
DettagliIntroduzione alla programmazione. Walter Didimo
Introduzione alla programmazione Walter Didimo Programmi Un programma è una frase (anche molto lunga) che descrive delle azioni che devono essere svolte da un calcolatore La frase deve essere dettagliata
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
DettagliCorso di Fondamenti di Informatica Linguaggi di Programmazione
Corso di Informatica Linguaggi di Programmazione Anno Accademico 2011/2012 Francesco Tortorella Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di un
DettagliIntroduzione al Linguaggio C ed all IDE DEV-C++
Microsoft Windows e Dev-C++ Introduzione al Linguaggio C ed all IDE DEV-C++ Le Esercitazioni in Laboratorio Laboratorio M1 + MLAB1/2: Edificio Via Valotti, primo piano e piano interrato Orario: Mercoledì
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
DettagliA. Ferrari. informatica. introduzione a Java. Alberto Ferrari Informatica
informatica introduzione a Java La nascita di Java 1991 - James Gosling lavora al Green Project (SUN) per studiare la convergenza tra dispositivi di elettronica di consumo e computer 1992 il Green Project
DettagliLinguaggi di Programmazione + Lab. A.A Docente: Marco de Gemmis. Presentazione dell insegnamento
Linguaggi di Programmazione + Lab. A.A. 2014-2015 Docente: Marco de Gemmis Presentazione dell insegnamento Informazioni generali Insegnamento: Docente: Marco de Gemmis - Ricercatore Lezioni: 2 marzo 2015-3
DettagliASTRAZIONE ASTRAZIONE
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
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
DettagliInformatica triennale (L31) sede di Bari Crediti formativi 9. No, ma la frequenza è fortemente consigliata Lingua di erogazione
Principali informazioni sull insegnamento Titolo insegnamento Linguaggi di Programmazione Corso di studio Informatica triennale (L31) sede di Bari Crediti formativi 9 Denominazione inglese Programming
DettagliCorso di Laurea Ingegneria Informatica Laboratorio di Informatica
Corso di Laurea Ingegneria Informatica Laboratorio di Informatica Capitolo 4 Traduzione ed esecuzione di programmi Ottobre 2006 Traduzione ed esecuzione di programmi 1 Nota bene Alcune parti del presente
Dettagli10: I LINGUAGGI di PROGRAMMAZIONE PARTE 1
Data: 12-10-2016 Pag: 8 10: I LINGUAGGI di PROGRAMMAZIONE PARTE 1 1. Definizioni a) Linguaggi Naturali = i linguaggi degli esseri umani Lessico = le parole che si usano Sintassi = le regole con cui si
DettagliInformatica 3. LEZIONE 0: Panoramica dei linguaggi di programmazione. Politecnico di Milano - Prof. Sara Comai 1
Informatica 3 LEZIONE 0: Panoramica dei linguaggi di Politecnico di Milano - Prof. Sara Comai 1 Linguaggi di Un linguaggio di è una notazione formale caratterizzata da due componenti: Sintassi: insieme
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
DettagliFONDAMENTI DI INFORMATICA
Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia talia@deis.unical.it A.A. 2002-2003 Facoltà di Ingegneria UNICAL Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica
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
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
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
Dettagli