MiniLisp → MiniPL〈MPL〉

Lisp由来であることを強調する必要はない。MiniLisp - (新) 檜山正幸のキマイラ飼育記 メモ編 で書いた以外の構成素:

  • var宣言、または初期化構文
  • let式
  • if文、case文、while文
  • ブロックスコープ構造
  • 論理言語のインタープリター実装

$`\newcommand{\MPL}{\mathrm{MPL}}`$
$`\quad
(p ,.. A \mid \rho) \overset{\MPL}{\mapsto} r
`$

ここで:

  1. $`p`$ : プログラムコード in MPL
  2. $`A`$ : データのリスト in MPLのデータ構文
  3. $`\rho`$ : 環境=ライブラリコード in MPL

プログラミング言語XPLのMPLによるエミュレーションは次のように書ける。

$`\quad (p ,.. A \mid \rho) \overset{\mathrm{XPL}}{\mapsto} r \\
\iff\\
\quad (x, \ulcorner p\urcorner ,.. A \mid \ulcorner\rho\urcorner) \overset{\MPL}{\mapsto} r
`$