Интернет магазин китайских планшетных компьютеров



Компьютеры - S-выражение

23 января 2011


Оглавление:
1. S-выражение
2. Стандартизация



Термин S-выражение или sexp относится к соглашению о способе записи полуструктурированных данных  в доступной для человеческого понимания текстовой форме. Символические выражения создаются, в основном, из символов и списков. S-выражения наиболее известны благодаря их использованию в языках программирования семейства Лисп. Также S-выражения применяют в языках-наследниках Лиспа, таких как DSSSL, и в разметке коммуникационных протоколов вроде IMAP и CBCL Джона Маккарти. Детали синтаксиса и поддерживаемых типов данных отличаются в различных языках, но общая особенность — использование S-выражений как префиксной нотации с использованием скобок .

S-выражения используются в Лиспе как для кода, так и для данных. S-выражения были первоначально предназначены только для представления данных, которыми должны были манипулировать M-выражения, но первая реализация Лиспа была интерпретатором S-выражений, в которые планировалось переводить М-выражения, и программисты Lisp вскоре привыкли к использованию S-выражений как для данных, так и для кода.

S-выражения могут быть как отдельными объектами, такими как числа, Символ , включая специальные символы nil и t, или точечными парами , в виде . Более длинные списки, состоящие из вложенных точечных пар, например ), можно написать более привычным способом, как . Вложенные списки также могут быть записаны в виде S-выражений: ). S-выражения не зависят от пробелов и разрывов строк, пробелы используются только в качестве разграничителей между атомами.

Пример: простая грамматика в виде S-выражения:

  )
  )
   )
  died)
  employed)
  nurses)
  patients)
  Medicenter)
  Dr Chan))

Программный код также может быть записан в виде S-выражения. Небольшой кусочек синтаксического сахара для написания программ на Лиспе заключается в том, что часто используемое выражение может заменить сокращением 'x

Пример на Common Lisp:


   
       1
       ))))

Пример на Scheme:


    
        1
        ))))

S-выражения в Лиспе читаются с помощью функции READ. Эта функция читает текстовое представление S-выражения и возвращает Lisp-данные. Функция PRINT может быть использована для вывода S-выражения. То, что возвращает PRINT, можно прочитать с помощью функции READ при условии, что все выводимые объекты данных имеют представление для ввода/вывода. Lisp имеет такое представление для чисел, строк, символов, списков и ещё многих типов данных. Программный код может быть представлен в виде аккуратно форматированного S-выражения с помощью функции PPRINT.

Lisp программы — это корректные S-выражения, но не все S-выражения являются правильными программами на Lisp. — это корректное S-выражение, но не корректная Lisp-программа, Lisp использует префиксную нотацию, поэтому число с плавающей точкой не может быть распознано как операция.



Просмотров: 2955


<<< Magic cookie