I linguaggi di alto livello

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "I linguaggi di alto livello"

Transcript

1 I linguaggi di alto livello 1

2 Sommario Introduzione alla programmazione Caratteristiche dei linguaggi di programmazione I linguaggi di programmazione di alto livello Compilatori e interpreti L arte della programmazione Storia del linguaggio C Lo standard ANSI 2

3 Introduzione alla programmazione 3

4 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 definizione poco precisa perché Non evita le ambiguità dei linguaggi naturali Non si presta a descrivere processi computazionali automatici Non aiuta a stabilire proprietà Definizione 2 - Il linguaggio è uno strumento matematico che consente di rispondere a domande come: Quali sono gli elementi linguistici primitivi? Quali sono le frasi lecite? Si può decidere se una frase appartiene o no al linguaggio? Come si stabilisce il significato di una frase? 4

5 Lessico, sintassi e semantica Lessico: l insieme di regole formali per la scrittura di parole in un linguaggio Sintassi: l insieme di regole formali per la scrittura di frasi in un linguaggio, che stabiliscono cioè la grammatica del linguaggio stesso Semantica: l insieme dei significati da attribuire alle frasi (sintatticamente corrette) costruite nel linguaggio Nota: una frase può essere sintatticamente corretta e tuttavia non avere significato! Sento il micino che cinguetta e annaffio nel giardino le mie mimose blu 5

6 Esempio: la sintassi di un numero naturale <cifra-non-nulla> := <cifra> := 0 <cifra-non-nulla> <naturale> := 0 <cifra-non-nulla>{<cifra>} Diagramma sintattico 6

7 I linguaggi di programmazione: Cenni storici - 1 Benché siano macchine in grado di compiere operazioni complesse, i calcolatori devono essere guidati per mezzo di istruzioni appartenenti ad un linguaggio specifico e limitato, a loro comprensibile Un linguaggio di programmazione è costituito, come ogni altro tipo di linguaggio, da un alfabeto, con cui viene costruito un insieme di parole chiave (il vocabolario) e da un insieme di regole sintattiche per l uso corretto delle parole del linguaggio A livello hardware, i calcolatori riconoscono solo comandi semplici, del tipo copia un numero, addiziona due numeri, confronta due numeri 7

8 I linguaggi di programmazione: Cenni storici - 2 I primi linguaggi di programmazione coincidevano con l insieme delle istruzioni eseguibili dall hardware Le istruzioni hardware sono codificate in codice binario: ogni informazione è rappresentata, all interno della macchina, come una sequenza di bit Enorme sforzo programmativo richiesto per codificare algoritmi semplici I comandi realizzati in hardware definiscono il set di istruzioni macchina e i programmi che li utilizzano direttamente sono i programmi in linguaggio macchina 8

9 I linguaggi di programmazione: Cenni storici - 3 In linguaggio macchina ogni operazione richiede l attivazione di numerose istruzioni base qualunque entità, istruzioni, variabili, dati, è rappresentata da numeri binari: i programmi sono difficili da scrivere, leggere e manutenere Il linguaggio macchina riflette l organizzazione della macchina più che la natura del problema da risolvere Dalla nascita dei primi calcolatori, si è cercato di diminuire lo sforzo ed aumentare la produttività dell utente, anche a costo di caricare la macchina di maggiori compiti 9

10 I linguaggi di programmazione: Cenni storici - 4 La prima evoluzione dei linguaggi di programmazione ha portato ad una codifica di tipo simbolico, anziché binaria, dei programmi Tali versioni simboliche dei linguaggi hardware sono note come linguaggi assemblatori, dal termine usato per indicare i programmi traduttori che, ricevendo come dato la versione simbolica di un programma, producono come risultato la corrispondente forma binaria direttamente eseguibile dalla macchina Per la prima volta, con la nascita degli assembler, fu applicato il principio che è meglio risparmiare il tempo dell uomo anche a costo di sprecare tempo-macchina (una parte del tempo è dedicata alla traduzione di programmi, non alla loro esecuzione) 10

