Linguaggi di programmazione
|
|
|
- Laura Angeli
- 8 anni fa
- Visualizzazioni
Transcript
1 Linguaggi di programmazione Fondamenti di Informatica Daniele Loiacono
2 Ho definito un algoritmo e adesso? Daniele Loiacono
3 Dall algoritmo all esecuzione q Come deve essere formalizzato un algoritmo affinché sia comprensibile al calcolatore? q Il calcolatore è in grado di eseguire algoritmi (programmi) definiti in linguaggio macchina (READ) (STORE) (LOAD=) (STORE) (LOAD) (BEQ) (READ) (ADD) (STORE) (LOAD) 32 Daniele Loiacono
4 Come possiamo semplificarci la vita? Daniele Loiacono
5 I linguaggi di programmazione Il programmatore Esempio: Pseudo-codice alto C, C++, JAVA Il livello del linguaggio La macchina hardware basso Assembly Linguaggio Macchina Daniele Loiacono
6 Come definiamo un linguaggio di programmazione? Daniele Loiacono
7 Sintassi e Semantica q La sintassi definisce come si scrive il programma (forma e struttura) Esempio: <variabile> = <espressione> q La semantica definisce come si interpretano le istruzioni contenute nel programma (significato) Esempio: <variabile> = <espressione> calcola il valore dell espressione e assegna al contenuto della variabile il valore calcolato q Un programma sintatticamente corretto non è necessariamente corretto! q La sintassi può essere verificata automaticamente dal compilatore, la semantica no! Daniele Loiacono 7
8 E una volta che abbiamo scritto il programma? Daniele Loiacono
9 Compilare o Interpretare? q Come rendo comprensibili al calcolatore i programmi scritti in un linguaggio di programmazione (ad es. C, C++, Java)? q Due sono gli approcci maggiormente usati: Utilizzando un compilatore, un programma che traduce i programmi di alto livello in codice macchina Utilizzando un interprete, un programma che interpreta direttamente le istruzioni di alto livello e le esegue q Entrambi gli approcci offrono vantaggi e svantaggi Portabilità Efficienza Controlli Semplicità Daniele Loiacono 9
10 Daniele Loiacono Il C?
11 La catena di sviluppo in C q Il C è un linguaggio compilato q Possiamo individuare 5 passi per passare dalla definizione di un algoritmo ad un programma in esecuzione che lo implementa Scrittura Traduzione Collegamento Caricamento Esecuzione Daniele Loiacono
12 1. Scrittura q Il programma, costituito da una sequenza di caratteri, viene composto e modificato usando un qualsiasi editor q Così otteniamo un codice sorgente memorizzato in memoria di massa in un file di testo (es. XYZ.c) Daniele Loiacono 12
13 2. Traduzione q Il compilatore si occupa della traduzione dal linguaggio di alto livello al linguaggio macchina q Durante questa fase si riconoscono i simboli, le parole e i costrutti del linguaggio: eventuali messaggi diagnostici segnalano errori di sintassi q Viene generato il codice macchina in forma binaria : a partire dal codice sorgente si genera il codice oggetto, cioè in un file binario Daniele Loiacono 13
14 3. Collegamento (linking) q Il collegatore (linker) deve collegare fra loro il file oggetto ed altre librerie utilizzate (es. librerie di I/O) q Si rendono globalmente coerenti i riferimenti agli indirizzi dei vari elementi collegati q Si genera un programma eseguible, un file binario che contiene il codice macchina del programma eseguibile completo, di nome XYZ.exe q Messaggi di errore possono essere dovuti ad errori nel citare i nomi delle funzionalità di librerie esterne da collegare q Il programma sarà effettivamente eseguibile solo dopo che il contenuto del file sarà stato caricato nella memoria di lavoro (centrale) del calcolatore Daniele Loiacono 14
15 4. Caricamento (loading) q Il caricatore (loader) individua una porzione libera della memoria di lavoro e vi copia il contenuto del programma eseguibile Eventuali messaggi rivolti all utente possono segnalare che non c'è abbastanza spazio in memoria Daniele Loiacono 15
16 5. Esecuzione q Per eseguire il programma occorre fornire in ingresso i dati richiesti e in uscita riceveremo i risultati (su video o file o stampante) q Durante l esecuzione possono verificarsi degli errori (detti errori di run-time ), quali: calcoli con risultati scorretti (per esempio un overflow) calcoli impossibili (divisioni per zero, logaritmo di un numero negativo, radice quadrata di un numero negativo,.) errori nella concezione dell algoritmo (l algoritmo non risolve il problema dato) q Tutti gli esempi citati si riferiscono ai cosiddetti errori semantici Daniele Loiacono 16
Introduzione. Informatica B. Daniele Loiacono
Introduzione Informatica B Cos è l informatica? q È la scienza che si occupa della rappresentazione dell informazione e della sua elaborazione e gestione " Si occupa dell informazione, che fa parte di
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à
Introduzione. Informatica B. Daniele Loiacono
Introduzione Informatica B Perchè studiare l informatica? Perchè ha a che fare con quasi tutto quello con cui abbiamo a che fare ogni giorno Perché è uno strumento fondamentale per progettare l innovazione
Informatica B (Docente Vittorio Zaccaria)
Informatica B (Docente Vittorio Zaccaria) Informatica B - Codice Corso: 081369 - A.A. 2011/2012 INGEGNERIA MECCANICA (BV) - INGEGNERIA IV (1 liv.) - Scaglione S - Z INGEGNERIA ENERGETICA (BV) - INGEGNERIA
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
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
Linguaggi, compilatori e interpreti
Linguaggi, compilatori e interpreti 1 Il codice macchina Ciascun calcolatore ha un ampio insieme di istruzioni che è in grado di eseguire. Le istruzioni vengono rappresentate mediante sequenze di bit 001000100011
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
Calcolatori Elettronici Parte VIII: linguaggi assemblativi
Anno Accademico 2013/2014 Calcolatori Elettronici Parte VIII: linguaggi assemblativi Prof. Riccardo Torlone Universita di Roma Tre Linguaggi di Programmazione Linguaggi ad alto livello Maggiore espressività
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
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
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
Informazioni Generali. Esercitazioni di Informatica
Informazioni Generali Gerardo Pelosi e-mail(s): [email protected], [email protected] phone: (+39) 02 2399 3476 web: http://home.deib.polimi.it/pelosi Dip. di Elettronica, Informazione e Bioingegneria
Esercitazioni di Informatica
Informazioni Generali Gerardo Pelosi e-mail(s): [email protected], [email protected] phone: (+39) 02 2399 3476 web: http://home.deib.polimi.it/pelosi Dip. di Elettronica, Informazione e Bioingegneria
Parte VII. Traduzione e Collegamento
Parte VII Traduzione e Collegamento VII.1 Linguaggi di Programmazione Linguaggi ad alto livello Maggiore espressività Maggiore produttività Migliore leggibilità Facilità di documentazione Minore controllo
Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema
Algoritmo 2 Procedimento di risoluzione di un problema La programmazione Ver. 2.4 Permette di ottenere un risultato eseguendo una sequenza finita di operazioni elementari Esempi: Una ricetta di cucina
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
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
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
Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione
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
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
Programmazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 1 Introduzione G. Mecca M. Samela Università della Basilicata Elementi di Base >> Sommario Sommario Linguaggi di Programmazione Sintassi
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 ([email protected])
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
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
Corso di Fondamenti di Informatica Linguaggi di Programmazione
Corso di Fondamenti di Informatica Linguaggi di Programmazione Anno Accademico Francesco Tortorella Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di
Linguaggi di Programmazione
Linguaggi di Programmazione Linguaggi di Programmazione Programmazione. Insieme delle attività e tecniche svolte per creare un programma (codice sorgente) da far eseguire ad un computer. Che lingua comprende
Lezione 15 Il Set di Istruzioni (1)
Lezione 15 Il Set di Istruzioni (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Un quadro della situazione Input/Output Sistema di Interconnessione Registri
Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica
Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica prof. ing. Corrado Santoro A.A. 2009-10 Dai flow-chart ai linguaggi... Abbiamo imparato ad usare uno strumento formale i flowchart per
INTRODUZIONE ALLA PROGRAMMAZIONE
INTRODUZIONE ALLA PROGRAMMAZIONE Prof. Enrico Terrone A. S: 2008/09 Definizioni Programmare significa risolvere problemi col computer, cioè far risolvere problemi al computer attraverso un insieme di informazioni
INFORMATICA. L informatica comprende:
Varie definizioni: INFORMATICA Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione dell informazione
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
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:
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
Introduzione a Java. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni
Introduzione a Java IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni Linguaggi di programmazione Ogni programma viene scritto utilizzando un linguaggio specializzato, formale e comprensibile da
Programmazione C Massimo Callisto De Donato
Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato [email protected] www.cs.unicam.it/massimo.callisto LEZIONE
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
Primi passi col linguaggio C
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta
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
