• Non ci sono risultati.

Laurea Magistrale in INFORMATICA Principi di Linguaggi di Programmazione Compilatori

N/A
N/A
Protected

Academic year: 2021

Condividi "Laurea Magistrale in INFORMATICA Principi di Linguaggi di Programmazione Compilatori"

Copied!
1
0
0

Testo completo

(1)

Laurea Magistrale in INFORMATICA Principi di Linguaggi di Programmazione

Compilatori

prof. M. Bellia Appello VI - 5 settembre 2013

(tempo a disposizione: 2 ore – Totalizzare almeno la metà dei punti in ciascun esercizio)

Esercizio 1. (punti 3 – 6) Si consideri la seguente espressione regolare: E≡ (a|b)* a (a|b)* b.

(a) Si dia il dotted automata di E (mostrando il calcolo e gli items di ogni stato);

(b) Utilizzando l'algoritmo di minimizzazione si mostri come si prova se tale automa è minimo.

Esercizio 2. (punti 7 - 13) Sia L = {an1 bn1 cm1 … ank bnk cmk| n1,m1,…,nk,mk≥0, k≥0} un linguaggio, e Ls il suo sottolinguaggio così definito Ls = {an1bn1c1 ... ankbnkck | n1,…,nk>0, k>0}

(a) Si dia una grammatica e una tabella di analisi LALR per L (b) Si dia un analizzatore lineare per Ls

(c) Si mostri il comportamento dell’analizzatore in b, durante l’analisi di: cc.

Esercizio 3. (punti 5 - 11) Si aggiunga al linguaggio Semplice, un costrutto iterativo della seguente forma:

iter E in C1... Cn ni

dove E è un espressione intera e Ci, per 1≤i≤n, sono comandi che formano una sequenza non vuota. La semantica prevede che E sia valutato ad ogni iterazione e il valore risultante k sia utilizzato per selezionare il comando Ck se 1≤k≤n. In tale caso, prima è eseguito Ck, dopo si procede con una nuova iterazione del costrutto. L'iterazione termina quindi, quando e se k ∉[1..n].

a. Si forniscano opportune produzioni per estendere la grammatica di Semplice, in

particolare il non terminale C dei comandi. Le produzioni devono estendere in modo non ambiguo e adatto ad un obliovious bottom-up.

b. Si mostri che la grammatica riconosce il seguente comando:

iter x in iter x in y:=y*y ni; x:=1; x:=1; x:=1; ni

c. Si estendano tali produzioni in uno schema di traduzione, ascendente, oblivious per la generazione di codice 3AC di costrutti iter_in_ni.

Riferimenti

Documenti correlati

– Environment provides information to the Learning element, that uses it to improve the base of explicit knowledge. – Knowledge base expresses explicit knowledge in

Machine Learning (ML) and Data Mining (DM) – Machine Learning (ML) and Data Mining (DM) – Concepts and Techniques for automatic knowledge Concepts and Techniques for

● Can learn any Petri net without duplicate tasks and without more than one place with the same input and output tasks. ● New models formalism, called

Siccome le regole specificano il significato delle espressioni in modo operazionale, si dice che esse definiscono una semantica operazionale di tali espressioni. Alcune regole

Induzione matematica e strutturale sono casi particolari di un potente metodo di prova chiamato induzione ben fondata In questa lezione vedremo in dettaglio:. ¾ Induzione

Supponiamo di voler estendere le espressioni aritmetiche di IMP includendo un nuovo operatore “^” con il significato di elevamento a potenza. La sintassi di Aexp di IMP verrà

Negli anni sessanta, Christopher Strachey e Dana Scott riuscirono a superare le limitazioni della semantica operazionale introducendo una semantica più astratta basata sull’utilizzo

La sintassi specifica sia la struttura lessicale del linguaggio (come costruire le parole a partire dai caratteri dell’alfabeto) sia le regole per la costruzione delle