LA CODIFICA DELLE INFORMAZIONI

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "LA CODIFICA DELLE INFORMAZIONI"

Transcript

1 LA CODIFICA DELLE INFORMAZIONI Linguaggio Elaborazione delle informazioni: operazioni che possono essere effettuate sulle informazioni: inserimento, archiviazione, modifica, ordinamento, calcolo, ecc. Per poter elaborare le informazioni, è necessario definire un linguaggio, ossia uno strumento che sostituisca dei simboli particolari agli oggetti ed ai concetti. In generale, esistono diversi tipi di linguaggi, che si possono raggruppare in: LINGUAGGI - NATURALI - FORMALI I linguaggi naturali sono quelli utilizzati quotidianamente dagli uomini per comunicare tra loro (italiano, inglese, francese, ecc.); sono dotati in una notevole ricchezza espressiva e semantica, ma possono dar luogo ad ambiguità, imprecisione e difficoltà di interpretazione. I linguaggi formali sono quelli artificiali, creati dall uomo secondo regole ben definite e prive di eccezioni e di ambiguità (linguaggi di programmazione: Pascal, Cobol, ecc.); sono dedicati a scopi precisi e circoscritti.

2 LINGUAGGI FORMALI I linguaggi di programmazione non sono astrazioni ma strumenti per la scrittura di programmi utilizzabili su computer. In generale, la funzione di un linguaggio è quella di permettere la comunicazione tra una sorgente ed un destinatario. In particolare, per quanto riguarda il mondo dell informatica, la comunicazione avviene tra programmatore e computer. Un linguaggio di programmazione è una notazione formale per descrivere i programmi eseguiti dal computer. Come tutte le notazioni formali, si basa sui concetti di lessico, sintassi e semantica. In un linguaggio di programmazione, per ottenere programmi corretti occorre combinare insieme frasi corrette, secondo regole precise di semantica. REGOLE LESSICALI: sono le regole che determinano come i simboli di un alfabeto possono essere cambiati tra di loro per formare parole valide in un determinato linguaggio. REGOLE SINTATTICHE: sono le regole che definiscono come una frase deve essere costruita affinché sia corretta in un determinato linguaggio. REGOLE SEMANTICHE: sono le regole che attribuiscono un significato corretto alle frasi e stabiliscono quale sia l effetto dell istruzione.

3 TIPI DI LINGUAGGIO DI PROGRAMMAZIONE Sulla base dell ambito in cui è necessario risolvere il problema, è opportuno adottare un linguaggio piuttosto che un altro: Calcolo Scientifico: Fortran, C Intelligenza Artificiale: Prolog, Lisp Applicazioni gestionali: Clipper, Cobol, SQL, C Applicazioni client visuali: C++, Java, Visual Basic Applicazioni su Web: Perl, ASP, Java Applicazioni distribuite: Java, C, C++ Un programma è la codifica di un algoritmo eseguita utilizzando un linguaggio di programmazione. L unico linguaggio che la macchina è in grado di interpretare è il linguaggio macchina. Per eseguire un programma scritto in un linguaggio di alto livello è necessario dunque tradurlo in linguaggio macchina. Naturalmente è possibile eseguire la traduzione in modo automatico utilizzando un programma traduttore (un compilatore o un interprete). Ogni traduttore è in grado di interpretare e tradurre un solo linguaggio (compilatore C, interprete Perl, compilatore Pascal, ecc.).

4 COMPILAZIONE L esigenza di produrre programmi sempre più complessi, ha portato alla diffusione di strumenti automatici che ne facilitassero la creazione: editor, compilatori, interpreti, librerie, linker. Nel tempo questi strumenti si sono evoluti, diventando sempre più sofisticati ed user-friendly, ma affondano le loro radici nella teoria dei linguaggi che costituisce la base teorica su cui poggia la progettazione dei compilatori. La compilazione è il processo mediante il quale un programma scritto in un linguaggio di programmazione ad alto livello (cioè vicino al modo di esprimersi dell uomo) viene tradotto in un programma che può essere eseguito dal computer. In generale, un compilatore è esso stesso un programma il cui compito è quello di trasformare un programma in un altro programma.

5 Compilazione Il lavoro di programmazione non viene effettuato scrivendo direttamente le istruzioni in formato binario per il computer, ma in un linguaggio di programmazione, più vicino alla logica del problema (e del programmatore), che a quella della macchina. Il compilatore è un particolare programma che traduce il programma scritto dal programmatore in un certo linguaggio di programmazione, in linguaggio binario (o linguaggio macchina). Il programma scritto in un linguaggio di programmazione si dice programma sorgente (source code), per distinguerlo dal programma in linguaggio binario o linguaggio macchina. Il programma compilato si dice codice oggetto (object code).

