Corso di Linguaggi di Programmazione + Laboratorio

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Corso di Linguaggi di Programmazione + Laboratorio"

Transcript

1 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 linguaggio di programmazione Perché un insegnamento inguaggi di Programmazione? Non sarebbe stato sufficiente quello di Programmazione? 2/22

2 Apprendimento di un linguaggio di programmazione Una delle competenze fondamentali di un buon informatico è quella di apprendere un nuovo linguaggio di programmazione con naturalezza e velocità Questa competenza non la si acquisisce soltanto imparando ex novo molti linguaggi diversi conoscere tanti linguaggi di programmazione oppure conoscere i fondamenti che sono alla base dei linguaggi di programmazione? 3/22 Apprendimento di un linguaggio di programmazione ingue naturali esistono analogie, somiglianze derivanti dalla genealogia Es.: italiano rumeno cioccolata = ciocolata insalata = salata treno = tren inguaggi di programmazione è difficile conoscerne un gran numero in modo approfondito è possibile conoscerne a fondo i meccanismi che ne ispirano il progetto e l implementazione o studio degli aspetti generali dei linguaggi di programmazione è un passaggio chiave della formazione universitaria e professionale di un informatico 4/22

3 Macchine Astratte e Implementazione dei linguaggi di programmazione Qual è il significato dell espressione: implementazione di un linguaggio di programmazione? Si tratta di un concetto strettamente correlato a quello di: MACCHINA ASTRATTA 5/22 Macchine Astratte e Implementazione dei linguaggi di programmazione Calcolatore = macchina fisica consente di eseguire algoritmi opportunamente formalizzati perché siano comprensibili all esecutore la formalizzazione consiste nella codifica degli algoritmi in un certo linguaggio definito da una specifica sintassi la sintassi di permette di utilizzare determinati costrutti per comporre programmi in Un programma in è una sequenza di istruzioni del linguaggio Macchina astratta = astrazione del concetto di calcolatore fisico 6/22

4 Definizioni di macchina astratta e linguaggio macchina Macchina astratta per Un insieme di algoritmi e strutture dati che permettono di memorizzare ed eseguire programmi scritti in Si denota con M E composta da: una memoria per immagazzinare dati e programmi un interprete che esegue le istruzioni contenute nei programmi inguaggio Macchina Data una macchina astratta M,il linguaggio compreso dall interprete di M è detto linguaggio macchina di M 7/22 e operazioni dell Interprete Operazioni per l elaborazione dei dati primitivi numeri interi, reali operazioni aritmetiche Operazioni e strutture dati per il controllo della sequenza di esecuzione servono per gestire il flusso di controllo delle istruzioni strutture dati per memorizzare l indirizzo della prossima istruzione operazioni per manipolare le strutture dati es.: calcolo dell indirizzo della prossima istruzione 8/22

5 e operazioni dell Interprete Operazioni e strutture dati per il controllo del trasferimento dei dati gestiscono il trasferimento dei dati dalla memoria all interprete es.: recupero degli operandi possono far uso di strutture dati ausiliarie es.: pila Operazioni e strutture dati per la gestione della memoria relative all allocazione di memoria per dati e programmi 9/22 Ciclo di esecuzione del generico interprete 1. Acquisisci prossima istruzione da eseguire 2. Decodifica determina l operazione richiesta dall istruzione e gli operandi 3. Preleva gli operandi ed esegui l operazione richiesta 4. Memorizza l eventuale risultato 5. Torna al punto 1 a meno che l operazione non sia un HAT 10/22

6 Realizzazione di una macchina astratta Per essere effettivamente utilizzata, M dovrà prima o poi utilizzare qualche dispositivo fisico realizzazione fisica in hardware algoritmi di M realizzati direttamente mediante dispositivi fisici Possiamo pensare a realizzazioni che usino livelli intermedi tra M ed il dispositivo fisico simulazione mediante software emulazione mediante firmware microprogrammi in linguaggi di basso livello 11/22 Realizzazione mediante software Algoritmi e strutture dati di M realizzati in un altro linguaggio già implementato M è realizzata mediante programmi in che simulano le funzionalità di M M è realizzata attraverso la macchina M M è detta macchina ospite e si denota con Mo o Intuitivamente l implementazione di sulla macchina ospite avviene mediante una qualche traduzione di in o A seconda di come avvenga la traduzione di parla di: implementazione interpretativa interpretazione compilativa 12/22

