Linguaggi di Programmazione

Documenti analoghi
DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione

LINGUAGGI DI ALTO LIVELLO

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

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware

Linguaggi di programmazione

Linguaggi di Programmazione

I Linguaggi di Programmazione

INFORMATICA. L informatica comprende:

Elementi di programmazione

Linguaggi, Traduttori e le Basi della Programmazione

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Unità Didattica 2 I Linguaggi di Programmazione

E una notazione per descrivere gli algoritmi.

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

Il linguaggio di programmazione Python

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

Introduzione alla programmazione. Walter Didimo

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

Linguaggi di programmazione

FONDAMENTI DI INFORMATICA

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

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

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Fondamenti di Informatica T. Il Software

Linguaggi di alto livello, compilatori e interpreti

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Capitolo 3 L elaborazione e la strutturazione dell informazione

Il Software programmabili programma algoritmo

FONDAMENTI DI INFORMATICA

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

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

Unità di apprendimento 6. Dal problema al programma

Programmazione C Massimo Callisto De Donato

Introduzione alla programmazione

Programmazione Procedurale in Linguaggio C++

Lezione 16. Il Software di base

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

COMPILAZIONE. Tarsformazione di linguaggi

Linguaggi di programmazione e astrazione

Linguaggi, compilatori e interpreti

Sorgenti di errore. Laboratorio di Informatica 1

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

Cosa è l Informatica?

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

ALGORITMI: PROPRIETÀ FONDAMENTALI

Il linguaggio macchina

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

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE

Introduzione alla programmazione strutturata

Prof.Claudio Maccherani 1995

Calcolatori Elettronici Parte VIII: linguaggi assemblativi

I linguaggi di alto livello

Linguaggi di Programmazione

Algoritmi e Linguaggi

Fondamenti VBA. Che cos è VBA

L ELABORATORE ELETTRONICO

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Introduzione all OOP!

FONDAMENTI DI INFORMATICA

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

Primi passi col linguaggio C

Fondamenti d Informatica: linguaggi formali. Barbara Re, Phd

Lezione 15 Il Set di Istruzioni (1)

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Transcript:

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 linguaggio di programmazione dispone di un insieme di "parole chiave" (keywords), attraverso le quali e possibile esprimere il flusso di azioni descritto dall algoritmo. Ogni linguaggio e caratterizzato da una sintassi e da una semantica: sintassi: e' l'insieme di regole formali per la composizione di programmi nel linguaggio scelto. Le regole sintattiche dettano le modalita` di combinazione tra le parole chiave del linguaggio, per costruire correttamente istruzioni (frasi). semantica: e` l'insieme dei significati da attribuire alle frasi (sintatticamente corrette) costruite nel linguaggio scelto. FONDAMENTI DI INFORMATICA LINGUAGGI DI PROGRAMMAZIONE 1

Linguaggi di programmazione 1930-40 Macchina di Turing Diagrammi di flusso (Von Neumann) 1940-50 Linguaggi macchina ed ASSEMBLER 1950-55 FORTRAN (Backus, IBM) 1959 COBOL 1960 APL 1950-60 LISP (McCarthy) 1960-65 ALGOL 60 (blocco, stack) 1965 PL/I 1966 SIMULA (tipo di dato astratto, classe) 1970-71 PASCAL (Wirth) 1972 C (Ritchie) 1973 PROLOG (Kowalski Colmerauer) 1975 SETL 1980 MODULA (Wirth) 1980 SMALLTALK (oggetti) 1983 C++ (C con oggetti) FONDAMENTI DI INFORMATICA LINGUAGGI DI PROGRAMMAZIONE 2