6 FASI DELLA COMPILAZIONE Tabella simboli Prog. sorgente lessicale sintattica Generazione codice interm Ottimizzazione Codice oggetto Generazione codice errori La compilazione si distingue in diverse fasi: 1. lessicale, 2. Tabella dei simboli, 3. sintattica, 4. Generazione del codice intermedio, 5. Ottimizzazione del codice intermedio, 6. Generazione del codice macchina.

7 1) ANALISI LESSICALE Tabella simboli Prog. sorgente lessicale sintattica Generazione codice interm Ottimizzazione Generazione codice errori L analisi lessicale ha il compito di trasformare il programma sorgente in una forma sintetica, da restituire come input alla fase successiva dell analisi sintattica. Riceve in input il programma sorgente e trasforma le sequenze di caratteri delle istruzioni (parole chiave, identificatori, costanti, operatori, simboli di punteggiatura, ecc.) in unità lessicali dette token. I token sono delle coppie di numeri, in cui il primo individua il tipo di simbolo letto (parole chiave, identificatori, costanti, operatori, ecc.); il secondo è il puntatore, o indice di riga, in cui si trova il simbolo nella Tabella dei simboli. Il programma scritto dal programmatore subisce quindi una prima trasformazione in sequenze di token, espressi secondo una opportuna codifica.

8 Esempio Ad esempio, al compilatore arriva la seguente istruzione in un certo linguaggio di programmazione: X = (A + B) * 5 Questa istruzione viene accettata dall analizzatore lessicale, e viene trasformata in una stringa di token, cioè coppie di numeri, in cui: 1) il primo numero identifica il tipo di operando dell istruzione input, per esempio: 0 simbolo non definito 1 per gli identificatori 2 per i numeri X = ( A + B ) * 5 3 per il simbolo = 4 per il simbolo ( per il simbolo + 6 per il simbolo ) 7 per il simbolo * ecc. 2) il secondo numero identifica il puntatore, ovvero numero di riga della Tabella dei simboli, che contiene la descrizione del simbolo.

9 Esempio 1 X variabile La rappresentazione interna dei simboli, nella Tabella dei simboli, sarà per esempio: 2 3 = ( operatore operatore 4 A variabile 5 + operatore 6 B variabile 7 ) operatore 8 * operatore 9 5 costante Successivamente, se per esempio arriva un altra istruzione, X = C la Tabella viene aggiornata: si aggiunge un altra riga per l identificatore C, mentre X e = sono già presenti e non vengono riscritti. 10 C variabile

10 Esempio X 1 = 3 ( 4 A B 1 ) 6 * X = ( variabile operatore operatore 4 A variabile L analisi lessicale produce quindi, come output, i seguenti token o coppie, dove al posto delle descrizioni (X,=,A, ecc.), in effetti viene inserito il puntatore alla Tabella dei simboli B ) * operatore variabile operatore operatore X = ( A + B ) * costante (1,1) (3,2) (4,3) (1,4) (5,5) (1,6) (6,7) (7,8) (2,9) Il primo numero del token è la rappresentazione interna del simbolo riconosciuto, mentre il secondo è il puntatore alla Tabella dei simboli. Il primo numero serve per l analisi sintattica, il secondo per la generazione del codice.

11 Esempio Nella fase dell analisi lessicale, vengono assegnati nei token gli stessi numeri a operandi diversi. Per esempio, A * B C * D non sono le stesse espressioni, ma la struttura è la stessa perché si esegue in ogni caso un prodotto. Infatti, nel nostro esempio, per entrambe viene generato il numero

12 Esercizio lessicale. Costruire la Tabella di simboli e i token della seguente istruzione: BEGIN X=X+1 END Il primo numero identifica il tipo di operando dell istruzione input: 1 per gli identificatori 2 per i numeri BEGIN X 3 per il simbolo = 4 per il simbolo per i comandi (parole riservate) = 3 X END 5 TABELLA DEI SIMBOLI BEGIN X = + 1 parola riservata variabile operatore operatore costante TOKEN Il primo numero del token è la rappresentazione interna del simbolo riconosciuto, mentre il secondo è il puntatore alla Tabella dei simboli. (5,1) (1,2) (3,3) (1,2) (4,4) (2,5) (5,6) 6 END parola riservata

13 TEST lessicale. Costruire la Tabella di simboli e i token della seguente istruzione: FOR X=1 TO 10 DO Y=Y + 1

