Linguaggi di programmazione
|
|
- Romina Torre
- 5 anni fa
- Visualizzazioni
Transcript
1 Linguaggi di programmazione Introduzione al corso Introduzione al corso Linguaggi di programmazione 1 / 1
2 Una presentazione generale dei linguaggi di programmazione: Completare le conoscenze acquisite finora: assembly ARM Scheme Java C Principi generali nella: definizione dei linguaggi, funzionamento (es. uso degli identificatori, della memoria, gestione del controllo) esecuzione del codice Introduzione al corso Linguaggi di programmazione 2 / 1
3 Obiettivi. Rendere più semplice l apprendimento di nuovi linguaggi. Mettere in risalto: gli aspetti comuni dei linguaggi, punti critici della loro comprensione. Cercheremo il giusto livello di astrazione concretizzare con degli esempi. Introduzione al corso Linguaggi di programmazione 3 / 1
4 Libri di testo Corso e contenuti standard. Diversi libri di testo con contenuti e ordine di presentazione sovrapponibili M. Gabbrielli, S. Martini. Linguaggi di programmazione - Principi e paradigmi. McGraw-Hill Michael Scott. Programming language pragmatics Elsevier, MK Morgan Kaufmann. Sebasta. Concept in progamming language Pearson Introduzione al corso Linguaggi di programmazione 4 / 1
5 Esame Tradizionale scritto orale obbligatorio per tutti Introduzione al corso Linguaggi di programmazione 5 / 1
6 Organizzazione periodo didattico orario aula Introduzione al corso Linguaggi di programmazione 6 / 1
7 Perché tanti linguaggi di programmazione? 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 7 / 1
8 Perché tanti linguaggi di programmazione? evoluzione: nel tempo si scoprono nuove tecniche, principi migliori fattori economici: interessi proprietari, vantaggio commerciale diversi bisogni: codice efficiente, pulizia del codice, flessibilità usi specifici, particolari: diversi tipi di hardware (sistemi embedded, server,... ) Introduzione al corso Linguaggi di programmazione 8 / 1
9 Cosa rende un linguaggio di successo? buon supporto: librerie, codice preesistente, IDE (tutti i linguaggi più diffusi) supporto di un potente sponsor (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 9 / 1
10 Attributi di un linguaggio: chiarezza, naturalità, semplicità: è facile passare dagli algoritmi al codice, e viceversa supporto all astrazione: stesso codice su dati diversi ortogonalità: diverse caratteristi si integrano tra loro, poche eccezione (es. tipi e passaggi parametri a procedura) facilità di verifica, facile da imparare (BASIC, Pascal, Scheme) Introduzione al corso Linguaggi di programmazione 10 / 1
11 A cosa servono i linguaggi di programmazione? astrarre della macchina fisica: specificare ciò che l hardware deve fare senza scendere nei bit formalizzare il pensiero: esprimere algoritmi Introduzione al corso Linguaggi di programmazione 11 / 1
12 Perché studiare i linguaggi di programmazione? Rende 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 Introduzione al corso Linguaggi di programmazione 12 / 1
13 Perché studiare i linguaggi di programmazione? Aiuta a farne un uso migliore: capire le caratteristiche complesse: passaggi dei parametri, uso della memoria 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 della ricorsione Introduzione al corso Linguaggi di programmazione 13 / 1
14 Caratteristiche 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 Introduzione al corso Linguaggi di programmazione 14 / 1
15 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 descrivere l esecuzione, l algoritmo. Introduzione al corso Linguaggi di programmazione 15 / 1
16 Traduzione Come eseguire un programma, scritto in L i (Java), per la macchina astratta relativa M i (macchina Java) si sfrutta uno dei livelli di macchina sottostanti M j (JVM) che qualcuno ha già implementato, si esegue una traduzione nel linguaggio relativo L j (Java ByteCode) Introduzione al corso Linguaggi di programmazione 16 / 1
17 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 scompaiono. Introduzione al corso Linguaggi di programmazione 17 / 1
18 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 18 / 1
19 Compilazione vs. Interpretazione Compilazione Migliori prestazioni: si evita traduzione (e controlli) a tempo di esecuzione Interpretazione: Maggiore flessibilità (Scheme) Migliore diagnostica (messaggi di errore a run time) Introduzione al corso Linguaggi di programmazione 19 / 1
20 Compilazione vs. Interpretazione Nei casi reali, traduzione in codice macchina, avviene con più passi di traduzione, la maggior parte delle implementazioni prevede una combinazione tra compilazione e interpretazione spesso compilazione (semplice pre-elaborazione) seguita dall interpretazione esempi: Pascal P-code, Java byte code, Microsoft COM + Introduzione al corso Linguaggi di programmazione 20 / 1
21 Preprocessing vs. Compilazione schema precedente può descrivere un pre-processing (semplice elaborazione dell input) in questo caso caso parliamo di linguaggi interpretato, 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 Introduzione al corso Linguaggi di programmazione 21 / 1
22 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 22 / 1
23 Assemblaggio post-compilazione Il compilatore produce assembly (non codice macchina) facilita il debugging (assembly più leggibile) isola il compilatore da modifiche nel formato delle istruzioni (solo l assemblatore deve essere modificato, è condiviso da molti compilatori) Introduzione al corso Linguaggi di programmazione 23 / 1
24 Traduzioni da linguaggio a linguaggio (C++) prime implementazioni C++ generano un programma intermedio in C: Introduzione al corso Linguaggi di programmazione 24 / 1
25 Implementare il compilatore Bootstrap: sollevarsi tirando i lacci dei propri stivali (Barone Munchausen) scrivo il compilatore per C, come programma in C. circolo vizioso evitato usando versioni differenti Introduzione al corso Linguaggi di programmazione 25 / 1
26 Pascal a P-code Introduzione al corso Linguaggi di programmazione 26 / 1
27 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 27 / 1
28 Firmware, microcodice, 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 28 / 1
29 Tools Introduzione al corso Linguaggi di programmazione 29 / 1
30 Una panoramica della compilazione Compilazione divisa in più fasi. Introduzione al corso Linguaggi di programmazione 30 / 1
31 Analisi lessicale - Scansione: 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, riconosciuto tramite DFA Introduzione al corso Linguaggi di programmazione 31 / 1
32 Analisi sintattica - Parsing 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) Introduzione al corso Linguaggi di programmazione 32 / 1
33 L analisi semantica 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) Introduzione al corso Linguaggi di programmazione 33 / 1
34 Modulo intermedio 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 34 / 1
35 L ottimizzazione 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 Introduzione al corso Linguaggi di programmazione 35 / 1
36 Tabella dei simboli 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 36 / 1
37 Esempio Programma GCD (in C) int main () { int i = getint (), j = getint (); while (i! = j) { if (i> j) i = i - j; else j = j - i; } putint (i); } Introduzione al corso Linguaggi di programmazione 37 / 1
Argomento 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 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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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,
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
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
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,
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, 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,
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
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
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
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
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:
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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?
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
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à
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:
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)
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 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
DettagliProgrammazione I. Linguaggi di programmazione. Traduzione. Fabrizio Messina
Programmazione I di programmazione Traduzione Fabrizio Messina messina@dmi.unict.it www.dmi.unict.it/~messina di programmazione I linguaggi di programmazione sono classificati in tre livelli: linguaggi
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
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
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 Basic Pascal
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
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
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
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
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à
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
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)
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
DettagliAlgoritmi e Linguaggi
Algoritmi e Linguaggi Programmi e linguaggi Un calcolatore è solo un esecutore rapidissimo di istruzioni Un programma è un insieme di istruzioni codificate in un opportuno linguaggio 2 / 21 Linguaggi e
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
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
DettagliInformatica Problema Algoritmo Programma
Informatica Problema Algoritmo Programma 2^ PARTE I linguaggi di programmazione I linguaggi di programmazione si possono suddividere fondamentalmente in tre categorie: 1. Linguaggio Macchina 2. Linguaggio
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
DettagliSistema Operativo. (hardware e software) della della macchina
Sistema Operativo Senza Sistema Operativo (SO) un computer è solo un macchinario inutile... Il SO rende possibile la gestione, elaborazione e immagazinamento dell informazione. Il Il SO SO è il il software
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
DettagliIntroduzione all OOP!
Introduzione all OOP! Introdurre l evoluzione dei linguaggi di programmazione e la loro classificazione Introdurre l OOP (astrazione, incapsulamento, ereditarietà) Dal C a Java un primo esempio 1 LINGUAGGI
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
DettagliBarriera di astrazione. Barriera di astrazione. macchina virtuale. non sono quelle della macchina hardware. Algol. Ada. Lisp. Lisp.
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 Cobol Basic Pascal Python Modula-2
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,
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
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.
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
Dettagli