Generazione di Codice

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Generazione di Codice"

Transcript

1 Generazione di Codice module prog(a: int, b: string): int var v1:...,..., vm:...; const c1:... =...,..., cp:... =...; Programma Tela Traduttore T-code module f1(...): int var...; const...; module f2(...): real... begin f2... end f2 begin f1... end f1 module f3(...): void... begin prog... end prog TCODE size PUSH num-formals num-locals -1 GOTO ^prog POP HALT prog f1 f2... static chain 1

2 Generazione di Codice (ii) Scelte di progetto: Programma trattato come modulo (chiamabile da altri moduli) Parametri del modulo trattati come variabili locali Codice indirizzabile direttamente (senza label) Indirizzo di una istruzione T-code = posizione della istruzione nel codice generato Descrittori degli oggetti allocati nell'ordine in cui vengono dichiarati (formali, variabili, costanti) Oggetti (parametri, variabili, costanti) trattati uniformemente dalla macchina astratta (T-machine) Identificazione degli oggetti (parametri, variabili, costanti): offset-env, oid 2

3 Dichiarazione di Variabili var c1, c2: char; i, j: int; x, y: real; nome, cognome: string; ok, flag: bool; NEW char NEW char NEW int NEW int NEW float NEW float NEW string NEW string NEW int NEW int Note: Dichiarazione di una variabile avente dimensione type-size: NEW type-size Variabile di tipo bool: trattata come int 3

4 Generazione di NEW (come per variabili) Dichiarazione di Costanti Generazione di codice per l'espressione di inizializzazione (dopo tutte le NEW ) const MAX: int = 10; a, b: real = 10.25; linguaggio: string = "Tela"; media: real = somma / num; FACT: int = fattoriale(max); NEW int NEW float NEW float NEW string NEW float NEW int istanziazione di MAX istanziazione di a istanziazione di b istanziazione di linguaggio istanziazione di media istanziazione di FACT 4

5 Referenza a Costante 1. Costante carattere x = 'c'; LDC 'c' 2. Costante intera y = 25; LDI Costante reale z = 3.14; LDR Costante stringa s = "alpha"; LDS "alpha" 5. Costante booleana b = true; LDI 1 Nota: Valori booleani: true, false surrogati da interi: 1, 0 5

6 Referenza a Identificatore 1. Oggetto locale x = y + 1; LOD 0 ^y 2. Oggetto non locale x = z + 1; LOD 2 ^z Nota: Argomenti di LOD = env-offset, oid (object identifier) 6

7 Assegnamento Computazione della espressione di assegnamento + store (STO) 1. Assegnamento di oggetto locale (variabile, parametro): x = expr; expr STO 0 ^x 2. Assegnamento di oggetto non locale (variabile, parametro): y = expr; expr STO 2 ^y Nota: Argomento di STO = env-offset, oid (dell'oggetto assegnato) 7

8 Operazioni Logiche (and, or) and logic-expr expr 1 expr 2 JMF offset JMP 2 LDI 0 or JMF 3 LDI 1 JMP exit var a, b, c: bool; a = (b and c) or g; LOD 0 ^b JMF 3 LOD 0 ^c JMP 2 LDI 0 JMF 3 LDI 1 JMP 2 LOD 2 ^g STO 0 ^a Note: Valutazione in corto circuito JMP = salto incondizionato JMF = salto condizionato (a false) Argomento di JMP, JMF = lunghezza del salto (offset) exit = + 1 offset = + 2 8

9 Operazioni Relazionali: ==,!= rel-expr expr 1 expr 2 ==!= EQU NEQ var i, j: int; b: bool; b = (i == j or j!= k); LOD 0 ^i EQU JMF 3 LDI 1 JMP 4 LOD 2 ^k NEQ STO 0 ^b Nota: EQU, NEQ: polimorfi per tutti i tipi di oggetti 9

10 Operazioni Relazionali: >, >=, <, <= > >= < <= char CGT CGE CLT CLE int IGT IGE ILT ILE rel-expr expr 1 expr 2 real RGT RGE RLT RLE string SGT SGE SLT SLE var i, j: int; x, y: real b: bool; b = (i > j or x < y); LOD 0 ^i IGT JMF 3 LDI 1 JMP 4 LOD 0 ^x LOD 0 ^y RLT STO 0 ^b 10

11 Operazioni Aritmetiche: +,, *, / + * / int IADD ISUB IMUL IDIV math -expr expr 1 expr 2 real RADD RSUB RMUL RDIV var i, j, k: int; x, y: real; i = (i + 5) * (j k); x = (y ) / (x + y); LOD 0 ^i LDI 5 IADD LOD 0 ^k ISUB IMUL STO 0 ^i LOD 0 ^y LDR 3.14 RADD LOD 0 ^x LOD 0 ^y RADD RDIV STO 0 ^x 11

12 Operazioni di Negazione:, not (int) (real) NOT neg-expr expr expr IUMI expr RUMI expr LNEG var i, j, k: int; a, b: bool; b = i > j * k and not (a or j == k); LOD 0 ^i LOD 0 ^k IMUL IGT JMF 11 LOD 0 ^a JMF 3 LDI 1 JMP 5 LOD 0 ^k IUMI EQU LNEG JMP 2 LDI 0 STO 0 ^b 12

13 Chiamata di Modulo module-call id expr 1... expr n expr n PUSH num-formals num-locals chain GOTO entry POP Scenario Chain m1 genitore di m2 0 m1 fratello di m2 1 otherwise Level(m1) - Level(m2) + 1 Note: var i, j, k: int; k = j m(i+j, x, j i); LOD 0 ^i IADD LOD 1 ^x LOD 0 i ISUB PUSH GOTO ^m POP IMINUS STO 0 ^k m1 chiama m2 num-formals = numero di parametri formali num-locals = numero di oggetti locali (non parametri) chain = distanza tra l'ambiente della chiamata e l'ambiente in cui è definito il modulo chiamato entry = indirizzo (entry point ) del modulo chiamato (corpo) 13

14 cond-expr expr 1 expr 2 opt-elsif-expr-list expr 3 opt-elsif-expr-list expr 1i, expr 2i } Note: JMF next 1 JMP exit 1 expr 11 JMF next 2 expr 21 JMP exit 2 expr 12 JMF next 3 expr 22 JMP exit 3 expr 1n JMF next n+1 expr 2n JMP exit n+1 expr 3 Espressione Condizionale var i, j, k: int; a, b, c: bool; w = if a or b then i + 48; elsif c and j > 20 then j k; elsif i!= j / k then k * i; else 36; endif; next i = distanza dalla condizione successiva (o dal default) exit i = distanza dall'uscita della espressione condizionale LOD 0 ^a JMF 3 LDI 1 JMP 2 LOD 0 ^b JMF 5 LOD 0 ^i LDI 48 IADD JMP 24 LOD 0 ^c JMF 5 LDI 20 IGT JMP 2 LDI 0 JMF 5 LOD 0 ^k ISUB JMP 12 LOD 0 ^i LOD 0 ^k IDIV NEQ JMF 5 LOD 0 ^k LOD 0 ^i IMUL JMP 2 LDI 36 14

