LISP - Структура программы

Выражения LISP называются символьными выражениями или s-выражениями. S-выражения состоят из трех допустимых объектов: атомов, списков и строк.

Любое s-выражение - допустимая программа.

LISP-программы работают либо на interpreter или как compiled code.

Интерпретатор проверяет исходный код в повторяющемся цикле, который также называется циклом чтения-оценки-печати (REPL). Он читает программный код, оценивает его и распечатывает значения, возвращаемые программой.

Простая программа

Давайте напишем s-выражение, чтобы найти сумму трех чисел 7, 9 и 11. Для этого мы можем ввести в командной строке интерпретатора.

(+ 7 9 11)

LISP возвращает результат -

27

Если вы хотите запустить ту же программу в качестве скомпилированного кода, создайте файл исходного кода LISP с именем myprog.lisp и введите в него следующий код.

(write (+ 7 9 11))

Когда вы нажимаете кнопку «Выполнить» или нажимаете Ctrl + E, LISP выполняет его немедленно, и возвращается результат -

27

LISP использует префиксную нотацию

Вы могли заметить, что LISP использует prefix notation.

В приведенной выше программе символ + работает как имя функции для процесса суммирования чисел.

В префиксной записи операторы записываются перед своими операндами. Например, выражение,

a * ( b + c ) / d

будет записано как -

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

Давайте возьмем другой пример, давайте напишем код для преобразования температуры по Фаренгейту 60 o F в шкалу Цельсия -

Математическое выражение для этого преобразования будет -

(60 * 9 / 5) + 32

Создайте файл исходного кода с именем main.lisp и введите в него следующий код.

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

Когда вы нажимаете кнопку «Выполнить» или нажимаете Ctrl + E, LISP выполняет его немедленно, и возвращается результат:

140

Оценка программ LISP

Оценка программ LISP состоит из двух частей:

  • Перевод текста программы в объекты Lisp программой-читателем

  • Реализация семантики языка в терминах этих объектов программой-оценщиком

Процесс оценки включает следующие шаги -

  • Читатель переводит строки символов в объекты LISP или s-expressions.

  • Оценщик определяет синтаксис Лиспа formsкоторые построены из s-выражений. Этот второй уровень оценки определяет синтаксис, который определяет, какиеs-expressions являются формами LISP.

  • Оценщик работает как функция, которая принимает допустимую форму LISP в качестве аргумента и возвращает значение. Это причина, по которой мы помещаем выражение LISP в скобки, потому что мы отправляем все выражение / форму оценщику в качестве аргументов.

Программа "Hello World"

Изучение нового языка программирования не принесет успеха, пока вы не научитесь приветствовать весь мир на этом языке, верно!

Итак, создайте новый файл исходного кода с именем main.lisp и введите в него следующий код.

(write-line "Hello World")

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

Когда вы нажимаете кнопку «Выполнить» или нажимаете Ctrl + E, LISP выполняет его немедленно, и возвращается результат -

Hello World

I am at 'Tutorials Point'! Learning LISP