Turing Complete Fm

17. Gauche Schemeの基本デザインの選択理由、オブジェクトデータベース、浮動小数点数の落とし穴 (川合史朗)

Informações:

Sinopsis

プログラミング言語を作る時には、途中で変えることが極めて難しいデザイン選択を最初に行わないといけないことがあります。今回は川合史朗さんがGaucheを設計した時に行ったデザイン選択の判断について話を伺いました。また、浮動小数点数のトリッキーさについても話をしています。出演者: 川合史朗 (@anohana)、Rui Ueyama (@rui314) https://turingcomplete.fm/17 ハッシュタグは#tcfmです。 TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。 イントロ (0:00) セキュキャン参加者募集中 (0:41) 俳優のオーディションとその心構え (2:43) 川合史朗さんが出演している映画がサンフランシスコで上映されます (5:16) 前回の訂正 (7:40) Gaucheを作った経緯 (8:57) STkのオブジェクトシステム (12:22) CLOS(Common Lispのオブジェクトシステム)ではインスタンスのクラスを動的に変更できる (14:35) CLOSを使ってオブジェクトデータベースを作った話 (18:39) 三つ組を使ったグラフデータベースを作った話 (24:38) 構文木インタープリタではなくVMを選んだ理由は、継続 (29:24) プログラミングにおける概念としての「継続」 (30:39) 文字列の内部表現はどうするか (36:46) マルチスレッドの対応 (37:47) GCのAPIはどうするか(GaucheはBoehm GCを使って保守的GC) (39:36) 保守的GCとは何か (43:13) 自分ではGCを書かなかった理由 (45:03) Precise GCにしなかった理由はC言語との親和性 (46:45) マルチスレッドとGCとUnixのシグナル (47:50) GoやErlangの並行処理モデルを導入していない理由 (51:17) Gauche版のjava.util.concurrent (52:31) R5RSの範囲を実装するのは1ヶ月以内でできた (55:16) 浮動小数点数を10進で書き出して読み出した時、同じ数に戻ることを保証するには (57:37) Schemeは分数を正確な分数のままで扱うことができる (1:0