11 I linguaggi di programmazione: Cenni storici - 5 Negli anni 50, tutti i programmi erano scritti in linguaggio macchina o in assembly In assembly le istruzioni corrispondono univocamente alle istruzioni macchina, ma vengono espresse tramite nomi simbolici (parole chiave) piuttosto che mediante codici numerici il riferimento alle variabili viene effettuato per mezzo di nomi piuttosto che con indirizzi di memoria I programmi scritti in assembly necessitano di un apposito programma assemblatore per tradurre le istruzioni tipiche del linguaggio in istruzioni macchina 11

12 I linguaggi di programmazione: Cenni storici - 6 Il passo successivo nell evoluzione dei linguaggi di programmazione tese a rendere la codifica degli algoritmi il più possibile vicina al problema da risolvere, anziché all architettura della macchina destinata all esecuzione del programma I primi due linguaggi di alto livello, FORTRAN e COBOL, hanno costrutti fortemente ispirati alla notazione usata, negli anni 50, per l elaborazione numerica e gestionale 12

13 I linguaggi di programmazione: Cenni storici - 7 Negli anni 60: Grande sforzo per razionalizzare la definizione e le tecniche di implementazione dei linguaggi, reso necessario dallo sviluppo quantitativamente impetuoso delle applicazioni Definizione dell ALGOL 60, il capostipite dei moderni linguaggi, basato sui principi della programmazione strutturata Proliferazione selvaggia, favorita dalle industrie, di nuovi linguaggi, sia general purpose che rivolti a specifici settori applicativi 13

14 I linguaggi di programmazione: Cenni storici - 8 Negli anni 70: Si diffondono i linguaggi strutturati, quali il SIMULA 67, capostipite dei linguaggi Object-Oriented, l ALGOL 68, ma soprattutto il PASCAL, primo esempio di prodotto di origine accademica che abbia conosciuto vasto successo ed applicazione nel mondo dell industria In modo simile, il C, concepito come un assembler strutturato per trasportare facilmente UNIX, ha finito per diventare il linguaggio più affermato nella programmazione di sistema 14

15 I linguaggi di programmazione: Cenni storici - 9 Il periodo a cavallo tra gli anni 70 ed 80 è segnato da tendenze contraddittorie: Viene lanciata dal Dipartimento della Difesa americano l iniziativa per la definizione e la realizzazione di un nuovo linguaggio, che l ente intende imporre come proprio standard ADA dovrebbe rappresentare il punto di maturazione perfetta di tutti i principi di progettazione software e dei meccanismi linguistici elaborati negli anni precedenti Si moltiplicano i nuovi linguaggi tesi a rendere più gradevole ed efficiente la programmazione tradizionale e si ha l affermarsi definitivo dei linguaggi object-oriented (C++, Visual BASIC, Java) 15

16 I linguaggi di programmazione: Cenni storici - 10 Nei linguaggi di alto livello ogni singola istruzione consente di effettuare un operazione semplice, ma completa I linguaggi di alto livello sono elementi intermedi di una varietà di linguaggi ai cui estremi si trovano il linguaggio macchina, da un lato, ed i linguaggi naturali, come l italiano e l inglese, dall altro I linguaggi di programmazione differiscono comunque dai linguaggi naturali: sono infatti meno espressivi ma più precisi Sono semplici e poveri (poche parole chiave, poche regole), ma privi di qualsiasi ambiguità 16

17 Astrazione - 1 In informatica si parla di programmazione di basso livello quando si utilizza un linguaggio molto vicino alla macchina Si parla invece di programmazione di alto livello quando si utilizzano linguaggi più sofisticati ed astratti, slegati dal funzionamento fisico della macchina Si viene così a creare una gerarchia di linguaggi, dai meno evoluti (il linguaggio macchina o l assembler) ai più evoluti (Pascal, Perl, Java, etc.) In questa gerarchia il linguaggio C si pone ad un livello intermedio 17

18 Astrazione - 2 Esistono, quindi, diversi livelli di astrazione: Linguaggio macchina e Assembler Implicano la conoscenza dettagliata delle caratteristiche della macchina (registri, dimensione dati, set di istruzioni) Semplici algoritmi implicano la specifica di molte istruzioni Linguaggi di alto livello Il programmatore può astrarre dai dettagli legati all architettura ed esprimere i propri algoritmi in modo simbolico Sono indipendenti dalla macchina hardware sottostante 18