7 Definizione di interprete In generale un programma scritto in si può vedere come una funzione parziale: I o I P : o : D D (Prog (P t.c. D) D, Input) P (Input) Non vi è traduzione esplicita dei programmi scritti in, ma solo un procedimento di decodifica P (Input) Output Possiamo dare la seguente definizione di interprete di in o: tale che interprete, per eseguire un istruzione i di, le fa corrispondere un insieme di istruzioni di o. Tale decodifica non è una traduzione esplicita poiché il codice corrispondente a i è eseguito direttamente e non prodotto in uscita 13/22 Definizione di compilatore Un compilatore da a o è un programma che realizza la funzione: C o, o : Prog Prog C o, o(p ) Pc P (D) Pc o (D) Traduzione esplicita dei programmi scritti in in programmi scritti in o linguaggio sorgente o linguaggio oggetto Per eseguire P sull input D, bisogna eseguire C,o con P come input. Si avrà come risultato un programma compilato Pc o scritto in o, che sarà eseguito su Mo o con il dato di input D 14/22

8 Interpretazione vs. Compilazione Interpretazione scarsa efficienza maggiore flessibilità Compilazione maggiore efficienza: la decodifica di un istruzione è fatta una sola volta indipendentemente da quante volte è eseguita minore flessibilità: perdita di informazioni rispetto al programma sorgente (difficile tracciare errori e dunque maggiori difficoltà nel debugging) In realtà i due approcci sono spesso combinati 15/22 Gerarchie di Macchine Astratte Possiamo pensare ad una gerarchia di macchine astratte M 0, M 1, M n M i è implementata sfruttando il linguaggio della macchina sottostante M i-1 M i fornisce a sua volta il proprio linguaggio alla macchina sovrastante M i+1 Indipendenza tra livelli modifiche interne alle funzionalità di un livello non hanno influenza sugli altri livelli 16/22

9 Una gerarchia di macchine astratte MACCHINA WEB MACCHINA INGUAGGIO ATO IVEO MACCHINA SISTEMA OPERATIVO MACCHINA FIRMWARE MACCHINA HARDWARE 17/22 Introduzione alla teoria dei linguaggi formali ivelli di descrizione di un linguaggio grammatica quali frasi sono corrette? semantica cosa significa una frase corretta? pragmatica come usare una frase corretta e sensata? implementazione (per i linguaggi di programmazione) come eseguire una frase corretta in modo da rispettarne il significato? 18/22

10 Concetto intuitivo di grammatica Alfabeto del linguaggio simboli con cui costruire le parole del linguaggio es.: alfabeto latino su 22 o 26 lettere essico parole del linguaggio es.: informatica Sintassi determina quali sequenze di parole costituiscono frasi legali (corrette) e grammatiche sono uno strumento utile per descrivere la sintassi di un linguaggio di programmazione 19/22 Introduzione alla teoria dei linguaggi formali Questa prima parte del programma ha l obiettivo di fornire una base sufficiente alla comprensione delle tecniche di compilazione, oggetto della seconda parte del corso. E per questa ragione che ci concentreremo quasi esclusivamente su due tipi di grammatiche: regolari libere da contesto poiché i linguaggi formali utilizzati in informatica sono per lo più di questi tipi. 20/22

11 Riferimenti Maurizio Gabbrielli, Simone Martini. inguaggi di Programmazione, Principi e paradigmi. McGraw-Hill Capitoli 1-2 Giovanni Semeraro. Appunti di Teoria dei inguaggi Formali. Adriatica Editrice, Bari, Capitolo 1 21/22

Corso di Linguaggi di

Corso di Linguaggi di Corso di Linguaggi di Programmazione + Laboratorio Docente: Marco de Gemmis Capitolo 1 - Introduzione Si ringraziano il Prof. Giovanni Semeraro e il Dott. Pasquale Lops per la concessione del materiale

Dettagli

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 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

Dettagli

Macchine Astratte. Definizione e tipi di implementazione

Macchine 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

Dettagli

Traduzione ed Interpretazione

Traduzione 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

Dettagli

Programmazione II. Lezione 2. Daniele Sgandurra 22/10/2010.

Programmazione 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

Dettagli

Traduzione ed Interpretazione. Queste sconosciute

Traduzione 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

Dettagli

Linguaggi di Programmazione

Linguaggi 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

Dettagli

La 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 La Programmazione Cos è la programmazione? Concetti preliminari Programmazione e Laboratorio di Programmazione Luca Tesei 1 Sommario La programmazione, questa sconosciuta Programmiamo Macchine Astratte

Dettagli

Architettura degli Elaboratori

Architettura 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

Macchina Astratta: struttura e realizzazione.

Macchina 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

Dettagli

Sommario. La Programmazione. Programmare vs Usare un computer. Programmare vs Usare un computer. Programmi ognidove. Programmi ognidove

