LITTLE

LITTLE è un piccolissimo linguaggio di programmazione imperativo interpretato che ho sviluppato per un esame universitario. Un esempio di programma LITTLE è il seguente:

program gcd
# Calcola l'MCD di due interi
begin
  input a
  input b
  while a <> b begin
    if a > b begin
      a = a - b
    end else begin
      b = b - a
    end
  end
  gcd = a
  output gcd
end

Il linguaggio è fin troppo semplice in quanto prevede soltanto un tipo di dati (numeri interi) e non consente la scomposizione funzionale. A livello di implementazione non ho usato l’Abstract Syntax Tree, cosa che già durante la realizzazione del ciclo While ha mostrato i suoi pesanti limiti.

L’unica particolarità degna di nota è che LITTLE è il mio primo (ed unico!) lavoro di Literate Programming: sia il codice C++ che la documentazione LaTeX si trovano nel medesimo file little.w. Un particolare programma, nuweb, si occupa di creare rispettivamente un file LaTeX con la documentazione dei sorgenti ed un file C++ con i sorgenti del programma stesso.

Il programma nuweb è incluso all’interno del pacchetto, quindi per creare la documentazione e l’eseguibile di LITTLE è sufficiente un make.

NOTA: durante lo sviluppo di LITTLE ho seguito, molto vagamente, questo fantastico tutorial di Jack Crenshaw; sebbene sia datato è una lettura estremamente piacevole, consigliata a tutti gli anglofoni cui interessano i compilatori!

Download

2 thoughts on “LITTLE

  1. Paolo Bernardi Reply

    Macché Mauro, quasi mi vergogno d’averlo scritto!!! L’unica cosa carina è stato provare il Literate Programming! 😛

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.