14 2) ANALISI SINTATTICA Tabella simboli lessicale sintattica Generazione codice interm Ottimizzazione Generazione codice errori La sequenza di token generata dalla fase di lessicale, viene controllata dall analizzatore sintattico, il quale ha il compito di stabilire se le varie frasi rispettano le regole grammaticali del linguaggio mediante controlli, quali ad esempio: un identificatore non deve essere dichiarato più di una volta, tutte le variabili devono essere dichiarate prima del loro uso, ecc. In pratica, durante questa fase si accerta se l istruzione del linguaggio pervenuta, è sintatticamente corretta o no. Per esempio, l istruzione A + * B è scorretta perché contiene due operatori consecutivi, ed è compito di questa fase accertarne la scorrettezza.

15 Esempio Nell esempio precedente, se all analizzatore lessicale arriva in input l istruzione A * B, esso produce in output il numero 1 7 1, che giunge in input all analizzatore sintattico, il quale ne riconosce la validità sintattica senza però conoscerne gli operandi. Infatti, anche per l istruzione C * D esso riceve il numero Il fatto che le parole su cui opera sono diverse, non interessa all analizzatore sintattico. Esso controlla solo se la struttura delle istruzioni input è compatibile o meno con la sintassi del linguaggio di programmazione considerato. Il fatto che le parole su cui opera sono diverse, interesserà invece in un secondo momento per la generazione del codice macchina.

16 3) GENERAZIONE CODICE INTERMEDIO Tabella simboli lessicale sintattica Generazione codice interm Ottimizzazione Generazione codice errori Nella terza fase viene generato il codice intermedio, utilizzando le strutture prodotte nella precedente fase di analisi sintattica, in modo da ottenere una sequenza di istruzioni molto vicina al codice macchina (in qualche caso per linguaggio intermedio viene inteso il linguaggio assembler della macchina oggetto). Alcuni vecchi compilatori non prevedono il passaggio attraverso questa fase intermedia e generano direttamente il codice macchina che risulta, però, poco ottimizzato.

17 4) OTTIMIZZAZIONE Tabella simboli lessicale sintattica Generazione codice interm Ottimizzazione Generazione codice errori La successiva fase di ottimizzazione ha lo scopo di produrre un codice oggetto il più possibile efficiente, ovvero: più veloce, occupi meno spazio in memoria.

18 5) GENERAZIONE CODICE Tabella simboli lessicale sintattica Generazione codice interm Ottimizzazione Generazione codice errori La generazione del codice oggetto è la fase finale del processo di compilazione, nella quale vengono scelte: - le locazioni di memoria a cui assegnare le singole istruzioni, - la modalità di esecuzione delle istruzioni, che dipende dal particolare tipo di hardware utilizzato. Il linguaggio macchina è diverso a seconda della CPU presente nel calcolatore. Quindi i programmi eseguibili (in linguaggio macchina) sono strettamente dipendenti, sia dalla piattaforma hardware che dal particolare sistema operativo adottato.

19 6) ANALISI ERRORI Tabella simboli lessicale sintattica Generazione codice interm Ottimizzazione Generazione codice errori In ciascuna delle cinque fasi c è l interazione con due particolari moduli del compilatore: 1. Tabella dei simboli, 2. errori. 1. La Tabella dei simboli provvede alla memorizzazione di tutti i nomi presenti nel programma, e di tutte le informazioni associate. 2. L errori viene richiamata durante le varie fasi del processo di compilazione in cui si è riscontrato un errore. Provvede a produrre un opportuno messaggio per la diagnostica, per far si che la fase di compilazione possa proseguire, e possa essere scoperto il maggior numero di errori possibile.

20 Esempio Gli errori possono venir fuori in una qualsiasi fase: caricamento, compilazione, elaborazione. È necessario quindi avere una corretta diagnostica degli errori. Un compilatore che non fosse in grado di effettuare una diagnostica, non sarebbe utilizzabile. Fare una corretta diagnosi degli errori, ed eventualmente una correzione di quelli che si sono verificati, è un problema estremamente complesso. 1) Se supponiamo di utilizzare un linguaggio di programmazione in cui non conta lo spazio separatore, allora avremmo una grande flessibilità di linguaggio, contro un lavoro molto complesso dell analizzatore. In questo caso, l istruzione FOR M=1 potrebbe essere scritta anche come FORM=1. È ovvio che l analizzatore lessicale non può distinguere subito che FOR è una parola riservata (o comando), potrebbe anche considerarla come una variabile FORM a cui assegnare il valore 1. 2) Se invece supponiamo di utilizzare un linguaggio di programmazione in cui conta lo spazio separatore, ovvero si impone che gli identificatori devono essere separati da almeno uno spazio, allora avremmo un lavoro più semplice dell analizzatore, contro una minore flessibilità di linguaggio.