Sommario. 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,

Dettagli

Linguaggi di Programmazione + Lab. A.A Docente: Marco de Gemmis. Presentazione dell insegnamento

Linguaggi 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

Dettagli

Il linguaggio di programmazione Python

Il 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)

Dettagli

La Programmazione. Programmare Macchine Astratte Compilazione / Interpretazione Java. Laboratorio di Programmazione - Luca Tesei

La 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

Dettagli

Macchine astratte, linguaggi, interpretazione, compilazione

Macchine 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

Dettagli

Introduzione al funzionamento di un calcolatore elettronico

Introduzione 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

Dettagli

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Lez. 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

Dettagli

Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica

Introduzione 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

Dettagli

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori

o 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

Dettagli

Marco Tarini - Università dell'insubria A.A. 2016/17. Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate

Marco 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

Dettagli

Il Software programmabili programma algoritmo

Il 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

Dettagli

Sommario Linguaggi, messaggi e comunicazione. Introduzione ai Linguaggi di Programmazione. Linguaggio (1) Linguaggio (2)

Sommario 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,

Dettagli

Linguaggi, Traduttori e le Basi della Programmazione

Linguaggi, 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

Dettagli

Macchine astratte, linguaggi, interpretazione, compilazione

Macchine 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

Dettagli

Macchine astratte, linguaggi, interpretazione, compilazione

Macchine 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

Dettagli

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Lez. 8 La Programmazione Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Dott. Pasquale De Michele Dott. Raffaele Farina Dipartimento di Matematica e Applicazioni Università di Napoli

Dettagli

Teoria dell Informazione

Teoria dell Informazione Corso di Laurea Magistrale in Scienze dell Informazione Editoriale, Pubblica e Sociale Teoria dell Informazione Cosa è l informazione L informazione è qualcosa che si possiede e si può dare ad un altro

Dettagli

Linguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione

Linguaggi, 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,

Dettagli

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

AXO - 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

Dettagli

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE Riccardo Dondi Dipartimento di Scienze dei linguaggi, della comunicazione e degli studi culturali Università degli Studi di Bergamo Informazione sul corso

Dettagli

Sommario Linguaggi, messaggi e comunicazione. Introduzione ai Linguaggi di Programmazione. Linguaggio. Messaggio

Sommario 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,

Dettagli

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio) Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande

Dettagli

Introduzione alla programmazione strutturata

Introduzione alla programmazione strutturata FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Prof. ELIO TOPPANO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio

Dettagli

Macchine Astratte. Luca Abeni. February 22, 2017

Macchine 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

Dettagli

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio) Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande

Dettagli

FONDAMENTI DI INFORMATICA

FONDAMENTI 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

Dettagli

Concetti Introduttivi. Il Computer

Concetti Introduttivi. Il Computer Concetti Introduttivi Il Computer Introduzione Informazione Notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere Messaggio Tutto ciò che porta

Dettagli

Linguaggi di programmazione

Linguaggi 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é

Dettagli

3. Programmi e algoritmi

3. Programmi e algoritmi 3. Programmi e algoritmi Andrea Marongiu (andrea.marongiu@unimore.it) Paolo Valente Contiene slides del corso «Fondamenti di Informatica» del Prof. Montessoro (Università degli Studi di Udine) Recall:

Dettagli

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica

Programmazione. 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

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione + Laboratorio Docente: Marco de Gemmis Capitolo 1 Introduzione ai linguaggi di programmazione ed alla teoria dei linguaggi formali Si ringraziano il Prof. Giovanni Semeraro

Dettagli

FONDAMENTI DI INFORMATICA

FONDAMENTI 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

Dettagli

LINGUAGGI 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 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

Dettagli

Introduzione all informatica

Introduzione all informatica Introduzione all informatica INFORMATICA Varie definizioni Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta Scienza della rappresentazione e dell

Dettagli

Informatica Problema Algoritmo Programma

Informatica 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

Dettagli

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI 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

Dettagli

Scrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica

Scrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica FODAMETI DI IFORMATICA Prof. PIER LUCA MOTESSORO Prof. ELIO TOPPAO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio Toppano

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma 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

Dettagli

La suddivisione lezione/esercitazione è orientativa Martedì Lezione Aula A4 Martedi Esercitazione Aula A2 Mercoledì Laboratorio

La suddivisione lezione/esercitazione è orientativa Martedì Lezione Aula A4 Martedi Esercitazione Aula A2 Mercoledì Laboratorio La suddivisione lezione/esercitazione è orientativa Martedì 11 13 Lezione Aula A4 Martedi 14 16 Esercitazione Aula A2 Mercoledì 11 13 Laboratorio Lab. 1 Mercoledì 14 16 Lezione Aula A3 Giovedì 14 16 Lezione