15 Cast cast expr expr TOINT expr TOREA var i, j: int; x: real; x = real(i+j); LOD 0 ^i IADD TOREA STO 0 ^x 15

16 Read read-stat id1... idn READ format env-offset oid 1... READ format env-offset oid n var lettera: char; tot: int; media: real; nome: string; ok: bool; read(lettera, tot, media, nome, ok); READ c 0 ^lettera READ i 0 ^tot READ r 0 ^media READ s 0 ^nome READ b 0 ^ok Note: oid = identificatore dell'oggetto da istanziare env-offset = distanza nella catena statica format = carattere (c, i, r, s, b) che indica il tipo di oggetto da istanziare 16

17 Write write-stat expr 1... expr n... expr n WRITE format var i, j: int; x: real; nome: string; write(i+j, x z, nome); LOD 0 ^i IADD LOD 0 ^x LOD 2 ^z RSUB LOD 0 ^nome WRITE "irs" Nota: format = stringa dei caratteri che identificano i tipi dei valori delle espressioni da stampare 17

18 Istruzione Condizionale Nota: if-stat expr stat-list 1 opt-elsif-stat-list [ stat-list 2 ] opt-elsif-stat-list expr 1i stat-list 2i } expr JMF next 1 stat-list 1 JMP exit 1 expr 11 JMF next 2 stat-list 21 JMP exit 2 expr 12 JMF next 3 stat-list 22 JMP exit 3... expr 1n JMF next n+1 stat-list 2n JMP exit n+1 [ stat-list 2 ] Se stat-list 2 non specificata var i, j, k: int; if i == j then j = j + 3; elsif i > j then i = i 2; j = i + k ; else i = j * k; end;... expr 1n JMF exit n+1 stat-list 2n LOD 0 ^i EQU JMF 6 LDI 3 IADD STO 0 ^j JMP 18 LOD 0 ^i IGT JMF 10 LOD 0 ^i LDI 2 ISUB STO 0 ^j LOD 0 ^i LOD 0 ^k IADD STO 0 ^j JMP 5 LOD 0 ^k IMUL STO 0 ^i 18

19 Ciclo While while-stat expr stat-list expr JMF exit stat-list JMP up a, b, ris: int; ris = 0; while a >= b do ris = ris + 1; a = a b; end; LDI 0 STO 0 ^ris LOD 0 ^a LOD 0 ^b IGE JMF 10 LOD 0 ^ris LDI 1 IADD STO 0 ^ris LOD 0 ^a LOD 0 ^b ISUB STO 0 ^a JMP 12 19