19 Evoluzione dei linguaggi di programmazione 19

20 Linguaggi di programmazione di alto livello - 1 Consentono al programmatore di trattare oggetti complessi senza doversi preoccupare dei dettagli della particolare macchina sulla quale il programma viene eseguito Richiedono un compilatore o un interprete che sia in grado di tradurre le istruzioni del linguaggio di alto livello in istruzioni macchina di basso livello, eseguibili dal calcolatore Un compilatore è un programma traduttore complesso, infatti mentre esiste una corrispondenza biunivoca fra istruzioni in assembler ed istruzioni macchina ogni singola istruzione di un linguaggio di alto livello corrisponde a molte istruzioni in linguaggio macchina: quanto più il linguaggio si discosta dal linguaggio macchina, tanto più il lavoro di traduzione del compilatore è difficile 20

21 Linguaggi di programmazione di alto livello - 2 I linguaggi che non dipendono dall architettura della macchina offrono due vantaggi fondamentali: i programmatori non devono cimentarsi con i dettagli architetturali di ogni calcolatore i programmi risultano più semplici da leggere e da modificare ð portabilità, leggibilità, manutenibilità 21

22 Linguaggi di programmazione di alto livello - 3 Portabilità: i programmi scritti per un calcolatore possono essere utilizzati su qualsiasi altro calcolatore, previa ricompilazione Leggibilità: la relativa similitudine con i linguaggi naturali rende i programmi più semplici, non solo da scrivere, ma anche da leggere Manutenibilità: facilità nell effettuare modifiche di tipo correttivo, perfettivo, evolutivo e adattivo La possibilità di codificare algoritmi in maniera astratta si traduce in una migliore comprensibilità del codice e quindi in una più facile analisi di correttezza 22

23 Linguaggi di programmazione di alto livello - 4 Eventuale svantaggio dell uso dei linguaggi di alto livello è la riduzione di efficienza È possibile utilizzare successioni di istruzioni macchina diverse per scrivere programmi funzionalmente equivalenti: il programmatore ha un controllo limitato sulle modalità con cui il compilatore traduce il codice Tuttavia i compilatori attuali ricorrono a trucchi di cui molti programmatori ignorano l esistenza La ragione fondamentale per decretare la superiorità dei linguaggi di alto livello consiste nel fatto che la maggior parte dei costi di produzione del software è localizzata nella fase di manutenzione, per la quale leggibilità e portabilità sono cruciali 23

24 Linguaggi di programmazione di alto livello - 5 Possiamo aggregare i numerosi linguaggi di programmazione esistenti sulla base del modello astratto di programmazione che sottintendono e che è necessario adottare per utilizzarli Linguaggi di programmazione Imperativi Dichiarativi Procedurali (C, Pascal) Ad oggetti (C++, Java) Paralleli Funzionali (Lisp) Logici (Prolog) 24

25 Linguaggi di programmazione di alto livello - 6 Linguaggi imperativi Il modello computazionale è basato sul cambiamento di stato della memoria della macchina È centrale il concetto di assegnazione di un valore ad una (variabile) locazione di memoria Il compito del programmatore è costruire una sequenza di assegnazioni che producano lo stato finale (in modo tale che questo rappresenti la soluzione del problema) Linguaggi dichiarativi Il modello computazionale è basato sui concetti di funzione e relazione Il programmatore non ragiona in termini di assegnazioni di valori, ma di relazioni tra entità e di valori di una funzione 25

26 Linguaggi di programmazione di alto livello - 7 Sulla base dell ambito in cui si colloca il problema da risolvere, è opportuno adottare un linguaggio piuttosto che un altro: Calcolo scientifico: Fortran, C Intelligenza artificiale: Prolog, Lisp, C Applicazioni gestionali: Cobol, SQL, C Sistemi operativi: Assembler, C Applicazioni visuali: C++, Java, Visual Basic Applicazioni Web: Java, PHP, ASP 26

