Shibuya.lisp

We love Lisp-based languages Common Lisp, Scheme, Arc and Clojure.
Gino(仮)発表概要

発表タイトル:

R5RS 完全準拠 JVM 日本語 Scheme インタプリタ 「Gino(仮)」


R5RS full-compatible JVM Japanese Scheme interpreter “Gino (temporary name)”

発表概要:

Gino(仮) は JVM (Java仮想マシン) 上で動作する R5RS に完全準拠した日本語対応の
Scheme インタプリタです.独自のオブジェクト設計に基づき,Pure Java を用いて 0
から実装しました.

主な特徴:

  • JVM 上で動作する Scheme インタプリタ:
    ハードウェアや OS に依存せず (スパコンからケータイまで) さまざまな環境に
    おいて同じインタプリタ上で Scheme コードを同じように走らせることができます.
  • R5RS に完全準拠:
    静的スコープ,末尾再帰呼び出し最適化,quasiquote/unquote,継続,マクロなど
    実装済みです.
  • JVM の内部 Unicode を使用し,現時点で英語および日本語ロケールに対応:
    日本語ロケールではシンボルや文字列に日本語が使え,メッセージもすべて日本語
    表示します.他言語にも対応可能です.
  • 無限桁整数,分数,浮動小数点数,複素数の数値データが使用可能:
  • 入出力ポートとしてファイルと同様にネットワークポートも指定可能:

概略について述べたあと,実際に小型 PC 上で Scheme コードを走らせてお見せします.


Gino (temporary name) is an R5RS full-compatible Japanese Scheme interpreter
which runs on the JVM (Java Virtual Machine). It is based on a unique Object
design and implemented with Pure Java from scratch.

main features:

  • A Scheme interpreter running on the JVM:
    You can run your Scheme codes similarly on the same interpreter in various environments (from super computers to cellular phones) independent of hardwares and operating systems.
  • Fully compatible with R5RS:
    Lexical scope, optimization for tail recursive calls, quasiquote/unquote, continuations, macros, and so on, are fully implemented.
  • Currently implemented for English and Japanese locales through the JVM internal Unicode:
    For Japanese locale, you can use Japanese characters in symbols and strings, and the messages are all shown in Japanese. Potentially implementable for other locales.
  • Arbitrary-precision integers, rational numbers, floating point numbers, and complex numbers are available for the numerical data:
  • Network ports as well as files can be specified for input/output ports:

After talking about the outline, a short demonstration will be performed,
running some Scheme codes on a small PC.