21 IN PRATICA Supponiamo di utilizzare un linguaggio di programmazione denominato CLIPPER. Il programmatore utilizzerà un programma di editor (MS EDIT, BLOCCO NOTE, ecc.) per scrivere il programma sorgente, (che sarà salvato con estensione.prg). Questo file sarà leggibile dal programmatore, incomprensibile per l utente finale e per il computer. Mediante il programma Blocco note, il programmatore scrive un file di nome GEMAG.PRG, contenente una serie di istruzioni in linguaggio CLIPPER.

22 In pratica Dopo aver scritto e salvato il programma con Blocco note, il programmatore esegue un altro programma, chiamato in questo caso CL, seguito dal nome del file e da altri parametri, per avviare la fase di compilazione del programma GEMAG.PRG. Programma sorgente, scritto dal programmatore con il programma Blocco note Fase di compilazione, avviata dal programmatore tramite il programma CL Codice oggetto, file creato automaticamente, con nome GEMAG.EXE.

23 In pratica Alla fine della compilazione, automaticamente sarà creato un nuovo file, di nome GEMAG.EXE, che rappresenta il codice oggetto. Questo nuovo file sarà incomprensibile per il programmatore e per l utente finale, leggibile e quindi eseguibile per il computer. Codice oggetto

24 Compilatori ed interpreti Il COMPILATORE esegue una sola volta il seguente processo: 1) legge tutte le istruzioni del programma sorgente e le traduce in linguaggio macchina; 2) memorizza su disco il programma eseguibile tradotto in linguaggio macchina. Al termine della compilazione avremo un programma eseguibile in linguaggio macchina. La traduzione di ogni istruzione del programma avviene una sola volta, anche se una stessa istruzione viene ripetuta più volte all interno del programma. Non occorre avere il compilatore ed il sorgente per eseguire il programma: basta il programma eseguibile. Vantaggi Più velocità, una sola traduzione. Copyright, solo codice oggetto. Correttezza di tutte le istruzioni a priori. Svantaggi Più memoria, un nuovo file.exe. Controlla tutte le istruzioni, anche quelle mai utilizzate dall utente.

25 INTERPRETE L INTERPRETE esegue più volte il seguente processo: 1) legge una istruzione del programma sorgente; 2) traduce l istruzione in linguaggio macchina; 3) esegue l istruzione tradotta, 4) passa all interpretazione dell istruzione successiva. Al termine di questa operazione, del programma in linguaggio macchina non rimane alcuna traccia (la traduzione non viene memorizzata). Se il programma torna più volte su una stessa istruzione, questa verrà tradotta (ed eseguita) ogni volta. È necessario disporre del programma sorgente e dell interprete per poter eseguire il programma. Vantaggi Meno memoria, solo programma sorgente. Controlla solo le istruzioni utilizzate dall utente. Svantaggi Meno velocità, ogni volta una traduzione. Copyright, occorre sempre il programma sorgente. Mancata correttezza di tutte le istruzioni a priori, sono sicuramente corrette solo quelle eseguite dall utente.

26 LIBRERIE Le librerie sono delle funzioni di uso comune, già compilate, in forma di moduli oggetto, e raggruppate in files. Ci sono due tipi di librerie, con due modi diversi di integrazione con il codice oggetto: 1) librerie con link statico: cioè fisicamente messe insieme ai moduli oggetto nel file eseguibile; 2) librerie con link dinamico: queste non sono fisicamente inserite nell'eseguibile; nell'eseguibile ci sono solo i nomi delle funzioni utilizzate ed il loro "indirizzo", le librerie vengono collegate al programma solo al momento dell'esecuzione. In questo modo il file eseguibile è molto più piccolo e maneggevole. In Windows, hanno l'estensione dll.

27 Librerie Nel caso del link dinamico, le librerie ovviamente devono trovarsi sempre sul computer dove risiede il programma eseguibile. Nel caso del link statico, invece, il programma eseguibile si può portare da un computer ad un altro, senza preoccuparsi dell esistenza delle librerie sui vari computer.

28 LINKER Il linker è un programma che collega insieme tutti i moduli oggetto che costituiscono il programma, con le librerie, creando in questo modo un file eseguibile, cioè un programma pronto per essere eseguito dal computer. Una volta passate le fasi di compilazione e link, un programma diventa un file pronto per essere eseguito. L'esecuzione avviene tramite il sistema operativo, che deve preparare le tabelle che lo descrivono, caricarlo in memoria e passargli il controllo.