27 I programmi traduttori - 1 Affinché un programma scritto in un qualsiasi linguaggio di programmazione sia comprensibile (e quindi eseguibile) da parte di un calcolatore, occorre tradurlo dal linguaggio originario al linguaggio della macchina Ogni traduttore è in grado di comprendere e tradurre un solo linguaggio Il traduttore converte il testo di un programma scritto in un particolare linguaggio di programmazione (sorgente) nella corrispondente rappresentazione in linguaggio macchina (eseguibile) 27

28 I programmi traduttori - 2 Compilatore: opera la traduzione di un programma sorgente (scritto in linguaggio di alto livello) in un programma direttamente eseguibile dal calcolatore PRIMA si traduce tutto il programma POI si esegue la versione tradotta Interprete: traduce ed esegue il programma sorgente, istruzione per istruzione Traduzione ed esecuzione sono intercalate 28

29 I programmi traduttori

30 Il compilatore - 1 Eseguire un programma scritto in un linguaggio compilato Il programma P scritto in linguaggio L viene dato in ingresso a un programma P Comp P Comp è il programma compilatore del linguaggio L (ad esempio il programma compilatore del C) L esecuzione da parte di un calcolatore di P Comp su P (dove P è il dato di ingresso) produce P exe ð FASE di COMPILAZIONE (compile time) L esecuzione da parte di un calcolatore di P exe su particolari dati in input produce i relativi risultati ð FASE di ESECUZIONE (run time) 30

31 Il compilatore - 2 Esempio di compilatore Dobbiamo sottoporre un curriculum, in inglese, ad una azienda, ma non conosciamo l inglese Abbiamo bisogno di un traduttore che traduca quanto scritto da noi dall italiano all inglese contattiamo il traduttore il traduttore riceve il testo da tradurre il traduttore fornisce il testo tradotto possiamo sottoporre il nostro curriculum all azienda 31

32 Il compilatore - 3 Compilatore Analisi lessicale ð token (parole) Analisi sintattica ð albero sintattico Analisi semantica ð tabella dei simboli 32

33 Il compilatore - 4 L analizzatore lessicale trasforma il programma sorgente da stringa di caratteri a stringa di token Un token è un simbolo che esprime la natura di un elemento del linguaggio Punteggiatura ed operatori vengono trasformati direttamente in token Per parole riservate, nomi di variabili e costanti, l analizzatore deve determinare il token appropriato, esaminando sia la stringa di caratteri, sia il contesto Ogni identificatore viene inserito nella tabella dei simboli ed i suoi attributi vengono aggiornati nella fase di analisi semantica 33

34 Il compilatore - 5 L output del analisi lessicale è un insieme di coppie, il cui primo elemento identifica la classe del token ed il secondo punta alla posizione del token e dei suoi attributi nella tabella dei simboli Alcuni token non richiedono attributi e dunque avranno puntatori nulli (ad es., operatori e parole riservate del linguaggio) 34

35 Il compilatore

36 Il compilatore - 7 L analizzatore sintattico (o parser) permette la costruzione dell albero di derivazione del particolare programma basato sulla grammatica del linguaggio 36

37 Il compilatore - 8 L analizzatore semantico, infine, usa l albero di derivazione per generare una rappresentazione intermedia e completare la tabella di simboli Un altro ruolo svolto dall analizzatore semantico è la scoperta di errori dipendenti dal contesto (tipi di dati che non corrispondono, variabili non dichiarate, etc.) 37

38 Il compilatore - 9 Il generatore di codice traduce la rappresentazione intermedia in linguaggio assembler o linguaggio macchina Prima della generazione di codice: Allocazione della memoria Allocazione dei registri L ottimizzatore del codice intermedio effettua trasformazioni atte a migliorare l efficienza del codice eseguibile finale 38

39 Il compilatore - 10 Traduzione da algoritmo a codice C e da C ad Assembler 39

40 Il compilatore - 11 Interazione fra compilatore, SO e hardware 40

41 Compilatore e linker - 1 I compilatori consentono tipicamente la compilazione separata di parti di programmi (moduli) I diversi moduli possono essere progettati, costruiti e messi a punto separatamente, e archiviati in opportune librerie Nel momento in cui un programma deve essere eseguito, un programma apposito, detto linker, si occupa di collegare opportunamente fra loro i moduli oggetto Il risultato dell esecuzione del linker è un unico modulo, detto modulo eseguibile, pronto per il caricamento in memoria e l esecuzione 41

