Skip to content
Yamasaki Tatsuya edited this page Aug 4, 2019 · 39 revisions

Overview

Meevax は Lisp-1 に分類されるプログラミング言語です。

言語機能の大半が R5RS Scheme を参考に設計されており、基本的な使い勝手はそれに準じています。 しかし、開発者の美的感覚に基づいて導入された少なくない数の非互換要素が存在しており、本文書はその解説を目的としています。

そのため、この文書にない言語意味論などの基本的な事項は Rivised^5 Report on the Algorithmic Language Scheme を参照してください。 R5RS と本文書で矛盾する記述は本文書のものが優先されます。 本文書に記述が無いにもかかわらず、R5RS の記述と異なる挙動が確認された場合、それは本文書のエラーです。

Language Core

大雑把に言って、言語コアは以下の必要最小限度の機能のみを持ちます。

  1. オブジェクト外部表現の内部表現化
  2. オブジェクト内部表現の外部表現化
  3. SECD 仮想マシンおよび、そのコンパイラ
  4. 残りのすべての言語機能を構築するために必要なプロシージャおよびスペシャルフォーム
  5. ダイナミックリンカ

Primitive Procedure and Special-Forms

純粋な言語コアが提供するプロシージャおよびスペシャルフォームを以下に列挙します。 この内容は言語仕様がある程度固まるまで、頻繁に増えたり減ったりします。

バインディング 効果
begin 逐次実行
call-with-current-continuation 与えられたプロシージャを現在の継続を引数として起動する
define 変数定義
environment 環境コンストラクタ
if 条件分岐
lambda クロージャコンストラクタ
quote オブジェクト外部表現のリテラル化
set! 代入

Standard Libraries

Pair

すべてのリストはペア型から構築されます。

String

Array

File System

Clone this wiki locally