Conclusão
Definiu-se uma linguagem de programação, a
ALisP, com sintaxe e a semântica largamente inspiradas/copiadas doLisp, e implementou-se um interpretador:
- A sintaxe é definida por uma gramática LL(1).
- O processo da análise sintática produz uma representação intermédia do programa.
- A
ALisPtem valores inteiros, double, string, booleanos, listas e funções anónimas.- Os valores podem ser guardados em variáveis e consultados posteriormente.
- As instruções proporcionam ciclos e condicionais.
- A interação com o utilizador é feita através da consola.
- O interpretador pode ser inicializado com um conjunto de funções base adequadas a tarefas específicas de um determinado domínio.
Além da interpretação de expressões/instruções/programas são convenientes algumas utilidades, proporcionadas pelo programa alisp.py:
- Uma forma de calcular diretamente o valor de uma expressão: alisp.py -e "(+ 40 2)".
- Uma forma de correr um programa definido num ficheiro: alisp.py -l guess-the-number.lisp.
- Uma forma de usar interativamente a linguagem: alisp.py --repl.
- Estas formas pode ser combinadas, de forma a que, por exemplo, uma biblioteca de funções possa ser carregada para calcular uma expressão e/ou usada numa sessão interativa:
alisp.py -l functions.list -e "(set answer (dobro 21))" --repl