Dettagli

Introduzione ai linguaggi di programmazione

Introduzione 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

Dettagli

Programmazione C Massimo Callisto De Donato

Programmazione 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

Calcolo numerico e programmazione Programmazione

Calcolo 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

Dettagli

CdL in Medicina Veterinaria - STPA AA

CdL in Medicina Veterinaria - STPA AA CdL in Medicina Veterinaria - STPA AA 2007-08 Programmi e algoritmi I Calcolatori: cos hanno di speciale? 1 Elaborazione dell Informazione Dati, informazione e istruzioni Un esempio: Dr Rossi 328275456

Dettagli

Linguaggi di alto livello, compilatori e interpreti

Linguaggi 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

Dettagli

Macchine astratte, linguaggi, interpretazione, compilazione

Macchine 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

Dettagli

Linguaggi di Programmazione

Linguaggi 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

Dettagli

Introduzione alla programmazione

Introduzione 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

Dettagli

ISTITUTO SUPERIORE ENRICO FERMI. PROGRAMMAZIONE DEL GRUPPO DISCIPLINARE INFORMATICA IT INDIRIZZO INFORMATICA E TELECOMUNICAZIONI a.s.

ISTITUTO SUPERIORE ENRICO FERMI. PROGRAMMAZIONE DEL GRUPPO DISCIPLINARE INFORMATICA IT INDIRIZZO INFORMATICA E TELECOMUNICAZIONI a.s. ISTITUTO SUPERIORE ENRICO FERMI PROGRAMMAZIONE DEL GRUPPO DISCIPLINARE INFORMATICA IT INDIRIZZO INFORMATICA E TELECOMUNICAZIONI a.s. 2016/2017 ARTICOLAZIONE: INFORMATICA DISCIPLINA: INFORMATICA ORE SETTIMANALI:

Dettagli

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Corso 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

Dettagli

Le fasi della programmazione

Le fasi della programmazione Ad un primo livello di astrazione l attività della programmazione può essere suddivisa in quattro (macro) fasi principali. 1. Definizione del problema (specifica): quale funzione si vuole calcolare e quali

Dettagli

Linguaggi di Programmazione

Linguaggi 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

Dettagli

ciclo di vita della soluzione (informatica) d un problema

ciclo di vita della soluzione (informatica) d un problema ciclo di vita della soluzione (informatica) d un problema errori run-time errori sintattici codice editor codice C++ compilatore esegui eseguibile OK risultati scorretti ma prima di arrivare a questo 1.

Dettagli

Metodologie di Programmazione. ovvero, Principi e Tecniche per la costruzione di programmi

Metodologie di Programmazione. ovvero, Principi e Tecniche per la costruzione di programmi Metodologie di Programmazione ovvero, Principi e Tecniche per la costruzione di programmi 1 In questo corso Sviluppo in piccolo: Tempi: mesi/uomo v.s. anni/uomo Strumenti: personal v.s. professional Programmazione

Dettagli

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI 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

Dettagli

ASTRAZIONE. Sono indipendenti dalla macchina hardware sottostante ASTRAZIONE 1

ASTRAZIONE. 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

Dettagli

Informatica e Comunicazione Digitale Crediti formativi 9. No, ma la frequenza è fortemente consigliata Lingua di erogazione

Informatica 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

Dettagli

Introduzione. Informatica B. Daniele Loiacono

Introduzione. Informatica B. Daniele Loiacono Introduzione Informatica B Cos è l informatica? q È la scienza che si occupa della rappresentazione dell informazione e della sua elaborazione e gestione " Si occupa dell informazione, che fa parte di

Dettagli

Programmazione II. Lezione 7. Daniele Sgandurra 9/11/2010.

Programmazione 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

Dettagli

Astrazione e Macchine Virtuali. parte 1: in generale

Astrazione 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

I Linguaggi di Programmazione

I 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

Dettagli

Il concetto di calcolatore e di algoritmo

Il concetto di calcolatore e di algoritmo Il concetto di calcolatore e di algoritmo Elementi di Informatica e Programmazione Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Informatica

Dettagli

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Corso 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

Dettagli

Architettura degli elaboratori

Architettura degli elaboratori Architettura degli elaboratori Ottavio D Antona dantona@di.unimi.it Maria Luisa Damiani damiani@di.unimi.it Dipartimento di Informatica Università degli Studi di Milano Architettura degli Elaboratori -

Dettagli

Problemi, algoritmi, calcolatore

Problemi, algoritmi, calcolatore Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione

Dettagli

