LITTLE

Posted on 25 July 2010 by Paolo Bernardi

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

Get in touch

Thank you for contacting me, I will be in touch with you as soon as possible.
There was an error while trying to send the comment, please try again later.