Lisp Advent Calendar 2019 の4日目の記事です。 おくれてすみません。(不足を感じているのでたぶんあとでこの記事は加筆されます。) さて、今年Scheme界隈での大きな出来事の一つはChezがRacketのコアに導入されたことです。なのでChez関連のなにかの記事を書こうと思いまして、Chezのcall/ccの実装論文のstack.pdfの紹介をします。継続実装としては、スタックのコピーやCPS変換といった方針がありますが、Chezはスタックコピーする方を採用しています。通常継続のコピーはスタックの長さに依存した時間が必要だったのが、Chezの実装だとコピーを行わないため、定数時間で継続の作成ができます。スタックコピー型の継続実装通常のプログラム言語の場合、関数を呼び出した時スタックにリターンアドレスやローカル変数が含まれたフレームがプッシュされ、リターン時にポップ
R5RSのformal semanticsをOCamlで書いた 背景 bitのバックナンバーを読んでいたら見つけた 「プログラム検証入門」という記事(1980年9月〜12月号掲載)が非常に面白かった。 その記事に参考文献として載っていた 「数理情報学入門―スコット・プログラム理論」という本を買ってみたら、 これまたすごく面白かった。 この本で使っている記号が、R5RSのformal semanticsで使っている記号と 大体同じであることを思い出し、R5RSのformal semanticsを読み直してみたら、 以前よりしっかり理解できて、これまた非常に楽しかった。 楽しかったのだが、 call-with-valuesの定義 がおかしいことに気づいた。 cwv: E* -> K -> C [call-with-values] cwv = twoarg(λε1ε2κ.applicate ε1
A practical introduction to the programming language Scheme
勾配の緩やかな初心者向け Scheme 入門ページです。 コンピュータは使ったことがあるが、プログラミング経験があまりない人を想定しています。 Scheme の解説はすでに山ほど優れたものがありますが、あえて解説記事を書いてみました。 Scheme のような抽象的な話題は波長が合えばすんなりと理解できますが、あわないと全く理解できません。 他の解説を読んで今ひとつよく理解できなかった人は試しに読んでみてください。 この記事の目標はコンピュータ科学の教科書の決定版である SICP を読める程度の Scheme の知識を提供することです。 目次: 処理系のインストール Scheme を電卓代わりに使う リストを作ろう 関数を定義しよう 分岐 局所変数 繰り返し 高階関数 入出力 代入 文字、文字列 シンボル型 連想リスト、ハッシュ表 ベクトルと構造体 構文の定義 (マクロ) 継続 遅延評価 非
by Sebastian Egner Status This SRFI is currently in final status. Here is an explanation of each status that a SRFI can hold. To provide input on this SRFI, please send email to srfi-78@nospamsrfi.schemers.org. To subscribe to the list, follow these instructions. You can access previous messages via the mailing list archive. Received: 2005-10-25 Draft: 2005-11-11--2006-01-10 Draft extended: 2006-0
Schism is an experimental compiler from Scheme to WebAssembly. It enables developers to run programs written in Scheme in the browser or server environments such as NodeJS. The compiler supports a subset of the R6RS version Scheme, and is self-hosting, meaning Schism is implemented in Schism itself. This is not an officially supported Google product. Development so far has focused on features nece
About 南の島のプログラマ。 たまに役者。 Practical Schemeの主。 WiLiKi:Shiro 最近のエントリ 無限cxr高校受験Defense振り返ってみると2019年は色々学んで楽...覚えるより忘れる方が難しい(こともある)眼鏡のつると3DプリンタIris Klein Acting ClassSAG-AFTRA conservatory: Voice Acting創作活動って自分を晒け出さねばならないと...ループを使わずに1から100までMore... 最近のコメント shiro on 歳を取ると時間が速く過ぎるのは、新しいことに挑戦しないから? (2023/03/14)1357 on 歳を取ると時間が速く過ぎるのは、新しいことに挑戦しないから? (2023/03/01)ベアトリーチェ on ハイポハイポハイポのシューリンガン (2022/04/02)ベアトリーチ
近頃PicrinというモダンなR7RS処理系を開発しているのはこのブログにも書いたとおりです。PicrinはVM型のインタプリタで正確な GC、フルの継続、グローバル変数を一切使用しないリエントラントなデザインなどを特徴としており、今のところR7RSの85%ほどを実装しています。READMEにR7RS-smallに対する準拠度を示す表を掲載しているので興味があれば是非pull-requestを送ってみてください。picrinでは開発者を募集しています。 https://github.com/wasabiz/picrin さて、picrinの開発を初めてそろそろ2ヶ月になります。これまでVMや継続、GCなど割りと大きめの機能が立て続けに入ってきましたが、ようやくそのラスボスたる衛生的マクロの実装を終えました。衛生的マクロは古典的なLispのマクロに自動的な健全性の保護機構を付け足したものです
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く