Viivi kernel の基本仕様
- 他の処理系の実装内部を全く参照していない完全に独自の設計・実装によるものです.
- Pure Javaで書かれているため,メモリさえ充分であれば,
JVMを備えたあらゆる種類のプラットフォーム上で同じように使用することが原理的に可能です.
補助的なSchemeプログラムなどは不要です.
- 複数個・多重回の継続の生成・再開を含め,R5RSで規定された機能を完全にサポートします.
- R5RS で規定されたすべての数値データの型 (無限桁の整数,分数,浮動小数点数 [64-bit 精度],
複素数) を使用可能です.
- 数値計算は可能な限り厳密さを保持するように行われます.
(たとえば,実部と虚部の両方がすべて分数であるような複素数が与えられた場合
加減乗除算は分数のまま行われ,
また,すべて極形式で与えられた複素数の乗除算は
[デカルト形式に展開されることなく] 極形式のまま行われます.)
[2022/03/02 更新]
この仕様は
「複素数の実部/虚部/絶対値/偏角は浮動小数点数で表現する」
という R5RS の慣習的な解釈 に合致しないおそれがありますので
近い将来変更する可能性があります.
-
scheme-report-environment
および
null-environment
は引数として
5
だけしか受け付けません.
つまり現時点では R5RS だけをサポートしており,
R4RS 以前の古い規格や R6RS 以降の新しい規格はサポートしていません.
- 手続き呼び出しに対する複数個の (評価されるべき) 引数は常に左から右への順に評価します.
- シンボル内のアルファベットの大文字・小文字を区別します.
- ペアやベクトルを表すのに丸括弧
(...)
,
#(...)
に加えて
角括弧
[...]
,
#[...]
も使えます.
インタプリタが読み込んだ後は丸括弧に統一されます.
- ペアやベクトルの表示形式は SRFI-38 に従います.
- 実装はJVMの内部構造に依存せず基本的なJava APIと例外処理しか使っていませんから
他のオブジェクト指向プラットフォームへの移植も容易であると考えられます.
ご連絡方法
2010/10/24 開設
2022/03/02 更新
Copyright(C) 2003-2022 ilma <ilma@viivi.io> All rights reserved.