nmoshは、単体でR6RSスクリプトを展開(expand)するためのライブラリを備えている。ここでいうexpandとはマクロの処理のことで、これを使うことでnmoshのsyntax-caseとかsyntax-rulesの実装を簡単に流用できる。 世間的には、Schemeサブセットのコンパイラは比較的簡単に作ることが出来るとされている。 http://www.iro.umontreal.ca/~boucherd/mslug/meetings/20041020/minutes-en.html (再掲) ↑で説明しているのはCPS変換とクロージャ変換だが、Schemeを作るのに必要な残りの部分はMoshのものをそのまま流用することができる(はず - 例外のハンドリングのために、かなりトリッキーな手法が必要になる)ので、これらを流用すれば、フルに機能するR6RS Schemeも簡単に実装できるよ
[追記]勢いよく書いたら、疵<きず>だらけでした。修正の取消線があっちこっち。コード断片に取消線は付いてません(追加なので)が、shiroさんのご指摘で直しました。[/追記] 次のような入れ子になった例外処理を考えます。 try { try { コード(1) } catch(例外種別(1)) { 例外ハンドル(1) } 引き続くコード(2) } catch(例外種別(2)) { 例外ハンドル(2) } さらに引き続くコード(3) これを、次のように書き換えても振る舞いは変わらないですよね。不格好なフラグがあったり、例外ハンドル(2) がコピー&ペーストになりますが、それは別にいいとします。 boolean handled = false; // 例外ハンドル(2) 以外では触らない try { コード(1) } catch(例外種別(1)) { try { 例外ハンドル(1) } catc
2009年09月14日 DWARF と有限状態機械 DWARF はソースレベルデバッギングのための情報をオブジェクトファイル中に保持する際のデータフォーマットです。 ソースレベルデバッガが最低限必要とする情報として、ソースコード中のプログラム行の位置と、対応するマシン命令アドレスの表があります。特にコンパイラによる高度な最適化が入ってくると、1つの行から不連続なアドレスにマシン命令が生成されるようになってくるので、デバッグ情報が無ければ、どこのアドレスにブレークポイントを張れば良いのか、ステップ実行の時にどこで止めれば良いのか、などが全くわからなくなってしまいます。 この対応表は非常に巨大なものに成り得るので、DWARFは対応表をそのまま持つのではなく、行番号プログラム(line number program)によって対応表を生成するという仕様になっています。これは、JVMの仮想機械語のよ
gauche.gongの発表で使ったプレゼン資料等を公開します。 プレゼン資料(PDF) 全ソースコード(tar.gz) ※livedoor Blogの追記欄容量をオーバーするので、この記事は3エントリに分けました。 gauche.gong発表資料1(スライド解説+デモコード) ←いまここ gauche.gong発表資料2(asm/disasm) gauche.gong発表資料3(マクロアセンブラ) ※会場に向かうタクシーでKeynoteを開いて、楽屋で完成させたもの。 リンクなど追加。 自己紹介 naoya_t@生駒山 文系プログラマ 普段は Gauche, AWK, Brainf*ck, ... R5RS > PIC > R6RS 最後のは愛情の大きさ順。 第一部座談会「R6RSを斬る」をスルーしてPICデモコードを書いていた自分を揶揄 事の発端 12月に、PICkit2 Starte
What is ATS? ATS is a statically typed programming language that unifies implementation with formal specification. It is equipped with a highly expressive type system rooted in the framework Applied Type System, which gives the language its name. In particular, both dependent types and linear types are available in ATS. The current implementation of ATS2 (ATS/Postiats) is written in ATS1 (ATS/Anai
Benjamin C. Pierce's presentation slides (in PDF) for his talk on Types Considered Harmful. The talk starts out discussing some of the general advantages and disadvantages of static typing. But the aim of the talk centers on the problems of building a type checker for the Boomerang Programming Languague (an offshoot of harmony). Boomerang language design as an example of the need for very precise
Inform is a design system for interactive fiction, a new medium for writers which began with adventure games in the late 1970s and is now used for everything from literary narrative fiction through to plotless conceptual art, and plenty more adventure games too. Since its introduction in 1993, Inform has become a standard tool. Three years in the making, Inform 7 is a radical reinvention of the wa
[Data of Report] Report Number:TR0003 Date of Registration:1983.02 English Title:A Subeset of Concurrent Prolog and Its Interpreter Japanese Title:*** English Auther:Ehud Y.Shapiro Japanese:*** Name of Organization to which auther belogs:Weizmann Institute [index] 0 Table of Contens 0003_003.gif 0.1 Abstract 0003_006.gif 1 Introduction 0003_006.gif 2 Logic Programs and Sequential Prolog 000
_, ._ ( ・ω・) んも〜 ○={=}〇, |:::::::::\, ', ´ 、、、、し 、、、(((.@)wvwwWWwvwwWwwvwwwwWWWwwWw wWWWWWWwwwwWwwvwWWwWwwvwWWW 作ってみたwwwww とりあえず公開wwwwwwwっうぇ 日本語版はてきとーです.きっと英語版のほうが詳しいです. 実装 インタプリタ Interpreter written in Standard ML (accept US-ASCII only) by UENO Katsuhiro Interpreter written in Ruby by UENO Katsuhiro Interpreter written in ニコスクリプト Interpreter written in Prolog by zick Interpreter written in Java b
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く