Back
OtherItalian

Raccolta vecchi temi

Study material for Formal Languages and Compilers, shared by the Studwiz community and reviewed by moderators.

Formal Languages and CompilersOther

Document information

What's included in this study material

Study material for Formal Languages and Compilers, shared by the Studwiz community and reviewed by moderators.

Import quality: text was extracted directly from the original document.

Extracted content from the document

Representative passages recognised in different parts of the material. The full extracted text remains available to search, while this compact preview makes the page easier to read.

Page 1

Linguaggi Formali e Compilatori Proff. Breveglieri, Crespi Reghizzi, Morzenti Prova scritta 1: Domanda relativa alle esercitazioni 05/02/2008 COGNOME: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . NOME: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Matricola: . . . . . . . . . . . . . Iscritto a: ◦Laurea Specialistica ◦V. O. ◦Laurea Triennale ◦Al- tro:..... Sezione: ◦Prof. Breveglieri ◦Prof. Crespi ◦Prof.Morzenti Per la risoluzione della domanda relativa alle esercitazioni si deve utilizzare l’implementazione del compilatore Acse che viene fornita insieme al compito. Si richiede di modificare la specifica dell’analizzatore lessicale da fornire a flex , quella dell’analizzatore sintattico da fornire a bison ed i file sorgenti per cui si ritengono necessarie delle modifiche in modo da estendere ilcompilatore Acse con la possibilit` a di gestire un costrutto iterativo di tipo per ogni , del quale viene qui fornito un esempio. int a[100]; int x; int y; ... for(x:a){ y = y + x; } write( y ); ... Questo tipo di costrutto for non eplicita l’indice del vettore. Alla prima itera- zione la variabile xvale a[0] , alla seconda a[1] e cos ` ı via per tutti gli elementi di a. Nell’esempio sopra, il frammento calcola e stampa la sommadi tutti gli elementi di a. Le modifiche devono mettere il compilatore Acse in condizione di analizzare la correttezza sintattica dei costrutti sopra descritti e di generare una traduzione corretta nel linguaggio assembler della macchina Mace . Per risolvere il problema si consiglia di utilizzare la funzione getNewRegister di axe engine.[h,c] , la quale restituisce il numero di un registro (del banco di registri infinito) non ancora assegnato. /* get…

Preview

First page of the document.

First page: Raccolta vecchi temi