S式
Lispでソースコードを表現する場合、S式の最初の要素を演算子や関数名とし、残りの要素を引数として扱うのが一般的である。これを「前置記法」または「ポーランド記法」という。例えば、C言語で4 == (2 + 2)と書かれているブール式は、LispのS式の前置記法では(= 4 (+ 2 2))と表される。
前述のように、「アトム」の正確な定義はLISP系言語によって異なる。引用符で囲まれた文字列には、通常、引用符以外のものを含めることができる。一方、引用符で囲まれていない識別子アトムには、通常、引用符、空白文字、括弧、中括弧、バックスラッシュ、セミコロン以外のものを含めることができる。いずれの場合も、禁止文字を直前のバックスラッシュでエスケープすることで、含めることができる。Unicodeのサポートはさまざまである。
S式定義の再帰的なケースは、伝統的にconsセルを使って実装される。
Lispの最初の実装は、M式のS式エンコーディングのインタープリタであったが、Lispプログラマはすぐにコードとデータの両方にS式を使用することに慣れた。このことは、Lispが同図像性であることを意味している。つまり、プログラムの主要な表現は、言語自体のプリミティブな型のデータ構造でもあるのである。