29 Linker Dal punto di vista dell'utente, l'esecuzione si può ottenere in vari modi: in ambiente Windows si può cliccare su un'icona dell'interfaccia grafica che rappresenta il programma; in ambiente Unix si può scrivere il nome del programma come un comando dell interfaccia a caratteri; un programma può anche essere fatto partire da un altro programma (file batch); alcuni programmi vengono fatti partire in modo automatico, all'accensione del computer (autoexec.bat, Esecuzione automatica ).

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

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

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

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione

DAGLI 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

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 alla Programmazione. Giselda De Vita

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

Dettagli

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema Algoritmo 2 Procedimento di risoluzione di un problema La programmazione Ver. 2.4 Permette di ottenere un risultato eseguendo una sequenza finita di operazioni elementari Esempi: Una ricetta di cucina

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

Concetti di Base sulla Programmazione. Prof.Ing.S.Cavalieri

Concetti di Base sulla Programmazione. Prof.Ing.S.Cavalieri Concetti di Base sulla Programmazione Prof.Ing.S.Cavalieri 1 La Programmazione Dato un problema INFORMATICO, programmare significa: Definire i dati in ingresso e il risultato che si vuole raggiungere Definire

Dettagli

Linguaggi di programmazione

Linguaggi 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

Dettagli

Linguaggi di alto livello, compilatori e interpreti

Linguaggi 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

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

Unità Didattica 2 I Linguaggi di Programmazione

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

Dettagli

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina

Dettagli

Esempio. Le istruzioni corrispondono a quelle di sopra, ma sono scritte in modo simbolico. E indipendente dalla machina

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

Dettagli

Unità di apprendimento 6. Il software: dal linguaggio alla applicazione

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

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

COMPILAZIONE. Tarsformazione di linguaggi

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

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

la traduzione dei programmi ed introduzione a Java

la 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

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

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Corso di Fondamenti di Informatica Linguaggi di Programmazione Corso di Fondamenti di Informatica Linguaggi di Programmazione Anno Accademico Francesco Tortorella Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di

Dettagli

Linguaggi di programmazione

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

Dettagli

Introduzione a Java. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni

Introduzione a Java. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni Introduzione a Java IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni Linguaggi di programmazione Ogni programma viene scritto utilizzando un linguaggio specializzato, formale e comprensibile da

Dettagli

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Corso 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

Dettagli

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la

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

Fasi di un Compilatore

Fasi 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

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione Linguaggi di Programmazione Programmazione. Insieme delle attività e tecniche svolte per creare un programma (codice sorgente) da far eseguire ad un computer. Che lingua comprende

Dettagli

Lezione 16. Il Software di base

Lezione 16. Il Software di base Lezione 16 Software di base Il Software di base Con il termine software di base si intende l insieme dei programmai che consentono ad un utente di eseguire operazioni base come costruire e mandare in esecuzione

Dettagli

Linguaggi, compilatori e interpreti

Linguaggi, compilatori e interpreti Linguaggi, compilatori e interpreti 1 Il codice macchina Ciascun calcolatore ha un ampio insieme di istruzioni che è in grado di eseguire. Le istruzioni vengono rappresentate mediante sequenze di bit 001000100011

Dettagli

Primi passi col linguaggio C

Primi passi col linguaggio C Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta

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

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

Programmazione: Sommario

Programmazione: Sommario Programmazione: Sommario Concetti di Base della Programmazione; Algoritmi; Diagrammi di Flusso; Istruzioni Sequenziali, Condizionali, Cicliche; Logo Variabili, Procedure e Parametri; 1 Il Problema computazionale

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

10: I LINGUAGGI di PROGRAMMAZIONE PARTE 1

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

Dettagli

Calcolatori Elettronici Parte VIII: linguaggi assemblativi

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

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

AMBIENTI DI PROGRAMMAZIONE

AMBIENTI DI PROGRAMMAZIONE AMBIENTI DI PROGRAMMAZIONE È l'insieme dei programmi che consentono la scrittura, la verifica e l'esecuzione di nuovi programmi (fasi di sviluppo) Sviluppo di un programma Affinché un programma scritto

Dettagli

Concetti di base dell ICT

Concetti di base dell ICT Informatica Linguaggio di programmazione Computer Bit Algoritmo Linguaggio macchina Informatica: Informazione automatica Gli anglosassoni usano il termine Computer Science = Scienza dei Calcolatori Computer:

Dettagli

Fondamenti VBA. Che cos è VBA

Fondamenti VBA. Che cos è VBA Fondamenti VBA Che cos è VBA VBA, Visual Basic for Application è un linguaggio di programmazione, inserito nelle applicazioni Office di Microsoft (Ms Word, Ms Excel, Ms PowerPoint, Visio). VBA è una implementazione