42 Compilatore e linker - 2 Il ruolo del linker 42

43 Compilatore e linker - 3 Da sorgente ad eseguibile 43

44 L interprete - 1 Eseguire un programma scritto in un linguaggio interpretato Il programma P scritto in linguaggio L viene dato in ingresso a un programma P Int P Int è il programma interprete del linguaggio L (ad esempio il programma interprete del Python) L esecuzione da parte di un calcolatore di P Int su P, con i dati di ingresso a P, produce i relativi risultati 44

45 L interprete - 2 Esempio di interprete Dobbiamo incontrare un manager cinese per motivi di lavoro ma non conosciamo il cinese Abbiamo bisogno di un interprete che traduca il nostro dialogo contattiamo l interprete parliamo in italiano, in presenza dell interprete contemporaneamente l interprete comunica al manager cinese quanto detto da noi (e viceversa) Il compito dell interprete si svolge contestualmente all incontro col manager cinese 45

46 L interprete - 3 Interazione fra interprete, SO e hardware 46

47 Compilatori e interpreti - 1 Riassumendo I compilatori traducono un intero programma dal linguaggio L al linguaggio macchina della macchina prescelta: traduzione e esecuzione procedono separatamente al termine della compilazione è disponibile la versione tradotta del programma la versione tradotta è però specifica per quella macchina per eseguire il programma basta avere disponibile la versione tradotta (non è necessario ricompilare) Gli interpreti invece traducono e immediatamente eseguono il programma istruzione per istruzione, infatti: traduzione ed esecuzione procedono insieme al termine non vi è alcuna versione tradotta del programma originale se si vuole rieseguire il programma occorre anche ritradurlo 47

48 L esecuzione di un programma compilato è generalmente più veloce dell esecuzione di un programma interpretato (nella compilazione si possono attuare processi di ottimizzazione dell eseguibile), tuttavia Compilatori e interpreti - 2 L interprete ha il vantaggio di tradurre solo le istruzioni che effettivamente esegue, riducendo al minimo l operazione di traduzione nel caso in cui l esecuzione venga terminata o un gruppo di istruzioni non facciano parte del flusso esecutivo corrente Un compilatore ha il vantaggio di tradurre una sola volta l intero programma e reiterare certe istruzioni (iterazioni) per il numero di volte richiesto dalla particolare esecuzione 48

49 Compilatori ed interpreti - 3 I linguaggi interpretati sono tipicamente più flessibili e semplici da utilizzare (nei linguaggi compilati esistono maggiori limitazioni alla semantica dei costrutti) Per distribuire un programma interpretato si deve necessariamente distribuire il codice sorgente, rendendo possibili operazioni di plagio Nei programmi interpretati, è facilitato il rilevamento di errori di run-time 49

50 L arte della programmazione - 1 La soluzione di un problema tramite un programma è un procedimento che non si esaurisce nello scrivere codice in un dato linguaggio di programmazione, ma comprende una fase di progetto, che precede, e di verifica, che segue, la scrittura del codice Definizione del problema Algoritmo per la soluzione del problema Analisi Codifica Debugging Validazione Documentazione Manutenzione Programmazione 50

51 L arte della programmazione - 2 Definizione del problema Definizione degli ingressi e delle uscite quali variabili quale dominio per ogni variabile Risoluzione delle ambiguità Scomposizione in (sotto-)problemi più semplici Definizione dell algoritmo Soluzione in pseudocodice Soluzione mediante diagramma a blocchi strutturato 51

52 L arte della programmazione - 3 Codifica Traduzione dell algoritmo in istruzioni del linguaggio di programmazione Debugging, correzione degli errori sintattici e semantici Errori sintattici Espressioni non valide o non ben formate nel linguaggio di programmazione Errori semantici Comportamento non aderente alle aspettative/alla intenzionalità del programmatore 52

