Progetto 2 - Traduzione da (un sottoinsieme del) Pascal a C




Si consideri un sottoinsieme del linguaggio Pascal, denominato S-Pascal, costituito dai seguenti statement: assegnamento, statement composto, if-then-else, while-do, read e write. Si supponga inoltre che le variabili siano solo di tipo integer e che non siano previste altre dichiarazioni (di variabile, di tipo, di costante). Infine si supponga che il programma sia costituito dal solo programma principale, senza cioè la possibilità di definire procedure e funzioni. Realizzare un programma in grado di tradurre un programma S-Pascal sintatticamente corretto nel corrispondente programma in linguaggio C. Si supponga che il programma dato (programma sorgente) sia memorizzato su un file e che il programma C generato (programma oggetto) venga anch'esso memorizzato su un (nuovo) file. Suggerimento. Nel caso in cui si scelga di realizzarfe il progetto in Prolog si utilizzi il formalismo delle "Definite Clause Grammars" (DCG) per descrivere la sintassi del linguaggio S-Pascal (vedere, ad es., cap. 14 di [Console, Lamma,Mello]).