Dettagli

Corso di Linguaggi di Programmazione + Laboratorio

Corso 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

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

; programma MOV AX, DATO_1. ; somma al contenuto dell' accumulatore il contenuto del registro B

; programma MOV AX, DATO_1. ; somma al contenuto dell' accumulatore il contenuto del registro B Linguaggi di programmazione Il linguaggio base di un elaboratore è il linguaggio macchina. Linguaggio macchina: insieme di istruzioni espresse nel formato numerico (binario) di un particolare processore.

Dettagli

Analizzatore lessicale o scanner. Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser.

Analizzatore lessicale o scanner. Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser. Analizzatore lessicale o scanner Dispensa del corso di Linguaggi e Traduttori A.A. 2005-2006 Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser. Lo scanner,

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

Linguaggi di programmazione

Linguaggi 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

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 07 Traduzione ed esecuzione di programmi Carla Limongelli Ottobre 2011 Traduzione ed esecuzione di programmi 1 Prerequisiti Architettura

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

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

Laboratorio di Calcolo Linguaggi di programmazione

Laboratorio di Calcolo Linguaggi di programmazione Laboratorio di Calcolo Linguaggi di programmazione Software Insieme di istruzioni e dati trattati dal computer Le istruzioni possono essere a diversi livelli Istruzioni macchina: insieme limitato di funzioni

Dettagli

Modulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1

Modulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1 Concetti base della Tecnologia dell informazione Algoritmi Come interpreta un computer un problema? Algoritmi Algoritmo: sequenza ordinata di istruzioni per risolvere un problema (tradotto: sequenza di

Dettagli

Fondamenti di Algoritmi

Fondamenti di Algoritmi Fondamenti di Algoritmi Corsi di Informatica Grafica Prof. Manuel Roveri Dipartimento di Elettronica e Informazione roveri@elet.polimi.it Indice Algoritmi: Definizione Diagrammi di Flusso Esempi ed esercizi

Dettagli

Come ragiona il computer. Problemi e algoritmi

Come ragiona il computer. Problemi e algoritmi Come ragiona il computer Problemi e algoritmi Il problema Abbiamo un problema quando ci poniamo un obiettivo da raggiungere e per raggiungerlo dobbiamo mettere a punto una strategia Per risolvere il problema

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

Corso Programmazione

Corso Programmazione Corso Programmazione 2008-2009 (docente) Fabio Aiolli E-mail: aiolli@math.unipd.it Web: www.math.unipd.it/~aiolli (docenti laboratorio) A. Ceccato, F. Di Palma, M. Gelain Dipartimento di Matematica Pura

Dettagli

Rappresentazione con i diagrammi di flusso (Flow - chart)

Rappresentazione con i diagrammi di flusso (Flow - chart) Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo

Dettagli

LINGUAGGI DI PROGRAMMAZIONE E CODIFICA PROGRAMMI

LINGUAGGI DI PROGRAMMAZIONE E CODIFICA PROGRAMMI LINGUAGGI DI PROGRAMMAZIONE E CODIFICA PROGRAMMI Giacomo Piscitelli pag. 1/10 Dall Algoritmo al Programma Metodo risolutivo problema algoritmo Linguaggio programma Individuazione di un metodo risolutivo

Dettagli

PROBLEMI ALGORITMI E PROGRAMMAZIONE

PROBLEMI ALGORITMI E PROGRAMMAZIONE PROBLEMI ALGORITMI E PROGRAMMAZIONE SCIENZE E TECNOLOGIE APPLICATE CLASSE SECONDA D PROGRAMMARE = SPECIFICARE UN PROCEDIMENTO CAPACE DI FAR SVOLGERE AD UNA MACCHINA UNA SERIE ORDINATA DI OPERAZIONI AL

Dettagli

Linguaggi di programmazione e astrazione

Linguaggi 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

Dettagli

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi 0.1.1.1 Definire un algoritmo 1. Con il termine algoritmo si intende: a) il software utilizzato in un calcolatore b) l elenco finito di istruzioni necessario per risolvere un problema c) un elaboratore

Dettagli

Prof.Claudio Maccherani 1995

Prof.Claudio Maccherani 1995 I.T.C. "V.Emanuele II" - Perugia Prof.Claudio Maccherani 1995 2004 / 05 INDICE LINGUAGGI di PROGRAMMAZIONE...1 TRADUTTORI...1 INTERPRETE...2 COMPILATORE (e LINK)...3 ASSEMBLATORE...4 Confronto tra Assembler

Dettagli

