Учебники

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

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

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

Программы LISP запускаются либо на интерпретаторе, либо в виде скомпилированного кода.

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

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

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

(+ 7 9 11)

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

27

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

Live Demo

(write (+ 7 9 11))

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

27

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

Вы могли заметить, что LISP использует префиксную нотацию.

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

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

a * ( b + c ) / d

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

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

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

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

(60 * 9 / 5) + 32

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

Live Demo

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

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

140

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

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

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

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

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

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

Процесс оценки состоит из следующих шагов:

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

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

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

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

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

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

Программа «Hello World»

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

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

Live Demo

(write-line "Hello World")

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

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