LISP - Estrutura do Programa

As expressões LISP são chamadas de expressões simbólicas ou expressões S. As s-expressões são compostas por três objetos válidos, átomos, listas e strings.

Qualquer expressão s é um programa válido.

Os programas LISP são executados em um interpreter ou como compiled code.

O interpretador verifica o código-fonte em um loop repetido, também chamado de loop de leitura-avaliação-impressão (REPL). Ele lê o código do programa, avalia-o e imprime os valores retornados pelo programa.

Um programa simples

Vamos escrever uma expressão s para encontrar a soma dos três números 7, 9 e 11. Para fazer isso, podemos digitar no prompt do interpretador.

(+ 7 9 11)

LISP retorna o resultado -

27

Se você gostaria de executar o mesmo programa como um código compilado, crie um arquivo de código-fonte LISP chamado myprog.lisp e digite o código a seguir nele.

(write (+ 7 9 11))

Quando você clica no botão Executar, ou digita Ctrl + E, o LISP executa imediatamente e o resultado retornado é -

27

LISP usa notação de prefixo

Você deve ter notado que o LISP usa prefix notation.

No programa acima, o símbolo + funciona como o nome da função para o processo de soma dos números.

Na notação de prefixo, os operadores são escritos antes de seus operandos. Por exemplo, a expressão,

a * ( b + c ) / d

será escrito como -

(/ (* a (+ b c) ) d)

Vamos dar outro exemplo, vamos escrever o código para converter a temperatura Fahrenheit de 60 o F para a escala centígrada -

A expressão matemática para esta conversão será -

(60 * 9 / 5) + 32

Crie um arquivo de código-fonte denominado main.lisp e digite o seguinte código nele.

(write(+ (* (/ 9 5) 60) 32))

Quando você clica no botão Executar, ou digita Ctrl + E, o LISP executa imediatamente e o resultado retornado é -

140

Avaliação de programas LISP

A avaliação dos programas LISP tem duas partes -

  • Tradução do texto do programa em objetos Lisp por um programa leitor

  • Implementação da semântica da linguagem em termos desses objetos por um programa avaliador

O processo de avaliação segue as seguintes etapas -

  • O leitor traduz as sequências de caracteres para objetos LISP ou s-expressions.

  • O avaliador define a sintaxe do Lisp formsque são construídos a partir de expressões S. Este segundo nível de avaliação define uma sintaxe que determina quals-expressions são formulários LISP.

  • O avaliador funciona como uma função que assume uma forma LISP válida como argumento e retorna um valor. Esta é a razão pela qual colocamos a expressão LISP entre parênteses, pois estamos enviando toda a expressão / formulário para o avaliador como argumentos.

O programa 'Hello World'

Aprender uma nova linguagem de programação realmente não decola até que você aprenda como cumprimentar o mundo inteiro nessa linguagem, certo!

Portanto, crie um novo arquivo de código-fonte denominado main.lisp e digite o seguinte código nele.

(write-line "Hello World")

(write-line "I am at 'Tutorials Point'! Learning LISP")

Quando você clica no botão Executar, ou digita Ctrl + E, o LISP executa imediatamente e o resultado retornado é -

Hello World

I am at 'Tutorials Point'! Learning LISP