20 Note: module-decl id opt-param-list type opt-var-sect opt-const-sect opt-module-list module-body mid = identificatore del modulo Dichiarazione di Modulo module alfa(i: int, j: int, k: int): int var n, m: int; const msg: string = "Hello!" begin alfa write(msg); n = i + k; m = n k; j = n * m; k = k / j; return n+m k; end alfa MOD mid new-variables new-constants assign-constants module-body RETURN MOD ^alfa NEW n NEW m NEW msg LDS "Hello!" STO 0 ^msg LOD 0 ^msg WRITE "s" LOD 0 ^i LOD 0 ^k IADD STO 0 ^n LOD 0 ^n LOD 0 ^k ISUB STO 0 ^m LOD 0 ^n LOD 0 ^m IMUL STO 0 ^j LOD 0 ^k IDIV STO 0 ^k LOD 0 ^n LOD 0 ^m IADD LOD 0 ^k ISUB RETURN Se return non è istruzione finale JMP a RETURN 20

21 Strutture Dati per Generazione di Codice address op args next Stat: Code: head size tail Rappresentazione di un segmento di codice (sequenza di istruzioni T-code): head size tail

22 Libreria di Funzioni per Generazione di Codice void relocate_address(code code, int offset) Code appcode(code code1, Code code2) Code endcode() Code concode(code code1, Code code2,...) Stat *newstat(operator op) Code makecode(operator op) Code makecode1(operator op, int arg) Code makecode2(operator op, int arg1, int arg2) Code makecode3(operator op, int arg1, int arg, int arg3) Code make_push_pop(int nformals, int nlocals, int chain, int entry) Code make_ldc(char c) Code make_ldi(int i) Code make_ldr(float r) Code make_lds(char *s) 22

23 relocate_address() void relocate_address(code code, int offset) Stat *pt = code.head; int i; } for(i = 1; i <= code.size; i++) pt >address += offset; pt = pt >next; } 23

24 appcode() Code appcode(code code1, Code code2) Code rescode; } relocate_address(code2, code1.size); rescode.head = code1.head; rescode.tail = code2.tail; code1.tail >next = code2.head; rescode.size = code1.size + code2.size; return rescode; 24

25 endcode(), concode() Code endcode() static Code code = NULL, 0, NULL}; } return code; Code concode(code code1, Code code2,...) Code rescode = code1, *pcode = &code2; } while(pcode >head!= NULL) rescode = appcode(rescode, *pcode); pcode++; } return rescode; 25

26 newstat(), makecode() Stat *newstat(operator op) Stat *pstat; } pstat = (Stat*) malloc(sizeof(stat)); pstat >address = 0; pstat >op = op; pstat >next = NULL; return pstat; Code makecode(operator op) Code code; } code.head = code.tail = newstat(op); code.size = 1; return code; 26

27 makecode1(), makecode2(), makecode3() Code makecode1(operator op, int arg) Code code; } code = makecode(op); code.head >args[0].ival = arg; return code; Code makecode2(operator op, int arg1, int arg2) Code code; } code = makecode1(op, arg1); code.head >args[1].ival = arg2; return code; Code makecode3(operator op, int arg1, int arg2, int arg3) Code code; } code = makecode2(op, arg1, arg2); code.head >args[2].ival = arg3; return code; 27

28 make_push_pop() Code make_push_pop(int nformals, int nlocals, int chain, int entry) return concode(makecode3(push, nformals, nlocals, chain), makecode1(goto, entry), makecode(pop), endcode()); } 28

29 make_ldc(), make_ldi(), make_ldr(), make_lds() Code make_ldc(char c) Code code; Code make_ldr(float r) Code code; } code = makecode(ldc); code.head >args[0].cval = c; return code; } code = makecode(lds); code.head >args[0].rval = r; return code; Code make_ldi(int i) return makecode1(ldi, i); } Code make_lds(char *s) Code code; } code = makecode(lds); code.head >args[0].sval = s; return code; 29

30 Macchina Astratta Dati Programma T-code T-machine Risultato Architettura: Memoria codice Activation Stack Object Stack 30

31 Memoria Codice Tcode: op args typedef struct Operator op; Lexval args[maxargs]; } Tcode; Tcode *prog; Allocata nella inizializzazione della T-machine TCODE size 31

32 Struttura Pile numobj objects raddr alink size val ap 3 op 'c' astack ostack 32

Tela (Teaching Language)

Tela (Teaching Language) Tela (Teaching Language) Paradigma imperativo Dichiarazioni di variabili, costanti, moduli Programma strutturato in moduli innestati Scope statico Passaggio dei parametri per valore Corpo del modulo =

Dettagli

Il linguaggio C. Istruzioni, funzioni, dati strutturati

Il linguaggio C. Istruzioni, funzioni, dati strutturati Il linguaggio C Istruzioni, funzioni, dati strutturati Istruzioni Servono a dirigere il flusso di esecuzione di un programma controllano l ordine di esecuzione delle espressioni, quindi dei loro side effects

Dettagli

Espressioni. Espressione = meccanismo fondamentale per esprimere computazioni in un LP importante comprenderne la semantica!