Prof. Rossella Cancelliere

Prof. Rossella Cancelliere Laboratorio di Informatica e Statistica Chimica Industriale a.a 2004/05 Prof. Rossella Cancelliere Dip. Informatica Univ.Torino C.so Svizzera 185,Torino email:cancelli@di.unito.it tel: 011/670 67 77 Obiettivi

Dettagli

Introduzione ai Calcolatori Elettronici

Introduzione ai Calcolatori Elettronici Introduzione ai Calcolatori Elettronici Elementi di Base dell ICT Information and Communication Technology Concetti Introduttivi A.A. 2013/2014 Domenica Sileo Università degli Studi della Basilicata Elementi

Dettagli

Il software: dall algoritmo al linguaggio macchina

Il software: dall algoritmo al linguaggio macchina Il software: dall algoritmo al linguaggio macchina Raffaella Brighi, a.a. 2007/08 Lezione II 3 ottobre 2007 Corso di Informatica A.A. 2007-08 CdL Operatore Giuridico d Impresa. Linguaggi di programmazione

Dettagli

Introduzione a Visual Studio Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Introduzione a Visual Studio Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Introduzione a Visual Studio 2010 Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Sviluppo del Software Un editor e un word processor specializzato e usato per scrivere i moduli sorgenti

Dettagli

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione

Dettagli

Algoritmi e Linguaggi

Algoritmi 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

Dettagli

Cosa è l Informatica?

Cosa è l Informatica? Cosa è l Informatica? Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, elaborazione e trasmissione dell informazione Elaboratore

Dettagli

Programmazione. Andrea Passerini Informatica. Programmazione

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

Dettagli

Informatica (A-K) 6. Linguaggi di programmazione

Informatica (A-K) 6. Linguaggi di programmazione I linguaggi di alto livello Informatica (A-K) 6. Linguaggi di programmazione Introduzione alla programmazione Caratteristiche dei linguaggi di programmazione I linguaggi di programmazione di alto livello

Dettagli

Algoritmi, linguaggi e programmi. Emilio Di Giacomo e Walter Didimo

Algoritmi, linguaggi e programmi. Emilio Di Giacomo e Walter Didimo Algoritmi, linguaggi e programmi Emilio Di Giacomo e Walter Didimo Risolvere i problemi Il calcolatore permette di risolvere molti problemi, ma sfortunatamente non tutti Il concetto di algoritmo consente

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

Dettagli

Sorgenti di errore. Laboratorio di Informatica 1

Sorgenti di errore. Laboratorio di Informatica 1 Sorgenti di errore Semplificazioni introdotte nel modello Errori nei dati (errore inerente) Errori di arrotondamento nei dati e nei calcoli (errori dovuti alla precisione finita) Errori di troncamento:procedimento

Dettagli

Cos è. In un linguaggio di programmazione si possono distinguere:

Cos è. In un linguaggio di programmazione si possono distinguere: Cos è Un linguaggio di programmazione è un linguaggio dotato di un insieme di regole per scrivere programmi per computer, ovvero un insieme di istruzioni che a partire da un insieme di dati di input, applicando

Dettagli

Dalla prima lezione. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 7 VARIABILI E COSTANTI 28/02/2016. Concetto di algoritmo

Dalla prima lezione. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 7 VARIABILI E COSTANTI 28/02/2016. Concetto di algoritmo LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 7 VARIABILI E COSTANTI Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna

Dettagli

Il Modello di un Compilatore. La costruzione di un compilatore per un particolare linguaggio di programmazione e' abbastanza complessa.

Il Modello di un Compilatore. La costruzione di un compilatore per un particolare linguaggio di programmazione e' abbastanza complessa. Il Modello di un Compilatore La costruzione di un compilatore per un particolare linguaggio di programmazione e' abbastanza complessa. La complessità dipende dal linguaggio sorgente. Compilatore: traduce

Dettagli

Introduzione al Linguaggio C ed all IDE DEV-C++

Introduzione al Linguaggio C ed all IDE DEV-C++ Microsoft Windows e Dev-C++ Introduzione al Linguaggio C ed all IDE DEV-C++ 1 Le Esercitazioni in Laboratorio! MTA + MLAB1/2: Edificio Via Valotti, primo piano e piano interrato! Orario: Giovedì 14:30-17:30!

Dettagli

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software: Il Software L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software: un insieme di programmi che permettono di trasformare un insieme di circuiti

Dettagli

Marta Capiluppi Dipartimento di Informatica Università di Verona