53 L arte della programmazione - 4 Validazione Test su tutte le condizioni operative del programma Test su input estremi (es., vettori di dimensione 0 o 1, variabili nulle) Documentazione Inserimento di commenti esplicativi nelle varie parti del programma per facilitarne la comprensione (dopo molto tempo dalla stesura o per terze persone) Manutenzione Modifica del programma per soddisfare al cambiamento delle specifiche con cui deve operare 53

54 I commenti - 1 Perché commentare e documentare i programmi? I programmi vengono utilizzati più volte nel corso di tempi lunghi (mesi, anni) per fare cambiamenti (aggiunta di caratteristiche) risolvere errori Commentare il programma serve a rendere chiaro ed evidente lo scopo delle diverse parti del codice 54

55 I commenti - 2 Inoltre: Si devono evitare commenti inutili Si deve evitare di inserirne troppo pochi Un buon metodo per verificare il livello di documentazione è quello di leggere solo i commenti (e non il codice) ed ottenere una chiara idea su cosa fa un programma e come lo fa 55

56 Storia del linguaggio C 56

57 Storia del linguaggio C - 1 Il linguaggio C venne definito alla fine degli anni 60 da Dennis M. Ritchie, degli AT&T Bell Labs, come linguaggio di programmazione di sistema Il linguaggio C doveva essere un linguaggio di livello sufficientemente alto per garantire ai programmi leggibilità e manutenibilità un linguaggio sufficientemente semplice da stabilire una corrispondenza immediata con la macchina sottostante indipendente dall hardware e quindi portabile Il linguaggio C si dimostrò così flessibile, ed il codice macchina prodotto così efficiente che, nel 1973, Ritchie e Ken Thompson riscrissero UNIX in C 57

58 Storia del linguaggio C - 2 Oggi molti sistemi operativi sono sviluppati in C o C++ I vantaggi fondamentali della scrittura di sistemi operativi in linguaggio di alto livello sono la velocità di sviluppo e la manutenibilità Come effetto collaterale si ottiene un sistema operativo che può essere trasferito su architetture diverse, tramite ricompilazione su macchina target: porting Nel 1977, Ritchie e Brian Kernighan pubblicarono The C Programming Language, che formalizza lo standard K&R Inizialmente il linguaggio C veniva usato soprattutto sui sistemi UNIX (PCC - Portable C Compiler) ma, con la diffusione dei PC, compilatori C furono prodotti per nuove architetture e nuovi sistemi operativi 58

59 ANSI C Nel 1983, l American National Standards Institute (ANSI), costituì la commissione X3J11, che doveva formulare uno standard per il C, che includesse le nuove caratteristiche che il linguaggio aveva progressivamente maturato, mantenendone la portabilità La versione finale dello standard C fu approvata dall ANSI nel 1989 Lo Standard ANSI C è descritto nel documento American National Standard for Information Systems - Programming Language C Lo standard è stato rivisto ed aggiornato nel

60 Caratteristiche del linguaggio C Linguaggio di medio/alto livello; basso livello di controllo degli errori nella fase di compilazione Variabili tipizzate, con notevoli possibilità di conversione mediante il type casting, che permette di forzare una variabile a cambiare tipo a run-time Abbina ad un livello medio/alto di astrazione, un buon controllo delle operazioni a basso livello 60

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

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

C++ Barriera di astrazione. Barriera di astrazione. Basic. Basic. Lisp. Lisp. Pascal. Prolog. Pascal. Prolog. Cobol. Fortran IMPERATIVI FUNZIONALI

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

Dettagli

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

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

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

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

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

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

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

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

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

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

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

Informatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 20 ottobre Corso di laurea in Economia

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

Dettagli

Fondamenti di Informatica 7. Linguaggi di programmazione

Fondamenti di Informatica 7. Linguaggi di programmazione I linguaggi di alto livello Fondamenti di Informatica 7. Linguaggi di programmazione Introduzione alla programmazione Caratteristiche dei linguaggi di programmazione I linguaggi di programmazione di alto

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

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

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

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

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

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

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

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

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

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

LA CODIFICA DELLE INFORMAZIONI

