Also known as S expression, sexp, sexpr, S-expression notation
thumb|Tree (data structure)|Tree data structure representing the S-expression (* 2 (+ 3 4))
Wikidata facts
- Instance of
- syntax
- Developer
- Ron Rivest
Show 5 more facts
- Stack Exchange tag
- stackoverflow.com/tags/s-expression
- described at URL
- people.csail.mit.edu/rivest/Sexp.txt
- discoverer or inventor
- John McCarthy
- manifestation of
- semi-structured data
- uses
- round brackets
Sources (2)
via Wikidata · CC0
Article · 日本語
コンピュータプログラミングにおいて、S式(S-expression)はネストしたリスト(木構造)のデータである。 S式は、プログラミング言語Lispのために考案され、普及した。Lispでは、データだけでなく、ソースコードにもS式を使用する。 Lispの括弧書き文法では、古典的なS式では次のように定義される。 1. * アトム 2. * xとyがS式である(x . y)という形式の式 この定義は、Lispがリストを一連の「セル」として表現していることを反映したもので、それぞれが順序付けられたペアになっている。一般的なリストでは、yは次のセル(もしあれば)を指し、リストを形成する。定義の再帰は、この表現とS式記法の両方が、任意の二分木を表現できることを意味する。 最近のほとんどのsexpr記法では、より一般的な引用文字列(例えば、句読点や完全なUnicodeを含む)を許容しており、おおまかには次のように定義される。 1. * アトムや、データオブジェクトのリテラルはS式である 2. * 空リストを表すnil(Common Lisp)またはもS式である(Schemeでは空リストはnilで表さない) 3. * xとyがS式のとき(x . y)のように、ドットで区切られたペアもS式である 4. * それぞれがs式であるx, y, zの連結リストの形をした(x . (y . (z .)))を(x y z)のように、また(x .)を(x)のように、省略した記法もS式である 5. * その他の糖衣構文。たとえば(quote foo)を'fooなど アトムの定義は文脈によって異なるが、ジョン・マッカーシーによるオリジナルの定義では、「区別可能なアトミックなシンボルの無限の集合」が存在すると仮定されており、「1つの空白が埋め込まれた大文字のラテン文字と数字の文字列」として表されていた(文字列と数値リテラルの部分集合)。 Lisp系のプログラミング言語では、ソースコードとデータの両方を表現するためにS式が使われている。S式は他にもDSSSLなどのLisp由来の言語や、IMAPやジョン・マッカーシーのCBCLなどの通信プロトコルのマークアップとしても使われている。また、WebAssemblyのテキスト表現としても使われている。構文の詳細やサポートしているデータ型は言語によって異なるが、これらの言語に共通する特徴は、S式と前置記法を使っていることである。
Abstract from DBpedia / Wikipedia · CC BY-SA