Shibuya.lispテクニカルトーク第3回 (2009/07/04)川合 史朗さんによる「(現場のScheme)と(Gaucheの進化)」です。次: Scheme on Ruby on Rails (sm7541977)前: Inside c-wrapper (sm7543076)マイリスト: mylist/13373941
大人のためのブラックボックス読解講座――クロージャとオブジェクトの微妙な関係(その2):プログラミング言語の進化を追え(1/3 ページ) 前回に引き続き、Scheme言語の処理系、Gaucheを開発している川合史朗氏が、クロージャの機能を検証し、関数型言語とオブジェクト指向言語の関係について解説していきます。今回は、クロージャとオブジェクトのより深淵を探求します。 抽象化ツールとしてのクロージャ C++的なオブジェクトの世界では、オブジェクトの実体とは「ひとかたまりの構造体としてメモリ上に置かれたインスタンス変数の値」にすぎません。オブジェクトのポインタを取れば、それは事実上、その構造体へのポインタを持っていることになります。クロージャを「関数」中心で見ていると、その実体は「オブジェクト」の実体とは異質なもののように思えるでしょう。 確かにクロージャのナイーブな「実装」は、関数ポインタと環
Gauche:CGI:スケジュール予定表から。 カレンダー表示して、各日付に対して予定を書き込めるようにする、 というcgiスクリプト。いくつも解法があると思います。ここでは Gaucheのライブラリを活用して最短距離でとにかく動かし、その後で 機能をいろいろつけてゆく、という方向で、開発の様子を書いてみます。 チュートリアルにもなればいいかな。 何はともあれカレンダーカレンダーの基本関数カレンダーのtable表示cgiにする今回のまとめパラメータの受け取りparamsの意味任意月のカレンダー各日付のエントリまとめデータベース出現予定データの受け取りデータのストアまとめ近代化dbまわりの抽象化予定のある日に色をつける予定表示と編集の分離予定の消去まとめ議論、コメント勉強になりますこんなに便利かつエレガントになると思わなかった点まるで知らなかった点よく分かってない点(少し解説頂けるとうれしい
shiro さんが開発されている Scheme 処理系 Gauche 0.8.12 の最適化処理を勉強のためにまとめました。 よく Gauche のコードは宝の山だと聞きますが、その一端を分かってもらえるとうれしいです。 基本的にGaucheのコードのコメントをまとめただけです。 Scheme のソースコードと簡単な英語が読める人はこのまとめを読むより src/compile.scm を直接読んだ方が正確に理解できると思います。 前提1 コンパイルと実行の流れ Gauche はスタックマシン型の仮想マシンでコードを実行します。 そのため Scheme のコードはスタックマシンで実行可能なコードにコンパイルされます。 つまり Scheme のコード →(コンパイル) マシンコード →(実行) 結果 という流れでコードが実行されることになります。 今回取り上げる、最適化は上の流れの「コンパイル
dankogaiさんからトラックバック404 Blog Not Found:scheme - traceとslibで助け舟を頂いた。 このように、「知らないとなかなかたどり着けない情報」をご提供いただけることはとても幸せなことだと思います。 slibとtraceの準備 Ubuntuならこんな感じ。 apt-get install slibgoshで requireしてみると・・・。 gosh> (use slib) #<undef> gosh> (require 'trace) *** ERROR: couldn't open output file: "/usr/share/gauche/0.8.4/lib/slibcat" Stack Trace: _______________________________________ 0 (call-with-output-file catp
(2006/12/13 20:22:55 PST): Ruiからページを分離しました。 Parsing Expression Grammar入力の抽象化バックトラックの制御命名規則文字列に特化したスキャナ怠惰な文字列構築エラーの通知参考文献開発記録性能目標 (2006/11/25 07:45:58 PST)PEGによる拡張可能な文法 (2006/11/23 18:19:07 PST)高速化手法の検討 (2006/11/21 19:24:29 PST)中間報告 (2006/11/21 08:34:45 PST)本体への統合 (2008/05/20 04:26:20 PDT)とりあえずコミット Parsing Expression Grammar (2006/11/16 21:44:07 PST): HaskellのParsecのようなコンビネータパーザを作っています。コンビネータパーザは、再
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く