Il linguaggio macchina + Il linguaggio macchina e direttamente eseguibile dall elaboratore, senza nessuna traduzione. Istruzioni: Si dividono in due parti: un codice operativo ed, eventualmente, uno o piu operandi: Il codice operativo specifica l operazione da compiere gli operandi individuano le celle di memoria a cui si riferiscono le operazioni. Per semplicita`, consideriamo istruzioni ad un solo operando. + istruzioni ed operandi relativi al programma in esecuzione sono caricati in memoria e quindi sono memorizzati in forma binaria. op_code operando n s m IR s, lunghezza di un istruzione (in bit) s = n + m FONDAMENTI DI INFORMATICA LINGUAGGI DI PROGRAMMAZIONE 3

Il linguaggio ASSEMBLER E difficile leggere e capire un programma scritto in forma binaria: 0 0100 0000 0000 1000 1 0100 0000 0000 1001 2 0000 0000 0000 1000 3 0001 0000 0000 1001 4 1000 0000 0000 0000 5 0010 0000 0000 1000 6 0101 0000 0000 1000 7 1101 0000 0000 0000 8 0000 0000 0000 0000 9 0000 0000 0000 0000 Linguaggi assemblatori (Assembler): Le istruzioni corrispondono univocamente a quelle macchina, ma vengono espresse tramite nomi simbolici (parole chiave). I riferimenti alle celle di memoria sono fatti mediante nomi simbolici (identificatori). Identificatori che rappresentano dati (costanti o variabili) oppure istruzioni (etichette). + Il programma prima di essere eseguito deve essere tradotto in linguaggio macchina (assemblatore). FONDAMENTI DI INFORMATICA LINGUAGGI DI PROGRAMMAZIONE 4

Linguaggi di programmazione di alto livello Linguaggio Macchina: conoscenza dei metodi di rappresentazione delle informazioni utilizzati. Linguaggio Macchina ed Assembler: necessita` di conoscere dettagliatamente le caratteristiche della macchina (registri, dimensioni dati, set di istruzioni) semplici algoritmi implicano la specifica di molte istruzioni Linguaggi di Alto Livello: Il programmatore puo` astrarre dai dettagli legati all architettura ed esprimere i propri algoritmi in modo simbolico. + Sono indipendenti dalla macchina (astrazione). Esecuzione: Sono tradotti in sequenze di istruzioni di basso livello, direttamente eseguite dal processore, attraverso: interpretazione (ad es. BASIC) compilazione (ad es. C, FORTRAN, Pascal) FONDAMENTI DI INFORMATICA LINGUAGGI DI PROGRAMMAZIONE 5

Ambiente di programmazione E l insieme dei programmi che consentono la scrittura, la verifica e l esecuzione di nuovi programmi (fasi di sviluppo). Sviluppo di un Programma Affinche` un programma scritto in un qualsiasi linguaggio di programmazione (ad es. il C) sia comprensibile (e quindi eseguibile) da un calcolatore, e' necessaria un'azione di traduzione dal linguaggio originario al linguaggio macchina Questa operazione viene normalmente svolta da speciali programmi, detti traduttori. Programma Traduzione main() { int A; 00100101... A=A+1; 11001.. if... 1011100.. I traduttori provvedono a convertire il codice di programmi scritti in un particolare linguaggio di programmazione (programmi sorgenti), nella corrispondente rappresentazione in linguaggio macchina (programmi eseguibili). FONDAMENTI DI INFORMATICA LINGUAGGI DI PROGRAMMAZIONE 6

Sviluppo di Programmi Programma Sorgente: main(){.. Programma eseguibile: 001010111... Esecuzione Due categorie di traduttori: i Compilatori: accettano in ingresso l'intero programma e producono in uscita la rappresentazione dell'intero programma in linguaggio macchina. gli Interpreti: traducono ed eseguono direttamente ciascuna istruzione del programma sorgente, istruzione per istruzione. Quindi: Compilatore: per ogni programma da tradurre, lo schema viene percorso una volta sola prima dell'esecuzione. Interprete: lo schema viene attraversato tante volte quante sono le istruzioni che compongono il programma; ad ogni attivazione dell'interprete su una particolare istruzione, segue l'esecuzione dell'istruzione stessa. + l'esecuzione di un programma compilato e` piu` veloce dell'esecuzione di un programma mediante interprete. FONDAMENTI DI INFORMATICA LINGUAGGI DI PROGRAMMAZIONE 7

Fasi di Sviluppo di un Programma Lo sviluppo di un semplice programma avviene attraverso l attuazione di una sequenza di fasi. Dato un problema da risolvere: 1) scelta del metodo risolutivo e rappresentazione mediante un algoritmo. 2) rappresentazione dell algoritmo nel linguaggio di programmazione scelto (ad esempio, C): si ottiene il programma in forma sorgente. La fase di scrittura del programma viene normalmente detta di editing. 3) compilazione. Il programma sorgente prodotto nella la fase di editing viene tradotto dal compilatore in linguaggio macchina (programma eseguibile). In questa forma, il programma e pronto per essere eseguito. La fase di compilazione puo rilevare eventuali errori (generalmente sintattici) contenuti nel programma sorgente. FONDAMENTI DI INFORMATICA LINGUAGGI DI PROGRAMMAZIONE 8

4) debugging. Analisi del corretto funzionamento del programma. Puo essere agevolmente eseguita mediante speciali programmi detti debugger. Mediante un debugger e possibile effettuare l esecuzione controllata del programma. Ad esempio: esecuzione di una istruzione per volta visualizzazione dei valori di variabili punti di arresto (breakpoint) + rilevazione di errori non riscontrabili in fase di compilazione (errori a tempo di esecuzione) 5) esecuzione. Quando il programma e` stato opportunamente verificato, puo` essere infine eseguito per la risoluzione del problema di partenza. FONDAMENTI DI INFORMATICA LINGUAGGI DI PROGRAMMAZIONE 9

Fasi di Sviluppo Problema metodo risolutivo Algoritmo diagramma di flusso Editing programma sorgente Compilazione errori a t. di compilazione programma eseguibile Debugging errori a t. di Esecuzione Esecuzione eseguibile verificato FONDAMENTI DI INFORMATICA LINGUAGGI DI PROGRAMMAZIONE 10

Componenti di un ambiente di programmazione Editor: serve per la costruzione di file che contengono testi (cioè sequenze di caratteri). In particolare tramite un editor si scrive il programma sorgente. Compilatore: opera la traduzione di un programma sorgente scritto in un linguaggio ad alto livello in un programma oggetto scritto in un linguaggio direttamente eseguibile dal calcolatore. Linker: (collegatore o correlatore) nel caso in cui il programma sia suddiviso in moduli (oggetto) compilati separatamente, provvede a collegarli per formare un unico programma eseguibile. Debugger: (scopritore di bachi, cioè errori) serve per scoprire ed eliminare errori presenti durante l esecuzione di un programma, ma non rilevati in fase di compilazione. FONDAMENTI DI INFORMATICA LINGUAGGI DI PROGRAMMAZIONE 11