Si considerino programmi consistenti di una dichiarazione di ambiente
globale di dati e di una lista di funzioni, tutte allo stesso livello,
di cui l'ultima è il programma principale. Il corpo delle
funzioni è una lista di assegnamenti di espressioni. Le
funzioni possono avere dati locali e i parametri possono essere
passati per riferimento o per valore. Una funzione può invocare
solo se stessa o funzioni già dichiarate. Dati globali, dati
locali e parametri sono tuttidi un unico tipo. Si vuole uno schema
discendente che calcoli come attributo la lista delle funzioni che
possono avere effetti laterali.