Marta Capiluppi Dipartimento di Informatica Università di Verona Marta Capiluppi marta.capiluppi@univr.it Dipartimento di Informatica Università di Verona I Dati Ogni variabile è caratterizzata da Nome Valori Tipo Numeri naturali o interi o reali (1, -2, 0.34) Caratteri

Dettagli

Informatica. Terzo anno Prof. A. Longheu

Informatica. Terzo anno Prof. A. Longheu Informatica Terzo anno Prof. A. Longheu Definizioni Un linguaggio di programmazione è un linguaggio formale (cioè descritto da regole) utilizzato per implementare gli algoritmi Richiami: Un algoritmo è

Dettagli

Sistema Operativo (Software di base)

Sistema Operativo (Software di base) Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:

Dettagli

Informatica Generale Andrea Corradini I linguaggi di programmazione

Informatica Generale Andrea Corradini I linguaggi di programmazione Informatica Generale Andrea Corradini 17 - I linguaggi di programmazione Sommario Cos'è un linguaggio di programmazione? Una prospettiva storica: linguaggi di prima, seconda e terza generazione I paradigmi

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima

Dettagli

Fondamenti di programmazione e Laboratorio di introduzione alla programmazione (modulo 1)

Fondamenti di programmazione e Laboratorio di introduzione alla programmazione (modulo 1) Fondamenti di programmazione e Laboratorio di introduzione alla programmazione (modulo 1) Docente: Eugenia Occhiuto e-mail: occhiuto@di.unipi.it web: http://www.di.unipi.it/~occhiuto Ricevimento al Polo

Dettagli

Linguaggio C Struttura dei programmi

Linguaggio C Struttura dei programmi FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Struttura dei programmi 2001 Pier Luca Montessoro - Davide

Dettagli

Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione

Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione Che cos e l Informatica Scienza dell elaborazione dell informazione Informatica generale non si riduce all utilizzo di strumenti (e.g. linguaggi di programmazione e basi di dati); si occupa del trattamento

Dettagli

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi Informatica Generale Andrea Corradini 12 - Gli algoritmi e la risoluzione di problemi Sommario Che significa risolvere un problema? Algoritmi e programmi Rappresentazione di algoritmi Lo pseudocodice Primitive

Dettagli

Lezione 1. Problemi Algoritmi Programmi

Lezione 1. Problemi Algoritmi Programmi Lezione 1 Problemi Algoritmi Programmi Programmazione I Paolo Valente - 2016/2017 Il problema... della tigella emiliana Avete invitato a cena degli amici stranieri e volete fare provare loro le tigelle

Dettagli

Linguaggio C: introduzione

Linguaggio C: introduzione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: introduzione La presente dispensa e da utilizzarsi

Dettagli

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Programmare in C 1 Calcolare l area di un rettangolo /* Calcolo area rettangolo */ int base; int altezza; int area; Conosciamo base = 3; altezza = 7; area = base*altezza; printf("%d",

Dettagli

Struttura del calcolatore

Struttura del calcolatore Mondo esterno Dati di ingresso Calcolatore Dati di uscita Mondo esterno Il calcolatore elabora dei dati di ingresso per ottenere dati in uscita In linea di principio, ma non solo, il compito svolto da

Dettagli

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dall'Algoritmo al Programma

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dall'Algoritmo al Programma Istituto Tecnico Statale Commerciale Dante Alighieri Cerignola (FG) Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS Dall'Algoritmo al Programma Pr.: 002 Ver.:1.0 Autore: prof. Michele Salvemini

Dettagli

Le aree dell informatica

Le aree dell informatica Fondamenti di Informatica per la Sicurezza a.a. 2006/07 Le aree dell informatica Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Problema Algoritmo Programma Progettista Programmatore Progetto Programma Esecutore Computer Comittente Utente Dal problema all algoritmo Problema Risolutore ed esecutore Algoritmo

Dettagli

Fondamenti di programmazione!! Parte 2!

Fondamenti di programmazione!! Parte 2! Fondamenti di programmazione!! Parte 2! 1! Definizione intuitiva di algoritmo! n Elenco finito di istruzioni che specificano una serie di operazioni, eseguendo le quali e possibile risolvere ogni istanza

Dettagli

Architettura di Von Neumann

Architettura di Von Neumann Architettura di Von Neumann L architettura è ancora quella classica sviluppata da Von Neumann nel 1947. L architettura di Von Neumann riflette le funzionalità richieste da un elaboratore: memorizzare i

Dettagli

Introduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C

Introduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C Introduzione 2 Introduzione al C Linguaggio di programmazione ad alto livello (HLL) Sviluppato negli anni 70 (C standard ANSI) Molto diffuso e adatto ad un ampio spettro di applicazioni: Scientifiche Gestionali

Dettagli