Espressioni. Espressione = meccanismo fondamentale per esprimere computazioni in un LP importante comprenderne la semantica! Espressioni Espressione = meccanismo fondamentale per esprimere computazioni in un LP importante comprenderne la semantica! Valutazione automatica di expr aritmetiche = obiettivo primario dei primi LP

Dettagli

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Elementi 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

Dettagli

Generazione Codice Intermedio

Generazione Codice Intermedio Generazione Codice Intermedio Front-end generazione codice intermedio programma sorgente Analizzatore lessicale Analizzatore sintattico Analizzatore semantico Generatore codice int. rappresentazione intermedia

Dettagli

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

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

Dettagli

Esercitazioni di Linguaggi e Traduttori

Esercitazioni di Linguaggi e Traduttori 1 Codici intermedi 2 Three-address code 3-address code: rappresentazione a quadruple Tipologie di quadruple Implementazione Espressioni matematiche e logiche Puntatori, strutture ed array Trasformazione

Dettagli

Il linguaggio C. Notate che...

Il 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

Dettagli

Dal linguaggio macchina al linguaggio C

Dal linguaggio macchina al linguaggio C FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Università degli Studi di Udine Dal linguaggio macchina al linguaggio C Programma sorgente, compilatore, file oggetto, file eseguibile programma sorgente

Dettagli

Lezione 6 Introduzione al C++ Mauro Piccolo

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

Dettagli

Un esempio di compilatore realizzato con flex e bison

Un esempio di compilatore realizzato con flex e bison POLITECNICO DI MILANO Dipartimento di Elettronica e Informazione Corso di Linguaggi Formali e Compilatori - Esercitazioni Un esempio di compilatore realizzato con flex e bison Progetto di Vincenzo Martena

Dettagli

La sintassi del C APPENDICE H

La sintassi del C APPENDICE H APPENDICE H La sintassi del C Nella notazione della sintassi utilizzata, le categorie sintattiche (non terminali) sono state indicate da uno stile tipografico in corsivo, mentre le parole letterali e i

Dettagli

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout

Dettagli

Dichiarazione di variabili

Dichiarazione di variabili Dichiarazione di variabili ESEMPIO: somma di due numeri

Dettagli

Corso di. Stack: Procedure e variabili locali. Architetture degli Elaboratori. Uno stack anche per i calcoli. Lo stack di esecuzione

Corso di. Stack: Procedure e variabili locali. Architetture degli Elaboratori. Uno stack anche per i calcoli. Lo stack di esecuzione Corso di Architettura degli Elaboratori Il livello della microarchitettura: l'isa IJVM Stack: Procedure e variabili locali ambiente di esecuzione procedura A variabili locali di A variabili locali di B

Dettagli

Il linguaggio C. Notate che...

Il 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

Dettagli

Linguaggi e Traduttori Esercitazione di laboratorio N.2 - soluzione

Linguaggi e Traduttori Esercitazione di laboratorio N.2 - soluzione Linguaggi e Traduttori Esercitazione di laboratorio N.2 - soluzione Esercizio Si scriva, usando LEX e YACC, un programma in grado riconoscere la sintassi di un sottoinsieme del linguaggio C. Dato un file

Dettagli

Esercizio 1. a * 10 + (20 b) a b. Tecnologie dei Linguaggi Artificiali Esercizi Yacc

Esercizio 1. a * 10 + (20 b) a b. Tecnologie dei Linguaggi Artificiali Esercizi Yacc Esercizio 1 Usando Yacc e Lex, codificare un generatore di alberi astratti relativi alla seguente grammatica: program expr expr expr + term expr term term term term * term / ( expr ) num Ecco un esempio

Dettagli

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

Esercizio 1. Dato il linguaggio definito dalla seguente BNF,

Esercizio 1. Dato il linguaggio definito dalla seguente BNF, Dato il linguaggio definito dalla seguente BNF, Esercizio 1 program stat-list stat-list stat stat-list stat stat declaration assignment loop declaration type id-list type int real bool id-list id, id-list

Dettagli

Cast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double

Cast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double Il cast Cast implicito Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto Per esempio: byte short int long float double int x = 10; float f; f = x; Il valore di

Dettagli

Cominciamo ad analizzare la rappresentazione delle informazioni... di Cassino. C. De Stefano Corso di Fondamenti di Informatica Università degli Studi

Cominciamo ad analizzare la rappresentazione delle informazioni... di Cassino. C. De Stefano Corso di Fondamenti di Informatica Università degli Studi Un linguaggio ad alto livello deve offrire degli strumenti per: rappresentare le informazioni di interesse dell algoritmo definire le istruzioni che costituiscono l algoritmo Cominciamo ad analizzare la

Dettagli

INFORMATICA 3 Prof.ssa Sara Comai

INFORMATICA 3 Prof.ssa Sara Comai INFORMATICA 3 Prof.ssa Sara Comai ESERCIZI SESSIONE LIVE 1 Sintassi e semantica operazionale Ing. Paola Spoletini 1. Sintassi Utilizzando il linguaggio descritto dalla seguente EBNF: REGOLE SINTATTICHE:

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Dettagli