MODELLO SCHEDA INSEGNAMENTO

MODELLO SCHEDA INSEGNAMENTO Corso di L/LM/LMCU Denominazione insegnamento: MODELLO SCHEDA INSEGNAMENTO Numero di Crediti: 9 Anno: Semestre: Docente Titolare: Scienze Geologiche Fondamenti di Informatica I II Salvatore Rampone Dottorandi/assegnisti

Dettagli

Informatica triennale (L31) sede di Bari Crediti formativi 9. No, ma la frequenza è fortemente consigliata Lingua di erogazione

Informatica 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

Dettagli

Implementazione di DFA in C

Implementazione di DFA in C Implementazione di DFA in C Dispensa di Laboratorio di Linguaggi di Programmazione Sommario Corrado Mencar, Pasquale Lops, Stefano Ferilli Questa dispensa fornisce le linee guida per l implementazione,

Dettagli

Il calcolatore. Architettura di un calcolatore (Hardware)

Il 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

Dettagli

I linguaggi di programmazione

I linguaggi di programmazione I linguaggi di programmazione sono stati introdotti per facilitare ai programmatori il compito di scrittura dei programmi Sono linguaggi simbolici, in continua evoluzione Sono definiti da un insieme di

Dettagli

Algoritmi e soluzioni di problemi

Algoritmi e soluzioni di problemi Algoritmi e soluzioni di problemi 1 Informazioni e linguaggio Ottenere informazioni significa aumentare le nostre conoscenze ottenere indicazioni che ci fanno agire in un determinato modo Esempi Ad un

Dettagli

Le istruzioni corrispondono univocamente a quelle macchina, ma vengono espresse tramite nomi simbolici i (parole chiave)

Le 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

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica Introduzione al corso Prof. Venturino Taggi e prof. Alfredo Accattatis, slide (rielaborate) del prof. Emiliano Casalicchio accattatis@ing.uniroma2.it taggi@ing.uniroma2.it Concetti

Dettagli

Elementi di programmazione

Elementi 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

Dettagli

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre Hardware, software e periferiche Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre Riepilogo - Concetti di base dell informatica L'informatica è quel settore scientifico disciplinare

Dettagli

Linguaggi di Programmazione e Paradigmi. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Linguaggi di Programmazione e Paradigmi. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Linguaggi di Programmazione e Paradigmi Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Come risolvere un problema Le 3 tappe fondamentali di risoluzione di un problema algoritmico sono:

Dettagli

I linguaggi di programmazione

I linguaggi di programmazione I linguaggi di programmazione sono stati introdotti per facilitare ai programmatori il compito di scrittura dei programmi Sono linguaggi simbolici, in continua evoluzione Sono definiti da un insieme di

Dettagli

Dall algoritmo al calcolatore: concetti introduttivi. Fondamenti di Programmazione

Dall algoritmo al calcolatore: concetti introduttivi. Fondamenti di Programmazione Dall algoritmo al calcolatore: concetti introduttivi Fondamenti di Programmazione Algoritmo Problema o compito Preparazione di una torta Programmazione del VCR MCD tra due numeri Algoritmo sequenza precisa

Dettagli

Salvatore Cuomo Prolusione

Salvatore Cuomo Prolusione Salvatore Cuomo Prolusione 1 Lezione n. Parole chiave: Algoritmo, Esecutore Corso di Laurea: Informatica Insegnamento: Programmazione II, modulo di Laboratorio Email Docente: salvatore.cuomo@unina. it

Dettagli

Elementi di programmazione

Elementi 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à

Dettagli

Informatica 1. 4 Programmazione e Sviluppo del software. ing. Luigi Puzone

Informatica 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

Dettagli

Corso di Informatica Modulo T2 1 - Linguaggi e macchine

Corso di Informatica Modulo T2 1 - Linguaggi e macchine Corso di Informatica Modulo T2 1 - Linguaggi e macchine 1 Prerequisiti Principi della comunicazione Rappresentazione simbolica Calcolo delle combinazioni di n oggetti a gruppi di k Dati e istruzioni Utilizzo

Dettagli

ASTRAZIONE ASTRAZIONE

ASTRAZIONE 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

Dettagli

Caratteristiche di un calcolatore elettronico

Caratteristiche di un calcolatore elettronico Prof. Emanuele Papotto Caratteristiche di un calcolatore elettronico È una macchina, costituita da circuiti elettronici digitali e da componenti elettromeccaniche, ottiche e magnetiche. È velocissimo,

Dettagli

I linguaggi. Informatica

I 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

Dettagli

Introduzione alla programmazione. Walter Didimo

Introduzione 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

Dettagli