ELEMENTI DI PROGRAMMAZIONE LINGUAGGI DI PROGRAMMAZIONE: LE BASI. Andrea Prevete - UNINA2 - a.a. 2009/10
|
|
- Giovanna Gattini
- 7 anni fa
- Visualizzazioni
Transcript
1 ELEMENTI DI PROGRAMMAZIONE LINGUAGGI DI PROGRAMMAZIONE: LE BASI 1
2 PROGRAMMAZIONE: LE BASI Un computer digitale è un dispositivo che elabora simboli codificati (a partire da un alfabeto finito di simboli primitivi, cifre o digit ) così che, opportunamente interpretati, i simboli di partenza e quelli terminali costituiscono rispettivamente la descrizione di un problema e la sua soluzione. 2
3 PROGRAMMAZIONE: LE BASI Osservando l azione di un repertorio di quadruple che duplica una sequenza di 1 sul nastro di una macchina di Turing possiamo ragionevolmente interpretare il tutto affermando che la macchina ha eseguito una moltiplicazione per due. Immaginiamo però di voler determinare le quadruple capaci, dato due interi qualsiasi x ed y, di eseguire l operazione x y. Il compito ci appare fastidioso ed innaturale! 3
4 PROGRAMMAZIONE: LE BASI Il codice base delle quadruple è evidentemente sufficiente alla macchina per manipolare efficientemente i suoi simboli-nastro, ma prolisso e non intuitivo rispetto alle nostre necessità di descrivere dati e passi risolutivi di un problema! 4
5 PROGRAMMAZIONE: LE BASI Allo stesso modo una sequenza di istruzioni di una macchina di Von Neumann (quindi il PC che abbiamo in questo momento sulla scrivania!), pur perfetta per manipolare efficientemente i contenuti di celle di memoria e registri, è interpretabile per i macroeffetti che produce (e quindi al livello del problema!) solo a patto di un esame attento e minuzioso 5
6 PROGRAMMAZIONE: LE BASI Esempio di sequenza per stampare le parole immesse dalla tastiera (processore x86): READ_STRING: MOV BX, KEYBOARD MOV CX, L_BUFFER LEA DX, BUFFER MOV AH, 3FH INT 21H MOV BYTES_READ, AX CMP BYTES_READ, 0 JE FINISHED MOV BX, PRINTER MOV CX, BYTES_READ LEA DX, BUFFER MOV AH, 40H INT 21H JMP READ_STRING FINISHED: 6
7 PROGRAMMAZIONE: LE BASI Fortunatamente, in tutti i moderni sistemi di elaborazione, l interazione con la macchina reale è mediata da almeno due componenti fondamentali.. 1) il Sistema Operativo, che garantisce la virtualizzazione di tutta una serie di servizi fondamentali quali la gestione della memoria fisica, delle periferiche, dell interfaccia utente, etc. 2) i linguaggi di programmazione cosiddetti di alto livello, che consentono di progettare e realizzare compiti elaborativi concentrandosi sul livello del problema e quindi astraendo dalle specifiche tecniche della macchina fisica. 7
8 PROGRAMMAZIONE: LE BASI 8
9 PROGRAMMAZIONE: LE BASI 9
10 PROGRAMMAZIONE: LE BASI L insieme di istruzioni scritte in un linguaggio di programmazione ad alto livello prende il nome di codice sorgente ed è generalmente contenuto in uno o più file le cui estensioni caratterizzano linguaggio usato, per es: mioprog.c, o mioprog.cpp 10
11 PROGRAMMAZIONE: LE BASI La definizione di un Linguaggio richiede : 1) Un alfabeto, cioè l insieme di simboli con cui si può costruire il suo lessico, ovvero i termini del linguaggio 2) Una sintassi, quindi le regole di composizione dei termini in frasi ben formate del linguaggio 3) Una semantica, cioè il significato delle frasi ben formate del linguaggio Un parser o analizzatore sintattico per un linguaggio è una procedura che analizza frasi del linguaggio stesso accettando solo quelle ben formate nel senso visto sopra. 11
12 PROGRAMMAZIONE: LE BASI Perché possano essere eseguite da una macchina reale le istruzioni scritte in un linguaggio di alto livello devono essere tradotte nelle corrispondenti istruzioni native della macchina che li eseguirà. Questo processo può avvenire essenzialmente utilizzando due strategie: Un processo di compilazione Un processo di interpretazione 12
13 PROGRAMMAZIONE: LE BASI Sintetizzando Un compilatore traduce definitivamente uno o più file contenenti le istruzioni in linguaggio ad alto livello producendo il cosiddetto file eseguibile: > compila file_sorgente.src file_eseguibile.exe A questo punto il file eseguibile può essere lanciato ogni volta che si vuole e senza ulteriori interventi del compilatore: > esegui file_eseguibile.exe Vantaggi: La traduzione, come detto sopra, è realizzata una volta sola e l eseguibile è quindi sempre pronto per essere lanciato Svantaggi: Per eseguire il programma su macchine diverse occorre compilare ogni volta i sorgenti! 13
14 PROGRAMMAZIONE: LE BASI Un Interprete, invece, ogni volta che viene chiamato in causa traduce ed esegue una per volta le istruzioni contenute nel file sorgente: > Interpreta file_sorgente.src Vantaggi: L interpretazione è più flessibile, perché è possibile eseguire lo stesso file sorgente su macchine diverse Svantaggi: E sicuramente meno efficiente dovendo ogni volta, prima di eseguire, tradurre da linguaggio sorgente a linguaggio macchina 14
15 PROGRAMMAZIONE: LE BASI Sono possibili ibridazioni fra le due tecniche (per es. Java): Le istruzioni vengono tradotte in un linguaggio intermedio (bytecode) indipendente dalla macchina, quindi interpretate ed eseguite. Il primo passo viene eseguito da un compilatore Il secondo da un interprete > compila file_sorgente.src file_intermedio.obj > interpreta file_intermedio.obj Sono quindi assicurati i vantaggi dei due approcci: Il metodo è efficiente perché il linguaggio intermedio è molto vicino al linguaggio macchina e la sua interpretazione - ed esecuzione - è veloce è anche flessibile perché è possibile eseguire il codice intermedio su macchine diverse 15
16 PROGRAMMAZIONE: LE BASI 16
17 PROGRAMMAZIONE: LE BASI 17
18 PROGRAMMAZIONE: LE BASI UNA TASSONOMIA PER I LINGUAGGI DI PROGRAMMAZIONE - Linguaggi imperativi Basati sul concetto di assegnamento: le istruzioni sono sostanzialmente operazioni di modifica delle strutture dati [es: Fortran, Cobol, Pascal, C, Basic] - Linguaggi funzionali Basati sul concetto di funzione: le istruzioni sono funzioni che vengono valutate [es: Lisp] - Linguaggi logici Basati sul concetto di dimostrazione: le istruzioni esprimono relazioni logiche tra input e output [es: Prolog] - Linguaggi ad oggetti Basati sul concetto di dato come oggetto attivo, in grado di ricevere e inviare messaggi [es: Smalltalk, C++, CLOS, Java] - Linguaggi di scripting Linguaggi di programmazione interpretati che sono destinati in genere a compiti di automazione del sistema o delle applicazioni (macro), o ad essere usato all'interno delle pagine web. [es: Javascript, Php, Asp, Jsp, Python] 18
19 PROGRAMMAZIONE: LE BASI Nella restante parte del corso avremo a che fare essenzialmente con linguaggi imperativi. Ribadiamo, a scanso di equivoci, che tutte le tipologie di linguaggi prima citate sono equipotenti in termini di ampiezza della classe di problemi che possono affrontare e risolvere. Scegliere un tipo di linguaggio piuttosto che un altro significa optare per una certa prospettiva di descrizione di un problema, selezionare una metodologia di approccio alla soluzione non certo dotarsi di strumenti più o meno potenti. 19
20 PROGRAMMAZIONE: LE BASI Passiamo finalmente ad occuparci di cosa concretamente ci rende disponibile un linguaggio di tipo imperativo, sia in termini di descrizione dei dati che di strumenti risolutivi. Cominciamo con l osservare che fondamentalmente un problema è sempre caratterizzato da dei dati in ingresso su cui vogliamo operare per ottenere un risultato. Quindi avremo bisogno di svolgere dei calcoli e di mettere da parte dei risultati parziali. Per fare ciò, ci viene incontro la nozione di contenitore dei dati, cioè un astrazione della nozione di area di memoria contenente dei dati. Tale contenitore di dati è detta variabile di un programma. In un programma avremmo tante variabili quanti sono i dati che ci interessa memorizzare! Ogni contenitore di dati (variabile) avrà un tipo; a seconda del tipo di variabile, avremo un insieme di elementi rappresentabili ed un insieme di operazioni possibili su di essa. 20
21 PROGRAMMAZIONE: LE BASI Certamente avremo a che fare con variabili di tipo intero (int); ciascuna di queste variabili occuperà tipicamente 4 byte in memoria (32 bit) e permetterà di rappresentare un intervallo di numeri interi. Tra le operazioni possibili incontreremo certamente le classiche +, -, *, /, >, <, ==, avendo presente che l insieme dei numeri rappresentabili è finito e tutti i numeri sono interi. Un altro tipo classico è il tipo BYTE, che permette di rappresentare 256 numeri interi. Un altro tipo ancora è il boolean, per la rappresentazioni di variabili booleane (cioè variabili che possono essere VERE o FALSE, 1 o 0). In questo caso, per esempio, l operazione di divisione non sarà definita! 21
22 PROGRAMMAZIONE: LE BASI Vi è poi da fare la distinzione tra dati di tipo semplice (Es. una variabile di tipo intero, reale, testo o logico) ed i dati di tipo strutturato. I dati di tipo strutturato sono dati composti, ad esempio matrici o vettori (es. [ ]). Un altro dato di tipo strutturato sono i record: strutture non uniformi, cioè contenenti più valori non necessariamente dello stesso tipo. Esempio: 1) NUM è una variabile di tipo int che vale 1 L istruzione PRINT(NUM) stamperà il valore di NUM, quindi 1 2) VET è una variabile di tipo vettore di interi che contiene i tre interi 4, 5, -1 L istruzione PRINT(VET[3]) stamperà il valore del terzo elemento del vettore, quindi -1 3) REC è una variabile record composta dai tre campi NOME, COGNOME, CODCLIENTE L istruzione PRINT(VET.CODCLIENTE) stamperà il contenuto del campo CODCLIENTE del record corrente 22
23 PROGRAMMAZIONE: LE BASI Ma quali sono le istruzioni fondamentali per lavorare sui dati? Fondamentalmente tre: 1) Istruzioni di Input / Output; 2) Istruzioni di Assegnazione; 3) Istruzioni di controllo. 23
24 PROGRAMMAZIONE: LE BASI INPUT/ OUTPUT Le istruzioni di ingresso / uscita permettono di acquisire dati e di presentare risultati. Ad esempio: read (a) - acquisisci un dato da tastiera ed assegnalo come valore alla variabile a; print ('La media dei valori dati in ingresso è ', media) - stampa il contenuto della variabile media, preceduto da una stringa commento 24
25 PROGRAMMAZIONE: LE BASI ASSEGNAZIONE Le istruzioni di assegnazione modificano lo stato di memoria, cioè i valori dei contenitori dati (detti variabili). Sono della forma: VARIABILE = ESPRESSIONE [(leggi: assegna a VARIABILE il valore di ESPRESSIONE)] Es.: a = b + 3 ESPRESSIONE può essere una costante, una variabile, un espressione algebrica, una funzione, etc Una volta calcolato il valore di ESPRESSIONE sostituisce il vecchio valore di VARIABILE 25
26 PROGRAMMAZIONE: LE BASI ISTRUZIONI DI CONTROLLO Le istruzioni di controllo permettono di pilotare il flusso di esecuzione delle istruzioni all interno di un programma, altrimenti puramente sequenziale. Esempio: IF x > 0, esegui la prossima istruzione, ELSE termina l esecuzione del programma. 26
27 PROGRAMMAZIONE: LE BASI 27
28 PROGRAMMAZIONE: LE BASI 28
29 PROGRAMMAZIONE: LE BASI 29
30 PROGRAMMAZIONE: LE BASI 30
31 PROGRAMMAZIONE: LE BASI 31
32 PROGRAMMAZIONE: LE BASI ELSE (FALSE!) ESPR? THEN (TRUE!) CMD2 CMD1 32
33 PROGRAMMAZIONE: LE BASI 33
34 PROGRAMMAZIONE: LE BASI 34
35 PROGRAMMAZIONE: LE BASI 35
36 PROGRAMMAZIONE: LE BASI FALSE BESPR? TRUE CMD1.. continua! CMDn 36
37 PROGRAMMAZIONE: LE BASI 37
38 PROGRAMMAZIONE: LE BASI CMD1 CMDn FALSE BESPR? TRUE.. continua! 38
39 PROGRAMMAZIONE: LE BASI 39
40 PROGRAMMAZIONE: LE BASI N=1 CMD1 CMDn N=N+1 FALSE N<MAX? TRUE.. continua! 40
41 PROGRAMMAZIONE: LE BASI 41
42 PROGRAMMAZIONE: LE BASI 42
43 PROGRAMMAZIONE: LE BASI 43
44 PROGRAMMAZIONE: LE BASI 44
45 PROGRAMMAZIONE: LE BASI 45
46 PROGRAMMAZIONE: LE BASI 46
ELEMENTI DI PROGRAMMAZIONE LINGUAGGI DI PROGRAMMAZIONE: LE BASI. Andrea Prevete a.a. 2010/11
ELEMENTI DI PROGRAMMAZIONE LINGUAGGI DI PROGRAMMAZIONE: LE BASI 1 Un computer digitale è un dispositivo che elabora simboli codificati (a partire da un alfabeto finito di simboli primitivi, cifre o digit
DettagliUNINA2 a.a. 2012/13 INGEGNERIA AEROSPAZIALE/MECCANICA ELEMENTI DI PROGRAMMAZIONE. prof Andrea Prevete LINGUAGGI DI PROGRAMMAZIONE: LE BASI
UNINA2 a.a. 2012/13 INGEGNERIA AEROSPAZIALE/MECCANICA ELEMENTI DI PROGRAMMAZIONE prof Andrea Prevete LINGUAGGI DI PROGRAMMAZIONE: LE BASI In un senso molto generale definiamo computer digitale un dispositivo
DettagliIntroduzione alla programmazione
Introduzione alla programmazione Informatica Generale 15/16 Scienze della comunicazione cristina gena cgena@di.unito.it http://www.di.unito.it/~cgena/ teaching.html I calcolatori hanno la caratteristica
DettagliProgramma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
DettagliConcetti Introduttivi
Concetti Introduttivi Linguaggi di Programmazione http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Linguaggi di Programmazione Impartiscono
Dettaglio Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori
Programma del corso o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori o Elementi di Programmazione Algoritmi e programmi o Algoritmo
DettagliIntroduzione alla programmazione
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
DettagliELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)
1 LEZIONE 9 ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) Laboratorio di Informatica per l Educazione A. A. 2014/2015 IN SINTESI (ELABORAZIONE) Con i COMPUTER, le macchine diventano
DettagliLINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione Fortran Cobol Basic Pascal Python C
DettagliLINGUAGGI DI ALTO LIVELLO
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic
DettagliLinguaggi, Traduttori e le Basi della Programmazione
Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi
DettagliIntroduzione alla programmazione
Introduzione alla programmazione Informatica Generale 14/15 Scienze della comunicazione cristina gena cgena@di.unito.it http://www.di.unito.it/~cgena/ teaching.html I calcolatori hanno la caratteristica
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione E una notazione con cui e possibile descrivere gli algoritmi. Programma: e la rappresentazione di un algoritmo in un particolare linguaggio di programmazione. In generale, ogni
DettagliIl linguaggio di programmazione Python
Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani (liverani@mat.uniroma3.it)
DettagliElementi di programmazione
Fondamenti di Informatica per la Sicurezza a.a. 2003/04 Elementi di programmazione Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università
DettagliDAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione
DAGLI ALGORITMI AI LINGUAGGI Linguaggi di Programmazione E` una notazione con cui e` possibile descrivere gli algoritmi. Programma: e` la rappresentazione di un algoritmo in un particolare linguaggio di
DettagliProblema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.
Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la
DettagliI Linguaggi di Programmazione
I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio
DettagliElementi di programmazione
Fondamenti di Informatica per la Sicurezza a.a. 2008/09 Elementi di programmazione Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università
DettagliSommario FONDAMENTI DI INFORMATICA. Definizione formale di algoritmo. Informatica e algoritmi. ALGORITMI E LINGUAGGIO PYTHON Introduzione
Università degli Studi di Cagliari Corsi di Laurea in Ingegneria Chimica e Ingegneria Meccanica FONDAMENTI DI INFORMATICA http://www.diee.unica.it/~marcialis/fi A.A. 2017/2018 Sommario Algoritmi, linguaggi
DettagliTeoria 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
DettagliLINGUAGGI DI ALTO LIVELLO
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic Ada
DettagliSommario Linguaggi, messaggi e comunicazione. Introduzione ai Linguaggi di Programmazione. Linguaggio. Messaggio
Sommario Linguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione 1 2 Linguaggio Messaggio Insieme di sequenze di simboli, le parole,
DettagliALGORITMI: PROPRIETÀ FONDAMENTALI
ALGORITMI: PROPRIETÀ FONDAMENTALI Non si può risolvere un problema senza prima fissare un insieme di azioni, i di mosse elementari possibili per l'esecutore. Bisogna conoscerne le caratteristiche, le mosse
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione Linguaggi di Programmazione Programmazione. Insieme delle attività e tecniche svolte per creare un programma (codice sorgente) da far eseguire ad un computer. Che lingua comprende
DettagliFONDAMENTI DI INFORMATICA
Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia talia@deis.unical.it A.A. 2002-2003 Facoltà di Ingegneria UNICAL Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica
DettagliProgrammazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica
Programmazione Dipartimento di Matematica Ing. Cristiano Gregnanin Corso di laurea in Matematica 29 febbraio 2016 1 / 28 Linguaggi 2 / 28 Linguaggi 3 / 28 Linguaggi di alto livello Si basano su una macchina
DettagliSommario Linguaggi, messaggi e comunicazione. Introduzione ai Linguaggi di Programmazione. Linguaggio (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,
DettagliC++ Barriera di astrazione. Barriera di astrazione. Basic. Basic. Lisp. Lisp. Pascal. Prolog. Pascal. Prolog. Cobol. Fortran IMPERATIVI FUNZIONALI
Linguaggi di alto livello Barriera di astrazione C Fortran Cobol Modula-2 Basic Pascal Algol Ada Lisp Smalltalk Simula67 Scheme C++ Prolog ML AN - 1995 Linguaggi di alto livello IMPERATIVI C Fortran Modula-2
DettagliLinguaggi di alto livello. Barriera di astrazione. Pascal. Cobol. Fortran. Basic. Modula-2. Lisp. Simula67 Scheme. Smalltalk C++ Prolog AN
Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Basic Pascal Algol Ada Lisp Smalltalk Simula67 Scheme C++ Prolog ML AN - 1995 Linguaggi di alto livello IMPERATIVI Fortran Cobol
DettagliIntroduzione alla Programmazione. Giselda De Vita
Introduzione alla Programmazione Giselda De Vita - 2015 1 Sulla base dell ambito in cui si colloca il problema da risolvere, è opportuno adottare un linguaggio piuttosto che un altro: ² Calcolo scientifico:
DettagliPROBLEMI E ALGORITMI
Fondamenti di Informatica PROBLEMI E ALGORITMI Fondamenti di Informatica - D. Talia - UNICAL 1 Specifica di un algoritmo Primo approccio, scrittura diretta del programma: la soluzione coincide con la codifica
DettagliLezione 6 Introduzione al C++ Mauro Piccolo
Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,
Dettaglila traduzione dei programmi ed introduzione a Java
la traduzione dei programmi ed introduzione a Java programmi descrizioni di algoritmi effettuate tramite linguaggi di programmazione lo stesso algoritmo, fissato un linguaggio di programmazione, può essere
DettagliLinguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione
Sommario Linguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione 1 2 Linguaggio (1) Linguaggio (2) Insieme di sequenze di simboli,
DettagliLez. 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
DettagliCalcolo numerico e programmazione Programmazione
Calcolo numerico e programmazione Programmazione Tullio Facchinetti 11 maggio 2012 14:05 http://robot.unipv.it/toolleeo La programmazione la programmazione è l insieme delle
DettagliLez. 5 La Programmazione. Prof. Salvatore CUOMO
Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Struttura di un programma Java
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA 1 Struttura di un programma Java Un programma Java consiste in un insieme di definizioni di classi. In genere
DettagliCorso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Simulazione del Questionario a Risposte Multiple.
Domanda n. 1 Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Simulazione del Questionario a Risposte Multiple 8-Nov-2004 Argomento: Rappresentazione dell'informazione
DettagliIntroduzione al funzionamento di un calcolatore elettronico
1 / 21 Introduzione al funzionamento di un calcolatore elettronico Natascia Piroso 23 settembre 2009 2 / 21 Sommario Che cos è un calcolatore? 1 Che cos è un calcolatore? Definizioni preliminari Il calcolatore
DettagliCorso di Fondamenti di Informatica Linguaggi di Programmazione
Corso di Informatica Linguaggi di Programmazione Anno Accademico 2011/2012 Francesco Tortorella Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di un
DettagliLinguaggi di programmazione
Linguaggi di programmazione Programmazione L attività con cui si predispone l elaboratore ad eseguire un particolare insieme di azioni su particolari dati, allo scopo di risolvere un problema Dati Input
DettagliFONDAMENTI DI INFORMATICA
Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia talia@deis.unical.it A.A. 2002-2003 Facoltà di Ingegneria UNICAL Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica
DettagliCompitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A
Matematica 13/11/2007 Teoria Compito A Domanda 1 Descrivere, eventualmente utilizzando uno schema, gli elementi funzionali di una CPU. Domanda 2 Java è un linguaggio compilato o interpretato? Motivare
DettagliSviluppo di programmi
Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla
DettagliIntroduzione alla programmazione. Walter Didimo
Introduzione alla programmazione Walter Didimo Programmi Un programma è una frase (anche molto lunga) che descrive delle azioni che devono essere svolte da un calcolatore La frase deve essere dettagliata
DettagliInformatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura
Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina
DettagliLinguaggi di alto livello, compilatori e interpreti
Linguaggi di alto livello, compilatori e interpreti Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Limiti del linguaggio assembler Esempio: gestione
DettagliFONDAMENTI DI INFORMATICA
FONDAMENTI DI INFORMATICA Prof. Alfredo Accattatis Slide (rielaborate) del prof. Emiliano Casalicchio accattatis@ing.uniroma2.it Esercizio (1) Dati due vettori V1 e V2 scrivere un algoritmo che permetta
DettagliIl Software programmabili programma algoritmo
Il Software La proprietà fondamentale dei calcolatori e` quella di essere programmabili cioè in grado di svolgere compiti diversi a seconda delle istruzioni fornite dall utente mediante un programma, ossia
DettagliASTRAZIONE. Sono indipendenti dalla macchina hardware sottostante ASTRAZIONE 1
ASTRAZIONE Esistono linguaggi a vari livelli di astrazione Linguaggio Macchina: implica la conoscenza dei metodi utilizzati per la rappresentazione delle informazioni Linguaggio Macchina e Assembler: implica
DettagliInformatica 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
DettagliTecnologie dell'informazione e della comunicazione
Tecnologie dell'informazione e della comunicazione Introduzione al corso e Linguaggi di programmazione ad alto livello Prof. Mauro Gaspari: gaspari@cs.unibo.it Tutor: Elisa Del Bianco: elisadelbianco@gmail.com
DettagliRappresentazione 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
DettagliUniversità degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso
Obiettivi Di seguito vengono riportate una serie di domande che possono essere poste durante la prova formale del corso. Le seguenti domande non sono da ritenersi esaustive ma esemplificative. 1. Architettura
DettagliModulo 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
DettagliProgrammazione C Massimo Callisto De Donato
Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE
DettagliASTRAZIONE ASTRAZIONE
ASTRAZIONE Esistono linguaggi a vari livelli di astrazione Linguaggio Macchina: implica la conoscenza dei metodi utilizzati per la rappresentazione delle informazioni Linguaggio Macchina e Assembler: implica
DettagliLinguaggi di alto livello, compilatori e interpreti
Linguaggi di alto livello, compilatori e interpreti Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Il punto della situazione STATO DATI
DettagliLa formalizzazione dell informazione: Dati e Diagrammi di Flusso
La formalizzazione dell informazione: Dati e Diagrammi di Flusso Codifica degli algoritmi Algoritmo formulato per essere comunicato tra esseri umani chiaro, sintetico e intuitivo codificato in linguaggi
DettagliDall 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
DettagliPag. 1. La formalizzazione dell informazione: Dati e Diagrammi di Flusso. Codifica degli algoritmi
1 Università degli studi di Parma Dipartimento di Ingegneria dell Informazione Informatica a.a. 2012/13 Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni La formalizzazione
DettagliInformatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter
Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Funzionamento macchina di von Neumann clock Memoria Centrale: Tutta l informazione prima di essere
DettagliCorso di Informatica
Corso di Informatica Modulo T2 1 Costanti, variabili ed espressioni 1 Prerequisiti Concetto matematico di variabile, costante ed espressione Valutazione di espressioni Sintassi e regole di precedenza nelle
DettagliLa Programmazione. Cos è la programmazione? Concetti preliminari
La Programmazione Cos è la programmazione? Concetti preliminari 1 Sommario La programmazione, questa sconosciuta Programmiamo Macchine Astratte Linguaggi di basso e alto livello e loro implementazione
Dettagliin termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico
Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito
DettagliAnalizzatore 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,
DettagliFasi di creazione di un programma
Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo Sviluppo di programmi Per la costruzione di un programma
DettagliLe istruzioni corrispondono univocamente a quelle macchina, ma vengono espresse tramite nomi simbolici i (parole chiave)
ASTRAZIONE Esistono linguaggi a vari livelli di astrazione Linguaggio Macchina: implica la conoscenza dei metodi utilizzati per la rappresentazione delle informazioni Linguaggio Macchina e Assembler: implica
DettagliConcetti base programmazione. Antonio Gallo
Concetti base programmazione Antonio Gallo info@laboratoriolibero.com Programma Insieme di istruzioni: Strtturato Ad oggetti Strutturato Ha una struttura più lineare Basato sui concetti di sequenza, selezione,
DettagliMacchine astratte, linguaggi, interpretazione, compilazione
Macchine astratte, linguaggi, interpretazione, compilazione 1 Macchine astratte una collezione di strutture dati ed algoritmi in grado di memorizzare ed eseguire programmi componenti della macchina astratta
DettagliUnità Didattica 2 I Linguaggi di Programmazione
Unità Didattica 2 I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche
DettagliProgrammazione in Java e gestione della grafica (I modulo) Lezione 2: Prime nozioni di Java
Programmazione in Java e gestione della grafica (I modulo) Lezione 2: Prime nozioni di Java Programmi Un programma è un insieme di istruzioni che il computer deve seguire Usiamo programmi in continuazione
DettagliCorso 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
Dettagli28/02/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 5 LA RAPPRESENTAZIONE DELLE ISTRUZIONI
LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 5 LA RAPPRESENTAZIONE DELLE ISTRUZIONI Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna
DettagliAlgoritmi e Linguaggi
Algoritmi e Linguaggi Programmi e linguaggi Un calcolatore è solo un esecutore rapidissimo di istruzioni Un programma è un insieme di istruzioni codificate in un opportuno linguaggio 2 / 21 Linguaggi e
DettagliConcetti 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:
DettagliSistemi di Elaborazione delle Informazioni
Sistemi di Elaborazione delle Informazioni Algoritmi e Programmi 1 Risoluzione di un problema Il procedimento di soluzione di un problema dovrebbe essere caratterizzato da: analisi del problema e identificazione
DettagliElementi di Base. Introduzione a Python.
Elementi di Base Introduzione a Python http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Panoramica Elementi di base della sintassi (struttura,
DettagliCos è 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
DettagliLinguaggi di programmazione
Linguaggi di programmazione Fondamenti di Informatica Daniele Loiacono Ho definito un algoritmo e adesso? Daniele Loiacono Dall algoritmo all esecuzione q Come deve essere formalizzato un algoritmo affinché
DettagliMacchine Astratte. Luca Abeni. February 22, 2017
Macchine Astratte February 22, 2017 Architettura dei Calcolatori - 1 Un computer è composto almeno da: Un processore (CPU) Esegue le istruzioni macchina Per fare questo, può muovere dati da/verso la memoria
DettagliInformatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 20 ottobre Corso di laurea in Economia
Informatica Dipartimento di Economia Ing. Cristiano Gregnanin Corso di laurea in Economia 20 ottobre 2016 1 / 19 Linguaggi 2 / 19 Linguaggi 3 / 19 Linguaggi di alto livello Si basano su una macchina virtuale
DettagliCorso di Linguaggi di Programmazione + Laboratorio
Corso di inguaggi di Programmazione + aboratorio Capitolo 1 - Introduzione Si ringrazia il Dott. Marco de Gemmis per la collaborazione nella predisposizione del materiale didattico Apprendimento di un
DettagliLaboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 4 24/10/2013
Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 4 24/10/2013 Original work Copyright Sara Migliorini, University of Verona Modifications Copyright Damiano Macedonio, University
DettagliLaboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale
Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano Cagnoni Il problema
DettagliAXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori
AXO - Architettura dei Calcolatori e Sistema Operativo organizzazione strutturata dei calcolatori I livelli I calcolatori sono progettati come una serie di livelli ognuno dei quali si basa sui livelli
DettagliFondamenti di Informatica T-1. Introduzione al linguaggio Java Input/output, variabili, tipi
Introduzione al linguaggio Java Input/output, variabili, tipi 2 Programmi e linguaggi Algoritmo sequenza finita di passi per risolvere in un tempo finito un problema Linguaggio di programmazione notazione
DettagliSettimana n.2. Obiettivi Esecuzione di un programma. Tutorial su CodeBlocks e ambiente di sviluppo.
Settimana n.2 Obiettivi Esecuzione di un programma. Tutorial su CodeBlocks e ambiente di sviluppo. Contenuti Linguaggi di programmazione Dati e istruzioni Architettura di un elaboratore Uso del compilatore
Dettagliciclo 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