LA CODIFICA DELLE INFORMAZIONI LA CODIFICA DELLE INFORMAZIONI Linguaggio Elaborazione delle informazioni: operazioni che possono essere effettuate sulle informazioni: inserimento, archiviazione, modifica, ordinamento, calcolo, ecc.

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

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

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

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

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

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

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

Cosa è un programma. Informatica di Base -- R.Gaeta 18

Cosa è un programma. Informatica di Base -- R.Gaeta 18 Cosa è un programma Il programma è la scatola nera che risolve il problema computazionale; Il programma è una sequenza di istruzioni che devono essere eseguite; Il programma è la traduzione per il computer

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

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

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

28/02/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 5 LA RAPPRESENTAZIONE DELLE ISTRUZIONI

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

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

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

Programmi. Algoritmi scritti in un linguaggio di programmazione

Programmi. Algoritmi scritti in un linguaggio di programmazione Programmi Algoritmi scritti in un linguaggio di programmazione Sistema operativo:programma supervisore che coordina tutte le operazioni del calcolatore Programmi applicativi esistenti Sistemi di videoscrittura

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

Linguaggi e traduttori

Linguaggi e traduttori Operatore giuridico d impresa Informatica Giuridica A.A 2004/2005 I Semestre Linguaggi e traduttori Lezione 3 prof. Monica Palmirani Produzione del Software il software si genera trasformando l algoritmo

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione!paradigmi linguistici, costrutti!semantica!implementazione, strutture a tempo di esecuzione 1 Linguaggi di programmazione e astrazione! i linguaggi di programmazione ad alto

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

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

Elementi di programmazione

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

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

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

ELABORAZIONE 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

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

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

Iniziare a programmare in C++

Iniziare a programmare in C++ Iniziare a programmare in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi di Napoli

Dettagli

Algoritmi, Strutture Dati e Programmi. UD 2.d: Linguaggi Procedurali

Algoritmi, Strutture Dati e Programmi. UD 2.d: Linguaggi Procedurali Algoritmi, Strutture Dati e Programmi : Linguaggi Procedurali Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno LINGUAGGI PROCEDURALI Curtin, cap. 12.3 1 Linguaggi di Programmazione

Dettagli

Informatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione

Informatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione Informatica 3 LEZIONE 1: Introduzione Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di Informatica 3 Lezione 1- Modulo 1 Introduzione al corso Introduzione Corso di Informatica 3

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 (Assembly):

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

Dettagli

Concetti Introduttivi

Concetti 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

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

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma. Unità Didattica 1 Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C UNIX (1969) - DEC PDP-7 Assembly Language BCPL - un OS facilmente accessibile che fornisce potenti strumenti

Dettagli

Informatica 3. Informatica 3. Lezione 1- Modulo 1. LEZIONE 1: Introduzione. Concetti di linguaggi di programmazione. Introduzione

Informatica 3. Informatica 3. Lezione 1- Modulo 1. LEZIONE 1: Introduzione. Concetti di linguaggi di programmazione. Introduzione Informatica 3 Informatica 3 LEZIONE 1: Introduzione Lezione 1- Modulo 1 Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di Introduzione al corso Politecnico di Milano - Prof. Sara Comai

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

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

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

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

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

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

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

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

Davide Cervi Classe : 3E I.T.E Agostino Bassi - Lodi

Davide Cervi Classe : 3E I.T.E Agostino Bassi - Lodi INTRODUZIONE AI LINGUAGGI DI PROGRAMMAZIONE Davide Cervi Classe : 3E I.T.E Agostino Bassi - Lodi I LINGUAGGI DI PRIMA GENERAZIONE rientrano in questa categoria i vari linguaggi macchina proprietari, decisamente

Dettagli

Traduzione e interpretazione

Traduzione e interpretazione Traduzione e interpretazione Parte dei lucidi sono stati gentilmente forniti dal Prof. Salza VII.1 Linguaggi di programmazione Linguaggi ad alto livello Maggiore espressività Maggiore produttività Migliore

Dettagli

Java: un linguaggio per applicazioni di rete

Java: un linguaggio per applicazioni di rete Java: un linguaggio per applicazioni di rete Moreno Falaschi Dipartimento di Ingegneria dell Informazione e Scienze Matematiche Università di Siena March 3, 2014 1 Caratteristiche di Java (SUN) Linguaggio

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

