新仕様R6RSの準拠を目指したSchemeインタプリタMosh 0.0.1リリース 18
ストーリー by nabeshin
「高速な」もポイント 部門より
「高速な」もポイント 部門より
あるAnonymous Coward曰く、
5月14日15:00追記:Mona OSのひげぽん氏がサイボウズ・ラボのブログでSchemeの新仕様R6RSの準拠を目指したSchemeインタプリタMosh(Monar)のリリースを発表しています。R6RSは以前Schemeの新仕様「R6RS」成立で取り上げられていましたが、ついに国内からもR6RSのインタプリタが出てきました。
Schemeといえば最近プログラミングGaucheが出版されるなどコミュニティが活発になってきているので、Schemeブームの訪れも近いのかもしれません。
ひげぽんさんより。「誤解をうけかねない名称ということで名称を変更いたしました」とのことで、タイトル部を「Monar」→「Mosh」と変更しました(本文も修正)。また、プロジェクトも新しい場所になり、さきほど0.0.2がリリースされています。
schemeだけに (スコア:2, おもしろおかしい)
差分実装 (スコア:2, 興味深い)
えっ、ちょっ、おまっ……。
え~と、Gaucheというのは、
ということなので……え~と……。
なるほど、やけにファイル数が少ないと思ったら、差分の実装なんですね。
車輪の再発明を最低限に抑える点で、見習いたいです。すばらしいです。
# けど、なんか面倒になってきたので、ビルドして試してみるのは先送りです。
Nyaboo
Re: (スコア:0)
Gaucheのランタイムをリンクしてる様子も無いし、ビルド時に必要なだけだと思うよ。
Re: (スコア:0)
もちろん、その言語の処理系が無いとビルド出来ないよね
後、何と言ったら良いのか分かんないんだけど
./configureって打つしか出来ないのに「ビルド」って言うのはカッコ悪いと思うよ
# 要するに「適当な事抜かすなボケ」
Re:差分実装 (スコア:1, おもしろおかしい)
では、ビルド以外の、代替案をお願いします。
load runner並みの名作を。
Re:差分実装 (スコア:1)
moshはmeta-circular (参考 http://en.wikipedia.org/wiki/Metacircular_Interpreter ) をやってる訳じゃないと思います。
単に解析+VMインストラクションへの変換の部分のプログラム生成をGaucheにやらせてるだけかと。
# コメントの深読みしすぎだったらごめんなさい。
Best regards, でぃーすけ
Re: (スコア:0)
そうだな、脳内でコンパイル/リンクしてヘックスダンプ直打ち位しないと「ビルド」したとは言えないな。
Re: (スコア:0)
ぺたっと貼っておきますMoshに関する誤解 [hatena.ne.jp]
schemeでかかれたコンパイラがcppへ変換されて行くところとかちょいと面白いです(でもそのためにgccのオプティマイザが根を上げたりしてたらしい)
#それにしてもひげぽんさんの熱意やら勉強熱心なところは見習わないとな~。
差分実装ではなくフルスクラッチ (スコア:1)
(というか、文言は変えてありますが、この「誤解」は明らかに私のコメントですよね)
よく調べもせずに適当なこと書いてすみませんでした。>ひげぽんさん
それにしても、schemeを使ってcppを生成するのは面白いですね。
この手のコンパイラの実装というと、yacc/lexとかbisonしか思い浮かばない私には、
目からうろこが落ちる思いです。
思い返せば、BASICで実装されたBASICコンパイラで、最初にやるのはそのBASICコンパイラ
自身をコンパイルすることだったり、gccをビルドするのにccを使って、できたgccでさらに
gcc自体を再ビルドしたりとか、いろんな処理系があったのを思い出しました。
> #それにしてもひげぽんさんの熱意やら勉強熱心なところは見習わないとな~。
同意です。
というか、「ひげぽんさんが差分実装などというぬるいことをするわけがないだろ」という
心の奥からの警鐘を無視して元コメントを書いてしまい、申し訳ない限りです。
Nyaboo
ぼちぼち LISP 族の時代か? (スコア:1)
LISP って、古参の割にはリソース喰らいなのです。
Scheme 処理系のデファクトスタンダード (スコア:1)
Common Lisp なら,商用の Allegro Common Lisp か CMUCL (or SBCL) あたり?
Scheme はまさか Guile か?
# Gauche かなあ….Gauche には何故か独自仕様が多そうという偏見を持っている.
MonerからMoshに変更されてるようですよ (スコア:0)
認識 (スコア:0)
Re:認識 (スコア:3, すばらしい洞察)
と良く言われていますが、
LISP → 言語のジャンル
CommonLisp→言語
Scheme→言語
だと思った方が良いのでは?と考えたりします。あと、
Gaucheは処理系でgoshはGaucheの対話環境のコマンド名称なので、処理系の名称をmoshとするのは疑問を感じます。
Best regards, でぃーすけ
Re:認識 (スコア:2, 参考になる)
ALGOL 系(言語族)→ C(言語)→ gcc(処理系)
と同じ感じで
LISP 系(言語族)→ Scheme(言語)→ Mosh, Gauche(処理系)
くらいに思っていた方がいいでしょう。LISP 系の二大勢力のもう片方が Common Lisp(言語) ね。
Re: (スコア:0)
なぜか (スコア:0)
Re: (スコア:0)