• Non ci sono risultati.

Specifichedelprogetto Implementazionedi Mini-LISP inSML

N/A
N/A
Protected

Academic year: 2021

Condividi "Specifichedelprogetto Implementazionedi Mini-LISP inSML"

Copied!
1
0
0

Testo completo

(1)

Linguaggi di Programmazione (A.A. 2020-21)

Implementazione di Mini-LISP in SML

Specifiche del progetto

Implementare in SML un sottolinguaggio di LISP, chiamato Mini-LISP, che comprenda (almeno) gli operatori inclusi nella seguente sintassi astratta:

M, N ::= k | x | + | car | cdr | let | lambda | apply | quote | (M

1

, . . . , M

n

) La semantica del linguaggio dev’essere in accordo con quella di LISP; a scelta se adottare regole di scoping statico (come nel Common LISP ) o dinamico (come in Emacs LISP ). Opzionalmente si potranno anche implementare:

• un parser String -> Mini-LISP;

• un type checker che itercetti programmi sintatticamente corretti ma se- manticamente non significativi;

• un quine, ovvero un programma Mini-LISP che stampa il proprio stesso codice; vietato copiare da Internet!

Si richiede la consegna di un interprete (o compilatore) funzionante, scritto in SML (un solo file con estensione .sml cotenente il codice sorgete, corredato di commenti) ed una breve relazione (un solo file con estensione .pdf) che com- prenda una descrizione del linguaggio implementato, una discussione delle scelte implementative, ed esempi che mostrino gli aspetti significativi del linguaggio (scoping ecc.).

Buon lavoro!

1

Riferimenti

Documenti correlati

Potete anche scegliere un linguaggio non funzionale, ma con caratteristiche simili, ad esempio la pos- sibilit` a di usare funzioni di ordine superiore, come Python o Perl.. Chi

Implementare in SML un sottolinguaggio di Java che comprenda (almeno) la definizione di sottoclassi, la creazione dinamica degli oggetti (new), l’invoca- zione dei metodi e l’accesso

Ad esempio, invece che un ambiente di sviluppo, ` e possibile produrre uno specifico automa cellulare, ad esempio il gioco della vita, eventualmente corredato di una o pi`

3. la Sartrade s.r.l. in liquidazione non si costituiva in giudizio. con il primo motivo di ricorso l'Agenzia delle entrate deduce la violazione e falsa applicazione dell'art.

 Se il codice sorgente non contiene errori, l'invocazione del comando (1) produce nella directory corrente un file chiamato "a.out", che è il risultato della

• Il C è un linguaggio compilato: un programma, detto compilatore, traduce uno o più file ASCII contenenti i comandi in C in un unico file con la sequenza di.. istruzioni in

L’edificio rappresentato in piante, sezioni e prospetti, e mediante una selezione di immagini fotografiche attuali, è un'architettura storica del XIX secolo, sorta con funzione di

[r]