Linguaggi di Programmazione I Lezione 9

Linguaggi di Programmazione I Lezione 9 Linguaggi di Programmazione I Lezione 9 Prof. Marcello Sette mailto://marcello.sette@gmail.com http://sette.dnsalias.org 6 maggio 28 Variabili 3 Ambiti................................................................

Dettagli

Laboratorio di Informatica I

Laboratorio di Informatica I Struttura della lezione Lezione : Elementi lessicali del C Vittorio Scarano Corso di Laurea in Informatica Elementi lessicali e token Costanti Identificatori Operatori operatori di incremento/decremento

Dettagli

Oggetti e dati primitivi 1

Oggetti e dati primitivi 1 I membri delle classi Oggetti e dati primitivi Corso di laurea in Le classi contengono 2 tipi di membri, definiti per l intera classe o per le singole istanze Le variabili o i campi, che rappresentano

Dettagli

Struttura di un programma C++

Struttura di un programma C++ Struttura di un programma C++ // Programma semplice in C++ #include using namespace std; int main() { cout

Dettagli

Linguaggio C: Espressioni

Linguaggio C: Espressioni Linguaggio C: Espressioni Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 / 34 Ringraziamenti prof. Mirko Viroli, Università

Dettagli

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

Dettagli

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER

Dettagli

Esercitazioni di Informatica 3

Esercitazioni 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

Dettagli

Il linguaggio C. Puntatori e dintorni

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

Dettagli

if else Fondamenti di Informatica (Modulo B) !""#$ % ( #if else ) " *+ #switch if (Condizione) Istruzione

if else Fondamenti di Informatica (Modulo B) !#$ % ( #if else )  *+ #switch if (Condizione) Istruzione #$ % '' # ( #if else ) *+ #switch 50 if else * if * # if (Condizione) Istruzione Condizione bool Istruzione ( Condizione true + Istruzione ( Condizione false + Istruzione +, -+.// x.//# if (x == 100) if

Dettagli

Linguaggi e grammatiche. Esercizi. Linguaggi e grammatiche. Linguaggi e grammatiche

Linguaggi e grammatiche. Esercizi. Linguaggi e grammatiche. Linguaggi e grammatiche Esercizi Grammatiche, scoping Univ. di Udine Grammatiche, scoping (Univ. di Udine) Esercizi 1 / 29 Linguaggi e grammatiche Definire i numeri divisibili per 2 in base 3, come grammatica libera da contesto

Dettagli

Programmazione in linguaggio assembly per architetture Intel 8088

Programmazione in linguaggio assembly per architetture Intel 8088 Programmazione in linguaggio assembly per architetture Intel 8088 Marco Di Felice 1 Università of Bologna Dipartimento di Scienze dell Informazione Corso di Architettura degli Elaboratori mail: difelice@cs.unibo.it

Dettagli

Esercizi. Grammatiche, scoping. Univ. di Udine. Grammatiche, scoping (Univ. di Udine) Esercizi 1 / 29

Esercizi. Grammatiche, scoping. Univ. di Udine. Grammatiche, scoping (Univ. di Udine) Esercizi 1 / 29 Esercizi Grammatiche, scoping Univ. di Udine Grammatiche, scoping (Univ. di Udine) Esercizi 1 / 29 Linguaggi e grammatiche Definire i numeri divisibili per 2 in base 3, come grammatica libera da contesto

Dettagli

IL LINGUAGGIO JAVA. Introduzione alla sintassi di Java La sintassi formalizza le regole sintattiche per scrivere frasi ben formate

IL LINGUAGGIO JAVA. Introduzione alla sintassi di Java La sintassi formalizza le regole sintattiche per scrivere frasi ben formate Fondamenti di Informatica IL LINGUAGGIO JAVA Sintassi, Semantica, Input, Tipi Elementari e Istruzione Condizionale 1 Introduzione alla sintassi di Java La sintassi formalizza le regole sintattiche per

Dettagli

Architettura degli Elaboratori Lez. 3 ASM: Strutture di controllo. Prof. Andrea Sterbini

Architettura degli Elaboratori Lez. 3 ASM: Strutture di controllo. Prof. Andrea Sterbini Architettura degli Elaboratori Lez. 3 ASM: Strutture di controllo Prof. Andrea Sterbini sterbini@di.uniroma1.it Argomenti Argomenti della lezione - Il simulatore MARS - Le strutture di controllo - Esempi

Dettagli

Procedure e variabili locali. Corso di Architettura degli Elaboratori. Uno stack anche per i calcoli. Lo stack di esecuzione

Procedure e variabili locali. Corso di Architettura degli Elaboratori. Uno stack anche per i calcoli. Lo stack di esecuzione Corso di Architettura degli Elaboratori Il livello della microarchitettura: l'isa IJVM Dipartimento di Informatica Università degli Studi di Torino C.so Svizzera, 85 I-04 Torino baldoni@di.unito.it http://www.di.unito.it/