Unità di apprendimento 6. Dal problema al programma

Unità di apprendimento 6. Dal problema al programma Unità di apprendimento 6 Dal problema al programma Unità di apprendimento 6 Lezione 1 Conosciamo gli algoritmi e i linguaggi In questa lezione impareremo: cos è un problema come affrontarlo come descrivere

Dettagli

Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo

Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi Istruzioni variabili e tipi Sottoprogrammi Strutture di controllo Ricorsione 1 2 Obiettivo Ciclo di sviluppo di programmi Risoluzione

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

Barriera di astrazione. Barriera di astrazione. macchina virtuale. non sono quelle della macchina hardware. Algol. Ada. Lisp. Lisp.

Barriera di astrazione. Barriera di astrazione. macchina virtuale. non sono quelle della macchina hardware. Algol. Ada. Lisp. Lisp. LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware LINGUAGGI DI ALTO LIVELLO Barriera di astrazione C Fortran Cobol Basic Pascal Python Modula-2

Dettagli

Lezione n. 2i Informatica e tecnologia informatica Sistema di elaborazione Algoritmo Linguaggi di programmazione Realizzazione di un programma

Lezione n. 2i Informatica e tecnologia informatica Sistema di elaborazione Algoritmo Linguaggi di programmazione Realizzazione di un programma Lezione2i Lezione n. 2i Informatica e tecnologia informatica Sistema di elaborazione Algoritmo Linguaggi di programmazione Realizzazione di un programma Informatica e tecnologia informatica Il termine

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

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

Introduzione allo Studio dei Linguaggi di Programmazione. Corso di Linguaggi di Programmazione Informatica e Tecnologie Produzione Software

Introduzione allo Studio dei Linguaggi di Programmazione. Corso di Linguaggi di Programmazione Informatica e Tecnologie Produzione Software Introduzione allo Studio dei Linguaggi di Programmazione Corso di Linguaggi di Programmazione Informatica e Tecnologie Produzione Software Argomenti 2 Studiare i Linguaggi di Programmazione Domini Applicativi

Dettagli

STORIA E CARATTERISTICHE

STORIA E CARATTERISTICHE IL LINGUAGGIO C STORIA E CARATTERISTICHE STORIA E VERSIONI Sviluppato da Dennis Ritchie ai Bell Labs nel 1972 per realizzare il sistema operativo UNIX K&R C: 1978 (prima versione, K&R dal nome degli autori

Dettagli

I linguaggi di programmazione

I linguaggi di programmazione I linguaggi di programmazione 1 Lessico, sintassi e semantica Lessico: l insieme di regole formali per la scrittura di parole in un linguaggio Sintassi: l insieme di regole formali per la scrittura di

Dettagli

Linguaggi e Ambienti di Programmazione

Linguaggi e Ambienti di Programmazione Linguaggi e Ambienti di Programmazione Principi e tecniche diffuse che si incontrano spesso nelle applicazioni dell informatica. Compilatori Editor di struttura: riceve in input una sequenza di comandi

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

Organizzazione strutturata

Organizzazione strutturata Organizzazione strutturata Evoluzione storica a.a. 2002-03 L. Borrelli 1 Complessità dei Sistemi di Elaborazione Caratteristica dei Sistemi di Elaborazione: Complessità Per trattare sistemi complessi è

Dettagli

Dall algoritmo al calcolatore: concetti introduttivi. Algoritmo. Problema: consumo medio 9/27/2018. Fondamenti di Programmazione 3

Dall algoritmo al calcolatore: concetti introduttivi. Algoritmo. Problema: consumo medio 9/27/2018. Fondamenti di Programmazione 3 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

INTRODUZIONE ALLA PROGRAMMAZIONE. Cosimo Laneve

INTRODUZIONE ALLA PROGRAMMAZIONE. Cosimo Laneve INTRODUZIONE ALLA PROGRAMMAZIONE Cosimo Laneve 1 argomenti (Capitolo 1 Savitch) 1. sistemi di calcolo 2. programmazione e problem solving 3. introduzione a C++ 4. testing e debugging 2 sistema di calcolo

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