Informatica 3. LEZIONE 2: Sintassi e semantica
|
|
- Liliana Manzo
- 6 anni fa
- Visualizzazioni
Transcript
1 Informatica 3 LEZIONE 2: Sintassi e semantica Modulo 1: Introduzione ai concetti di sintassi e semantica Modulo 2: Il concetto di binding Modulo 3: Variabili Modulo 4: Routine Convenzioni dei nomi
2 Informatica 3 Lezione 2- Modulo 1 Introduzione ai concetti di sintassi e semantica
3 Le componenti di un linguaggio di programmazione Un linguaggio di programmazione è una notazione formale caratterizzata da due componenti: Sintassi: insieme di regole formali che specificano la composizione di programmi Per determinare se un programma è valido Semantica: insieme di regole che specificano il significato di un programma sintatticamente valido Per determinare l effetto di un programma Notazioni formali Semantica operazionale: comportamento di un processore astratto che esegue il programma scritto nel linguaggio di programmazione
4 Sintassi di un linguaggio Sintassi: regole che definiscono le sequenze valide di simboli Frasi come sequenze di parole Parole: definite su un alfabeto Regole lessicali: insieme di caratteri che costituiscono l alfabeto del linguaggio Esempi: Caratteri maiuscoli e minuscoli differiscono in C/C++ ma sono identici in Pascal L operatore diverso è:!= in C/C++ e <> in Pascal
5 EBNF regole sintattiche on erminale terminale EBNF=Extended Backus Naur Form Metalinguaggio con metasimboli ::= < > * + Regole sintattiche: <programma> ::= { <istruzione>* } non terminale definito da regole lessical <istruzione> ::= <assegnamento> <condizione> <ciclo> <assegnamento> ::= <identificatore> = <espr> ; <condizione> ::= if <espr> { <istruzione> + } if <espr> { <istruzione> + } else { <istruzione> + } <ciclo> ::= while <espr> { <istruzione> + } <espr> ::= <identificatore> <numero> ( <espr> ) <espr> <operatore> <espr>
6 EBNF regole lessicali Regole lessicali: <operatore> ::= + - * / = /= < > <= >= <identificatore> ::= <lettera> <ld>* <ld> ::= <lettera> <cifra> <numero> ::= <cifra>+ <lettera> ::= a b c... z <cifra> ::=
7 Diagrammi sintattici programma { } istruzione istruzione assegnamento condizione ciclo assegnamento identificatore = espressione
8 Diagrammi sintattici condizione if espressione { istruzione } else { istruzione } ciclo while espressione { istruzione } espressione espressione operatore espressione identificatore numero { espressione }
9 Sintassi astratta e concreta Costrutti in linguaggi diversi possono avere la stessa struttura concettuale, ma avere regole lessicali diverse: while (x!=y) { } while x<>y do begin end Stessa sintassi astratta Diversa sintassi concreta
10 Sintassi concreta e usabilità <> è più leggibile di!= Se il ciclo contiene una singola istruzione le { } possono essere omesse Facile commettere errori!! while (num!=0){ cin >> num; } while (num!=0) cin >> num; while num <> 0 do end
11 Informatica 3 Lezione 2- Modulo 2 Il concetto di binding
12 Il concetto di binding I programmi sono costituiti da entità variabili, routine, istruzioni Le entità sono caratterizzate da attributi Variabile: nome, tipo, area di memoria Routine: nome, parametri, modalità di passaggio parametri Binding: associa un valore agli attributi Per ogni entità le informazioni sulle entità sono contenute in un descrittore
13 Binding Concetto fondamentale nella definizione della semantica di un linguaggio Linguaggi diversi presentano Un numero di entità diverse Un numero di attributi diversi per ogni entità Tempi di binding diversi (es. a tempo di compilazione o esecuzione) Stabilità differenti di binding (fissi o modificabili) Binding statico: non può essere modificato Binding dinamico: modificabile durante l esecuzione
14 Linguaggi e binding Binding definito dalla definizione del linguaggio: Esempio: interi insieme di operazioni eseguibili (Fortran, Ada, C, C++) Binding definito dall implementazione del linguaggio: Esempio: interi rappresentazione in memoria (Fortran, Ada, C, C++) Binding definito a tempo di compilazione: Esempio: in Pascal il binding degli interi avviene durante la compilazione Binding definito a tempo di esecuzione: Maggior parte dei linguaggi di programmazione Esempio alle variabili vengono associati dei valori durante l esecuzione Binding dinamico
15 Informatica 3 Lezione 2- Modulo 3 Variabili
16 Variabili I linguaggi di programmazione possono essere visti come un astrazione del comportamento dei computer convenzionali: Memoria centrale consiste di celle elementari identificate da un indirizzo Il contenuto di una cella rappresenta un valore (codificato) Il valore può essere modificato (nuova codifica) durante l esecuzione di un programma Variabile: astrazione del concetto di cella di memoria Nome di variabile: astrazione dell indirizzo della cella di memoria Istruzione di assegnamento: astrazione della modifica del valore di una cella Formalmente: variabile = <nome, scope, tipo, l-value, r-value>
17 Nome e regole di visibilità variabile = <nome, scope, tipo, l-value, r-value> Nome: stringa di caratteri che denota la variabile Solitamente introdotto tramite una dichiarazione Visibilità (o scope): insieme di istruzioni a cui il nome è noto Dal punto in cui la variabile viene dichiarata fino ad un punto di chiusura successivo Un programma può manipolare le variabili tramite il loro nome all interno del loro scope Una variabile è visibile con il suo nome all interno del suo scope
18 Nome e regole di visibilità Le regole di binding di una variabile all interno del suo scope dipendono dal linguaggio Binding statico dello scope Lo scope viene definito staticamente, tramite una dichiarazione implicita o esplicita, senza dover eseguire il programma Maggior parte di linguaggi di programmazione (C/C++) Binding dinamico dello scope Lo scope viene definito durante l esecuzione del programma APL, vecchi LISP, SNOBOL4
19 Esempio di binding dinamico dello scope { } { } { } /* blocco A */ int x; /* blocco B */ int x; /* blocco C */ x =...; Esempio: A C; B C Regole semplici da implementare Implementazione meno efficiente Programmi difficili da leggere
20 Tipo variabile = <nome, scope, tipo, l-value, r-value> Tipo di una variabile: insieme di valori che possono essere associati alla variabile operazioni per creare, accedere, modificare tali valori +
21 Tipi e binding Tipi predefiniti (esempio: int) Il nome del tipo viene associato tramite binding alla classe di valori e all insieme di operazioni definite dal linguaggio I valori e le operazioni vengono associate tramite binding alla rappresentazione della macchina durante l implementazione Dichiarazioni di tipo (esempio: typedef float reale;) Definisce il binding tra il nome del tipo e l implementazione Eredita tutte le operazioni del tipo specificato Tipi di dati astratti nome_nuovo_tipo ={ struttura dati degli oggetti del nuovo tipo; operazioni per manipolare gli oggetti del nuovo tipo; } Associano il nuovo tipo alle operazioni definite
22 Tipizzazione statica e dinamica Tipizzazione statica (C/C++, Pascal, ecc.) Il binding delle variabili al loro tipo avviene a tempo di compilazione Il binding non può essere cambiato durante l esecuzione Permette la verifica del corretto uso delle variabili a tempo di compilazione Tipizzazione dinamica (LISP, APL, Smalltalk, ecc.) Il binding avviene a tempo di esecuzione Le variabili sono polimorfiche (il tipo dipende dal valore associato dinamicamente) Non è possibile verificare l uso corretto delle variabili staticamente Linguaggi non tipizzati (linguaggi di script, assemblatori) Le variabili non sono tipizzate Celle di memoria e registri contengono stringhe che possono essere interpretate come valori di qualsiasi tipo
23 l-value variabile = <nome, scope, tipo, l-value, r-value> l-value: area di memorizzazione associata ad una variabile durante l esecuzione Tempo di vita (lifetime o extent): durata di tale binding Allocazione della memoria: Allocazione di un area della memoria ad una variabile Il tempo di vita di una variabile va dalla sua allocazione alla sua disallocazione Allocazione statica: prima dell esecuzione e disallocazione al termine dell esecuzione (automaticamente) Allocazione dinamica: durante l esecuzione e disallocazione durante l esecuzione (automaticamente o su richiesta)
24 r-value variabile = <nome, scope, tipo, l-value, r-value> r-value: Valore codificato memorizzato nella locazione associata alla variabile (l-value) Interpretato a seconda del tipo della variabile Istruzioni di un programma Accedono alle variabili attraverso l-value (left) Modificano r-value (right) x=y; // x indica una locazione, y un valore Binding tra una variabile ed il valore: Dinamico operazione di assegnamento: x=10; Statico costanti simboliche: const int MAX = 10;
25 Inizializzazione di variabili Qual è l r-value di una variabile dopo la sua creazione? In alcuni linguaggi il binding deve essere definito quando la variabile viene creata (ML) Altri lo supportano ma non lo richiedono (C/C++) int i=0; Se l inizializzazione non viene specificata la soluzione adottata dipende dall implementazione Ignorata: considera la stringa nell area di memoria come valore iniziale Definita dal sistema: es. int inizializzati a 0 Valore speciale non definito per inizializzare la variabile che non permette di usare la variabile finchè non viene assegnato un valore (verifica di correttezza del programma)
26 Reference e variabili senza nome Variabili che possono essere accedute tramite l r-value di altre variabili reference o puntatore alla variabile Possono non avere un nome (ma esiste percorso di accesso) Esempio: int x = 5; //r-value di x è 5 int *px; px = &x; //r-value di px è 5 Condivisione di oggetti Accessibili: direttamente (x) indirettamente (px) *px = 0; //r-value di px è 0 int y = *px; //r-value di px è 0 Dereferenziazione: accesso tramite il puntatore
27 Informatica 3 Lezione 2- Modulo 4 Routine Convenzioni dei nomi
28 Routine Routine: unità di decomposizione di un programma che implementa un operazione astratta Assembler: sottoprogramma C: funzione Pascal: procedure e funzioni Procedure: non restituiscono valori Funzioni: restituiscono valori
29 Oggetti di una routine Routine = <nome, scope, tipo, l-value, r-value> Il nome della routine può essere introdotto tramite la dichiarazione della routine int sum(int n); //prototipo C Lo scope va dalla dichiarazione ad un punto di chiusura (C: fine del file che contiene la dichiarazione) L attivazione di una routine avviene tramite l invocazione o chiamata della routine Dev essere nello scope della routine Specifica il nome della routine ed i parametri
30 Oggetti di una routine La routine definisce lo scope per le dichiarazioni in essa annidate Dichiarazioni locali (visibili solo dalla routine) Non locali (visibili da altre unità) Globali (visibili da tutte le unità del programma) Routine = <nome, scope, tipo, l-value, r-value> Il tipo della routine è definito dalla sua intestazione Signature: tipi dei parametri di input e tipo restituito int funzione(int, int, float) Una chiamata di una routine è corretta se è conforme al suo tipo
31 l-value e r-value Routine = <nome, scope, tipo, l-value, r-value> l-value: area di memoria che contiene il corpo della routine r-value: corpo della routine correntemente associato tramite binding Normalmente è statico, definito a tempo di traduzione Alcuni linguaggi supportano un binding dinamico: Variabili di tipo routine a cui si può assegnare una routine Es. linguaggio C int sum(int); int (*ps)(int); ps= int i = (*ps)(5); Routine come first-class objects
32 Dichiarazione e definizione Dichiarazione: intestazione della routine Definisce lo scope Definizione: intestazione e corpo della routine La distinzione serve per poter avere mutua ricorsione Esempio: int funza (int x); //dichiarazione float funzb (int y){ //definizione z=funza (y); //chiamata di funzione (visibile!) }
33 Parametri della routine Per passaggio informazioni Oggetti di dati Routine (in alcuni linguaggi) Parametri Formali: parametri che appaiono nella definizione Attuali: parametri che appaiono nella chiamata alla routine Binding Secondo il metodo posizionale Routine: R(F1,F2,,Fn); Chiamata: R(A1,A2,,An); Tramite associazione del nome Routine: R(A:T1; B:T2; C:T3); Chiamata: R(C=>Z, A=>X, B=>Y);
34 Routine generiche Esempio: Routine per ordinare array di interi int i,j; swap(i,j); //caso 1 Routine per ordinare array di float float i,j; swap(i,j); //caso 2 Template con tipo generico in C++: template <class T> void swap(t& a, T& b) { T temp = a; a = b; b = temp; } Nel caso 1 viene istanziata una routine con interi, nel caso 2 una routine con float I parametri generici vengono associati tramite binding ai parametri attuali a tempo di compilazione
35 Overloading int i,j,k; float a,b,c; a=b+c+b(); b variabile b() funzione i=j+k; a=b+c; Operatore + Somma tra interi Somma tra float a=b()+c+b(i); b() e b(int) funzioni distinte Overloading: la stessa entità viene utilizzata con significati diversi. Il binding per l entità viene stabilito a tempo di compilazione in base alle informazioni disponibili Esempio: per l operatore + il binding con la corrispondente operazioni viene stabilito in base al tipo dei parametri
36 Aliasing Aliasing: contrario di overloading Due nomi sono alias se denotano la stessa entità nello stesso punto del programma int x; int *y=&x; x e *y rappresentano la stessa variabile int q1 (int a) { return a*= a; } void q2 (int &a) { a *= a; } int x=2; cout << q1(x); cout << x; // stampa 4 e 2 q2(x); cout << x; // stampa 4 i e a rappresentano la stessa variabile
Informatica 3. Informatica 3. LEZIONE 2: Sintassi e semantica. Lezione 2- Modulo 1. Le componenti di un linguaggio di programmazione
Informatica 3 Informatica 3 LEZIONE 2: Sintassi e semantica Lezione 2- Modulo 1 Modulo 1: Introduzione ai concetti di sintassi e semantica Modulo 2: Il concetto di binding Modulo 3: Variabili Modulo 4:
Dettagli3. Il Binding. 3.1 Le variabili
3. Il Binding I programmi sono composti di entità come variabili, routines e istruzioni. Ogni entità possiede certe proprietà chiamate attributi. Per esempio, una variabile ha un nome, un tipo, un area
DettagliFunzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
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
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
DettagliCostanti e Variabili
Parte 3 Costanti e Variabili Identificatori Un identificatore è un nome che viene associato a diverse entità (costanti, tipi, variabili, funzioni, ecc.) e serve ad identificare la particolare entità Gli
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
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
DettagliVisibilità e tempo di vita delle variabili. (più sintesi di alcuni concetti della prima parte del corso)
Visibilità e tempo di vita delle variabili (più sintesi di alcuni concetti della prima parte del corso) Struttura dei programmi C/C++ Un programma C/C++ deve essere contenuto in uno o più file (per ora
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
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
DettagliInformatica 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
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
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
DettagliInformatica 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
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
Dettagli<programma> ::= {<unità-di-traduzione>} <main> {<unità-di-traduzione>}
STRUTTURA DI UN PROGRAMMA C In prima battuta, la struttura di un programma C è definita nel modo seguente: ::= {} {} Intuitivamente un programma
DettagliFondamenti di Informatica Il linguaggio C
Fondamenti di Informatica Il linguaggio C http://agile.diee.unica.it mario.locci@diee.unica.it March 19, 2008 1 Contents 1 Introduzione 3 1.1 Compilatore............................ 3 1.2 Il linguaggio
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
DettagliNomi e Ambiente. Nicola Fanizzi. Linguaggi di Programmazione [010194] 20 apr, 2016. Dipartimento di Informatica Università degli Studi di Bari
Nomi e Ambiente Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari Linguaggi di Programmazione [010194] 20 apr, 2016 Sommario 1 Nomi Definizione Astrazione Elementare Progettazione
DettagliIndice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX
Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di
DettagliIntroduzione all OOP!
Introduzione all OOP! Introdurre l evoluzione dei linguaggi di programmazione e la loro classificazione Introdurre l OOP (astrazione, incapsulamento, ereditarietà) Dal C a Java un primo esempio 1 LINGUAGGI
DettagliArgomenti Avanzati.! I puntatori! Stack! Visibilità delle Variabili
Linguaggio C Argomenti Avanzati! I puntatori! Stack! Visibilità delle Variabili 2 ! Il C consente di associare ai tipi di dati nomi definiti dal programmatore, mediante la parola chiave typedef! Dal punto
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
DettagliIstruzioni semplici e strutturate
Consorzio NETTUNO Corso di Fondamenti di Informatica I secondo giorno di stage Istruzioni semplici e strutturate Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II
DettagliVariabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER
Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico
DettagliTempo di vita e scope delle variabili
Tempo di vita e scope delle variabili Richiami sulla struttura di un programma C Un programma C deve essere contenuto in uno o più file (salvo diversa specifica, per ora si assume tutto in un unico file):
DettagliConcetto di Funzione e Procedura METODI in Java
Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile
DettagliUn esecutore di un linguaggio simbolico e costituito dalla coppia Compilatore, processore (o Interprete, processore)
Un esecutore di un linguaggio simbolico e costituito dalla coppia Compilatore, processore (o Interprete, processore) Macchina astratta: un linguaggio di programmazione trasforma un calcolatore in una macchina
DettagliInformatica 3. LEZIONE 5: Tipi di dati
Informatica 3 LEZIONE 5: Tipi di dati Modulo 1: Tipi e costruttori di tipo Modulo 2: Tipi definiti dall utente e tipi di dati astratti Modulo 3: Sistemi di tipi Informatica 3 Lezione 5 - Modulo 1 Tipi
DettagliA. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas
Classi e oggetti A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming),
DettagliVariabili. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliFUNZIONI COME COMPONENTI SW FUNZIONI COME COMPONENTI SW FUNZIONI MODELLO CLIENTE/SERVITORE
FUNZIONI Spesso può essere utile avere la possibilità di costruire nuove istruzioni che risolvano parti specifiche di un problema Una funzione permette di dare un nome a una espressione rendere tale espressione
DettagliEsempio. 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
DettagliSommario. Introduzione... xv. Giorno 1 Elementi base del linguaggio C
Sommario Introduzione... xv Organizzazione del volume... xv Argomenti...xvi Domande...xvi Verifiche...xvi Domande e risposte...xvi Esercizi...xvi Non è richiesta alcuna precedente esperienza di programmazione...
DettagliL'Allocazione Dinamica della Memoria nel linguaggio C
L'Allocazione Dinamica della Memoria nel linguaggio C Prof. Rio Chierego riochierego@libero.it http://www.riochierego.it/informatica.htm Sommario Questo documento tratta l'allocazione dinamica della memoria
DettagliInformatica 3. Informatica 3. LEZIONE 5: Tipi di dati. Lezione 5 - Modulo 1. Tipi predefiniti. Introduzione
Informatica 3 Informatica 3 LEZIONE 5: Tipi di dati Lezione 5 - Modulo 1 Modulo 1: Tipi e costruttori di tipo Modulo 2: Tipi definiti dall utente e tipi di dati astratti Modulo 3: Sistemi di tipi Tipi
DettagliLinguaggio C: le funzioni. Introduzione e sintassi
ISIS "Guido Tassinari" di Pozzuoli Indirizzo Informatico - Articolazione Informatica Informatica Prof. A.S. 2012/2013 Linguaggio C: le funzioni. Introduzione e sintassi 21/10/2012 Introduzione Spesso alcuni
DettagliPerché il linguaggio C?
Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare
DettagliLezione 6. Visibilità degli identificatori e tempo di vita degli oggetti
Lezione 6 Visibilità degli identificatori e tempo di vita degli oggetti Programmazione I Paolo Valente - 2009/2010 Ripasso dichiarazioni oggetti Finora abbiamo scritto le dichiarazioni di variabili e costanti
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
DettagliLinguaggio C: le funzioni. Visibilità variabili e passaggio parametri
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: le funzioni. Visibilità variabili e passaggio parametri
DettagliFasi di un Compilatore
Dipartimento di Matematica e Informatica Università di Camerino Un implementazione compilativa di un linguaggio di programmazione viene realizzata tramite un programma che prende il nome di compilatore
DettagliEsercitazioni di Informatica 3
Esercitazioni di Informatica 3 Part I: Programming Languages Syntax and semantics Laurea in Ingegneria Informatica Politecnico di Milano Polo di Milano Leonardo Esercizio 1: EBNF Utilizzando il linguaggio
DettagliFondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Paradigma OO Oggetti e Classi Metodi Parametri Variabili di istanza Costruttori Esercizi Paradigma Object-Oriented Il paradigma OO
DettagliProgrammazione con Java
Programmazione con Java Classi e istanze in Java Definizione di classe in Java A meno che non si usino classi già scritte da altri, prima di poter creare un qualsiasi oggetto devo creare la sua rappresentazione:
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,
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à
DettagliInformatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1
Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux)
DettagliProgrammazione II. Lezione 7. Daniele Sgandurra 9/11/2010.
Programmazione II Lezione 7 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 9/11/2010 1/24 Programmazione II Lezione 7 9/11/2010 Sommario 1 Gestione della Memoria 2/24 Programmazione II Lezione 7 9/11/2010
DettagliIl Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati
Caratteristiche Il Linguaggio C Linguaggio sequenziale (lineare), imperativo, strutturato a blocchi usabile anche come linguaggio di sistema software di base sistemi operativi compilatori... FI - Algoritmi
DettagliUniversità degli Studi di Cassino Corso di Fondamenti di Informatica Visibilità e tempo di vita delle variabili
Corso di Fondamenti di Informatica Visibilità e tempo di vita delle variabili Anno Accademico Francesco Tortorella Il concetto di visibilità Un programma C++ può assumere una struttura complessa grazie
DettagliTipi di dato personalizzati Array di struct. Tipi di dato utente. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.
Array di Tipi di dato utente Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2016/2017 Array di Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7 Lez. 8 - Introduzione
DettagliIntroduzione a Matlab
INFORMATICA B Ingegneria Elettrica Introduzione a Matlab Introduzione a Matlab Matlab (MATrix LABoratory) è uno strumento per il calcolo scientifico ed ingegneristico Matlab facilita lo sviluppo di programmi
Dettagli6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it
DettagliFunzioni in C. Funzioni. Strategie di programmazione. Funzioni in C. Come riusare il codice? (2/3) Come riusare il codice? (1/3)
Funzioni Il concetto di funzione Parametri formali e attuali Il valore di ritorno Definizione e chiamata di funzioni Passaggio dei parametri Corpo della funzione 2 Strategie di programmazione Riuso di
DettagliLinguaggio C - sezione dichiarativa: costanti e variabili
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente
DettagliBreve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN
Breve Manuale di Riferimento sulla Sintassi Linguaggi e versione aggiornata al 05/02/2004 Sommario Elementi di Base... 2 Dati, Tipi e Dichiarazioni... 2 Tipi di Dato di Base... 2 Tipi di Dato Strutturati...
DettagliIntroduzione al linguaggio C Puntatori
Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2016
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)
DettagliIl linguaggio C. Notate che...
Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione
DettagliLinguaggi 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
DettagliIntroduzione al Linguaggio C
INFORMATICA 1 Lezione 3 (Introduzione al Linguaggio C, Introduzione ai Tipi di dato, Cenni alla codifica binaria) Introduzione al Linguaggio C 1 Passi fondamentali del C Definito nel 1972 (AT&T Bell Labs)
DettagliIl C nel C++: Funzioni
Il C nel C++: Funzioni Funzioni (1) il concetto -> spezzare il programma in parti (procedure) una funzione è un parte di programma dotata di un nome che può essere richiamata in altri punti del programma
DettagliStrategie di programmazione
Funzioni Funzioni in C Il concetto di funzione Parametri formali e attuali Il valore di ritorno Definizione e chiamata di funzioni Passaggio dei parametri Corpo della funzione 2 Funzioni in C Strategie
DettagliStrutture dati nel supporto a run time
Strutture dati nel supporto a run time 1 Entità presenti quando un programma va in esecuzione programmi d utente (compilati) routines del supporto interprete I/O, librerie, routines per la gestione delle
DettagliDefinizione di metodi in Java
Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un
DettagliFondamenti di Programmazione
Fondamenti di Programmazione (con linguaggio di riferimento C++) Gianfranco Rossi Università di Parma Dip. di Matematica e Informatica 43100 Parma (Italy) gianfranco.rossi@unipr.it Indice 1 Introduzione
DettagliElementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I
Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave
DettagliUnità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi
Obiettivi Unità F1 Primi programmi Conoscere il significato di dichiarazione e definizione di variabili Conoscere i tipi di dato numerici Essere in grado di realizzare semplici algoritmi in pseudolinguaggio
DettagliLe basi del linguaggio Java
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 10 Le basi del linguaggio Java Aprile 2010 Le basi del linguaggio Java 1 Prerequisiti Nozioni generali sulla sintassi e semantica del
DettagliAllocazione Dinamica della Memoria
Allocazione Dinamica della Memoria Elisa Marengo Università degli Studi di Torino Dipartimento di Informatica Elisa Marengo (UNITO) Allocazione Dinamica della Memoria 1 / 10 Scelta delle variabili Quando
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA2 2.1- Funzioni 1 Prerequisiti Programmazione elementare in Java Tecnica top-down Concetto matematico di funzione Compilazione e link di programmi Esecuzione di funzioni
DettagliIl linguaggio C. Puntatori e dintorni
Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;
DettagliUniversità di Roma Tor Vergata L12-1
Università di Roma Tor Vergata L12-1 soluzione di un problema fl 1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio
DettagliIndice. Prefazione. 3 Oggetti e Java 53
Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Parte 2 (a) Sintassi e Semantica versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina)
DettagliProgrammazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo
Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy
DettagliIl linguaggio C. Caratteristiche generali
Il linguaggio C Caratteristiche generali Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni
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
DettagliC: panoramica. Violetta Lonati
C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati
Dettagli14 - Metodi e Costruttori
14 - Metodi e Costruttori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it
DettagliL Allocazione Dinamica della Memoria
L Allocazione Dinamica della Memoria Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario Questo documento
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
DettagliOttenere una modifica del parametro attuale
Ottenere una modifica del parametro attuale Le variabili passate come parametri a una funzione, se alterate durante l esecuzione, non cambiano valore all uscita dalla funzione (parametri passati per valore)
DettagliTipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi:
Tipi di dato Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi: esprimere in modo sintetico la loro rappresentazione in memoria, e un insieme di operazioni ammissibili permettere
DettagliInformatica A. Il linguaggio C. A.a. 2006/2007. Allievi Ingegneria Gestionale
Informatica A A.a. 2006/2007 Allievi Ingegneria Gestionale Il linguaggio C Tecnologia Software Il SW come Interfaccia Tra Utente e Macchina Fisica Programma dell utente (software applicativo) Gestione
DettagliUso di classi e oggetti. Prof. Francesco Acarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni
Uso di classi e oggetti Prof. Francesco Acarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Tipi di dati Tipi primitivi: interi Java fornisce otto tipi primitivi indipendenti dall implementazione
DettagliArray k-dimensionali
Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Array k-dimensionali In C è possibile definire array con più dimensioni (ANSI C massimo k=12), per
DettagliEsercizi sulla macchina assembler, strutturazione a livelli, spazio di indirizzamento
Architettura degli Elaboratori, a.a. 2005-06 Esercizi sulla macchina assembler, strutturazione a livelli, spazio di indirizzamento Esercizio 1 (svolto) a) Compilare in assembler Risc (Cap. V) un programma
Dettagli1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio
soluzione di un problema 1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio rappresentazioni disponibili in C++:
DettagliSommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...
Sommario PREFAZIONE...XI Aggiornamenti e novità... xi Lo scopo di questo libro... xii Diagramma delle dipendenze... xii La metodologia di insegnamento... xiii Panoramica sul libro... xvi Ringraziamenti...
DettagliIntroduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C
Introduzione 2 Introduzione al C Linguaggio di programmazione ad alto livello (HLL) Sviluppato negli anni 70 (C standard ANSI) Molto diffuso e adatto ad un ampio spettro di applicazioni: Scientifiche Gestionali
DettagliFunzioni in C. Architetture multi-componente
Funzioni in C Architetture multi-componente In generale, una applicazione informatica complessa è organizzata come insieme di componenti software che cooperano per raggiungere un fine comune. Ogni componente
DettagliLinguaggio C: le funzioni. Introduzione e sintassi
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: le funzioni. Introduzione e sintassi La presente dispensa
DettagliCorso di Linguaggi di Programmazione
Corso di Linguaggi di Programmazione Lezione 13 Alberto Ceselli (thanks C. Braghin) alberto.ceselli@unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 21 Aprile 2009
DettagliProgrammazione a Oggetti Lezione 7. Il linguaggio Java: aspetti generali
Programmazione a Oggetti Lezione 7 Il linguaggio Java: aspetti generali Sommario Obiettivi di JAVA Portabilità: produrre codice eseguibile su più piattaforme (JVM) Affidabilità: Evitare il più possibile
Dettagli7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari
7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa
DettagliPrimi passi col linguaggio C
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta
Dettagli