Dettagli

Dal linguaggio macchina al linguaggio C

Dal linguaggio macchina al linguaggio C FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Dal linguaggio macchina al linguaggio C 2000 Pier Luca Montessoro (si veda la nota di copyright

Dettagli

Laboratorio di Programmazione

Laboratorio di Programmazione Laboratorio di Programmazione (Laurea triennale in matematica) Lezione 25 Le liste in C struct nodo { int info; struct nodo *next; }; typedef struct nodo Nodo; typedef Nodo *PNodo; Inserimento in ordine

Dettagli

Esercizio 1. Specificare la grammatica ad attributi del linguaggio definito dalla seguente BNF: Nota: Nella tabella non sono ammessi campi omonimi.

Esercizio 1. Specificare la grammatica ad attributi del linguaggio definito dalla seguente BNF: Nota: Nella tabella non sono ammessi campi omonimi. Esercizio 1 Specificare la grammatica ad attributi del linguaggio definito dalla seguente BNF: def : ( attr-list ) attr-list decl, attr-list decl decl : int string bool def R: (a: int, b: string, c: bool)

Dettagli

Linguaggio C: Espressioni

Linguaggio C: Espressioni Linguaggio C: Espressioni Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 Ringraziamenti prof. Mirko Viroli, Università

Dettagli

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 9 - Array 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 Corso di Laurea

Dettagli

3. La sintassi di Java

3. La sintassi di Java pag.9 3. La sintassi di Java 3.1 I tipi di dati statici In Java, come in Pascal, esistono tipi di dati statici predefiniti e sono i seguenti: byte 8 bit da -128 a 127 short 16 bit coincide con l integer

Dettagli

I costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni

I costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni Classi di istruzioni In maniera simile a quanto fatto per i dati, un linguaggio mette a disposizione dei costrutti per realizzare la parte esecutiva dell algoritmo. Questa consiste di: Leggi i valori di

Dettagli

Dichiarazioni e tipi predefiniti nel linguaggio C

Dichiarazioni e tipi predefiniti nel linguaggio C Politecnico di Milano Dichiarazioni e tipi predefiniti nel linguaggio C Variabili, costanti, tipi semplici, conversioni di tipo. Premessa Programmi provati sul compilatore Borland C++ 1.0 Altri compilatori:

Dettagli

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

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

Dettagli

Prova scritta di Fondamenti di Informatica - 4 aprile Fila A

Prova scritta di Fondamenti di Informatica - 4 aprile Fila A Università degli Studi di Firenze - Scuola di Ingegneria Corso di laurea in Ingegneria Elettronica e delle Telecomunicazioni Esercizio 1 (6 punti) Prova scritta di Fondamenti di Informatica - 4 aprile

Dettagli

Variabili e Funzioni. Informatica 1 / 19

Variabili e Funzioni. Informatica 1 / 19 Variabili e Funzioni Informatica 1 / 19 Programmi C e Un programma C e composto da funzioni e variabili Variabile: memorizza valori appartenenti ad un insieme di definizione (dipendente dal tipo) Funzione:

Dettagli

IL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

IL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Primo esempio di un programma Java Semplicissimo programma

Dettagli

Laboratorio di Programmazione

Laboratorio di Programmazione Laboratorio di Programmazione (Laurea triennale in matematica) Lezione 33 Le liste in C struct nodo { int info; struct nodo *next; }; typedef struct nodo Nodo; typedef Nodo *PNodo; Pila (Stack ) La struttura

Dettagli

Informatica Generale Andrea Corradini Ancora sui linguaggi di programmazione

Informatica Generale Andrea Corradini Ancora sui linguaggi di programmazione Informatica Generale Andrea Corradini 18 - Ancora sui linguaggi di programmazione Sommario Principali componenti di un linguaggio di programmazione Variabili e costanti Strutture dati: array e record Strutture

Dettagli

SOMMARIO STACK. STACK: specifica STACK

SOMMARIO STACK. STACK: specifica STACK SOMMARIO STACK Pila (stack): una struttura dati lineare a cui si può accedere soltanto mediante uno dei suoi capi per memorizzare e per estrarre dati. Specifica (descrizione). Implementazione (realizzazione).

Dettagli

Javascript: il browser

Javascript: il browser Javascript: il browser Un browser è un programma Un browser interpreta il linguaggio HTML e visualizza le pagine sullo schermo Per la visualizzazione delle pagine un browser si appoggia al software di

Dettagli

Esercitazioni di Fondamenti di Informatica - Lez. 8 27/11/2018

Esercitazioni di Fondamenti di Informatica - Lez. 8 27/11/2018 Esercitazioni di Fondamenti di Informatica - Lez. 8 27/11/2018 Esercizi sull allocazione dinamica della memoria in C Il codice di questi esercizi é contenuto nella cartella parte1 1. Implementare una lista

Dettagli

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input

Dettagli

Programmazione ad Oggetti. Java Parte II

Programmazione ad Oggetti. Java Parte II Programmazione ad Oggetti Java Parte II Overview Caratteristiche lessicali Il primo programma Java 1 Commenti /* Commento tradizionale, eventualmente su più linee, non nidificato */ // Commento su di una

Dettagli

Esercizio 1. int x = 3, num = 100; string A = "alfa", B = "beta"; boolean ok = false; Linguaggi di Programmazione Esercizi BNF

Esercizio 1. int x = 3, num = 100; string A = alfa, B = beta; boolean ok = false; Linguaggi di Programmazione Esercizi BNF Esercizio 1 Specificare la grammatica BNF del linguaggio L, in cui ogni frase corrisponde ad una o più dichiarazioni. Ogni dichiarazione è composta da un tipo (int, string o boolean) e da una lista di

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Università di Camerino Corso di Laurea in Informatica (12 CFU) I periodo didattico Emanuela Merelli email:emanuela.merelli@unicam.it Argomenti della lezione Elementi di un linguaggio

Dettagli

Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati

Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli Studi di Bologna Anno Accademico 2008/2009 Sommario

Dettagli

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso Unità Didattica 2 Linguaggio C Espressioni, Operatori e Strutture linguistiche per il controllo del flusso 1 Espressioni e assegnazioni Le espressioni sono definite dalla grammatica: espressione = variabile

Dettagli

Programmazione Java Struttura di una classe, Costruttore, Riferimento this

Programmazione Java Struttura di una classe, Costruttore, Riferimento this Programmazione Java Struttura di una classe, Costruttore, Riferimento this romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap > Struttura di una classe > Costruttore > Riferimento

Dettagli

Linguaggio C: Espressioni

Linguaggio C: Espressioni Linguaggio C: Espressioni Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 Ringraziamenti prof. Mirko Viroli, Università

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Strutture di Controllo Parte 4 Conclusioni G. Mecca M. Samela Università della Basilicata Strutture di Controllo >> Sommario Sommario Ricapitolazione Alcune

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica Introduzione versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Javascript: il browser

Javascript: il browser Javascript: il browser Un browser è un programma Un browser interpreta il linguaggio HTML e visualizza le pagine sullo schermo Per la visualizzazione delle pagine un browser si appoggia al software di

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Esercizio 1. (3 punti) Fondamenti di Informatica PROVA SCRITTA 25 gennaio 2016 Data l istruzione assembler MIPS add $1,$2,$3, memorizzata all interno della memoria istruzioni della CPU, descrive la sua

Dettagli

Dati due punti sul piano calcolare la loro distanza

Dati due punti sul piano calcolare la loro distanza Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12

Dettagli

Programmazione lato client. JavaScript. Applicazioni di Rete M. Ribaudo - DISI. JavaScript

Programmazione lato client. JavaScript. Applicazioni di Rete M. Ribaudo - DISI. JavaScript Programmazione lato client Netscape: Microsoft: JScript ECMAScript (ECMA-262) (European Computer Manufactures Association) 1 Linguaggio di script interpretato con alcune caratteristiche Object Oriented

Dettagli

PILE E CODE. Pile (stack):

PILE E CODE. Pile (stack): PILE E CODE Sono tipi di dato che consentono di rappresentare sequenze di elementi in cui gli inserimenti e le cancellazioni sono eseguiti con particolari modalita` (politiche o discipline). Pile (stack):

Dettagli

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

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

Dettagli

Esercizio 1. int x = 3, num = 100; string A = "alfa", B = "beta"; boolean ok = true, end = false; Tecnologie dei Linguaggi Artificiali Esercizi Lex

Esercizio 1. int x = 3, num = 100; string A = alfa, B = beta; boolean ok = true, end = false; Tecnologie dei Linguaggi Artificiali Esercizi Lex Esercizio 1 Codificare in Lex l'analizzatore lessicale di un linguaggio in cui ogni frase è composta da una o più dichiarazioni, come nel seguente esempio: int x = 3, num = 100; string A = "alfa", B =

Dettagli

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...

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

Dettagli

Introduzione a Java e all'ambiente di sviluppo

Introduzione a Java e all'ambiente di sviluppo Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota: per esclusivo uso interno al corso, riferimenti bibliografici forniti a lezione Schema minimo di un applicazione public

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Struttura di un programma Java

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Struttura di un programma Java Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA 1 Struttura di un programma Java Un programma Java consiste in un insieme di definizioni di classi. In genere

Dettagli

Nel seguito, istruzione1 e istruzione2 possono essere un blocco di codice { }, cioè più istruzioni

Nel seguito, istruzione1 e istruzione2 possono essere un blocco di codice { }, cioè più istruzioni INTRODUZIONE A C++ Nel seguito, istruzione1 e istruzione2 possono essere un blocco di codice, cioè più istruzioni Istruzione - Esempi Significato int a; float f; double d; char c; int x=0; variabile =

Dettagli

Strutture dati. Le liste

Strutture dati. Le liste Strutture dati Le liste Introduzione Una lista è una successione finita di valori di un tipo (insieme di valori e ordine). Come tipo di dato è qualificata dalle operazioni che ci si possono svolgere: inserimento

Dettagli

IL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Primo esempio di un programma Java

IL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Primo esempio di un programma Java Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Primo esempio di un programma Java Semplicissimo programma

Dettagli

Strutture di Controllo Condizionali e Operatori Logici e Relazionali

Strutture di Controllo Condizionali e Operatori Logici e Relazionali Linguaggio C Strutture di Controllo Condizionali e Operatori Logici e Relazionali 1 Strutture di Controllo n Controllano il flusso di esecuzione di un programma Istruzioni di selezione: permettono di selezionare

Dettagli

Sommario. Introduzione... xv. Giorno 1 Elementi base del linguaggio C

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

Dettagli

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

Dettagli

Analisi Semantica. Fase che computa informazione aggiuntiva (necessaria per la compilazione), nota la struttura sintattica del programma

Analisi Semantica. Fase che computa informazione aggiuntiva (necessaria per la compilazione), nota la struttura sintattica del programma Analisi Semantica Fase che computa informazione aggiuntiva (necessaria per la compilazione), nota la struttura sintattica del programma Computazione di informazione che non può essere computata con metodi

Dettagli

Fondamenti di Programmazione

Fondamenti 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

Dettagli

Semantiche dei linguaggi di programmazione

Semantiche dei linguaggi di programmazione Semantiche dei linguaggi di programmazione By Giulia Costantini (819048) e Giuseppe Maggiore (819050) Contents La semantica del linguaggio... 1 Tipi di semantica... 1 Esempio di semantica operazionale...

Dettagli

METODI in Java. Prof.Angela Bonifati. Metodi e Sottoprogrammi

METODI in Java. Prof.Angela Bonifati. Metodi e Sottoprogrammi Fondamenti di Informatica METODI in Java Prof.Angela Bonifati 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile definire nuovi tipi di dati, tramite i metodi è possibile

Dettagli

Architetture dei Calcolatori

Architetture dei Calcolatori Architetture dei Calcolatori Lezione 11 -- 10/12/2011 Procedure Emiliano Casalicchio emiliano.casalicchio@uniroma2.it Fattoriale: risparmiamo sull uso dei registri q Rispetto alla soluzione precedente

Dettagli

Laboratorio di Programmazione

Laboratorio di Programmazione Laboratorio di Programmazione (Laurea triennale in matematica) Lezione 3 Analisi dettagliata di un programma /* commento */ Possono estendersi su più linee apparire in qualsiasi parte del programma. Alternativamente

Dettagli

Istruzioni di trasferimento dati

Istruzioni di trasferimento dati Istruzioni di trasferimento dati Leggere dalla memoria su registro: lw (load word) Scrivere da registro alla memoria: sw (store word) Esempio: Codice C: A[8] += h A è un array di numeri interi Codice Assembler:

Dettagli

IL TEOREMA DI BOEHM-JACOPINI

IL TEOREMA DI BOEHM-JACOPINI IL TEOREMA DI BOEHM-JACOPINI Un qualunque algoritmo può essere descritto unicamente attraverso le tre strutture: Sequenza Diramazione Ciclo o iterazione Le tre strutture sono complete. Un qualunque linguaggio

Dettagli

Algoritmi e Programmazione Avanzata. Pile e code. Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino

Algoritmi e Programmazione Avanzata. Pile e code. Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino Sommario ADT Pile Code. A.A. 2001/2002 APA - 2 1 Sommario ADT Pile Code. A.A. 2001/2002 APA - 3 ADT Le regole che

Dettagli

TIPI DI DATO TIPI DEFINITI DALL UTENTE

TIPI DI DATO TIPI DEFINITI DALL UTENTE Ogni elaboratore è intrinsecamente capace di trattare domini di dati di tipi primitivi numeri naturali, interi, reali caratteri e stringhe di caratteri e quasi sempre anche collezioni di oggetti, mediante

Dettagli

Esercizi Strutture dati di tipo astratto

Esercizi Strutture dati di tipo astratto Salvatore Cuomo Esercizi Strutture dati di tipo astratto Lezione n. 20 Parole chiave: Strutture dati, pile code, liste Corso di Laurea: Informatica Insegnamento: Programmazione II, modulo di Laboratorio

Dettagli

JavaScript JavaScript Programmazione lato client JScript JavaScript ECMAScript

JavaScript JavaScript Programmazione lato client JScript JavaScript ECMAScript Programmazione lato client Netscape: Microsoft: JScript ECMAScript (ECMA-262) (European Computer Manufactures Association) Linguaggio di script interpretato con alcune caratteristiche Object Oriented HTTP

Dettagli

Strutture di controllo e cicli

Strutture di controllo e cicli AA 2012-2013 IF logico L IF logico rappresenta il tipo piú semplice di istruzione condizionale IF logico L IF logico rappresenta il tipo piú semplice di istruzione condizionale Sintassi IF ( e s p r e

Dettagli