2009-08-01から1ヶ月間の記事一覧

secd machine(2)

ちょこっと前進。if のサポート。そして初めて secd の d, dump スタックを使った。 元の secd だと、必ず s とか e とかが末尾残っているのだけど、わたしのは空リスト。そのままだと secd の d は結局空のままで分かり難いので、 if の結果に足し算をする…

VM メモ

Perl VM by Perl http://search.cpan.org/~gfuji/Acme-Perl-VM-0.0.5/lib/Acme/Perl/VM/JA.pod これはすごい。Perl による Perl VM の実装。Shibuya.pmか。 PyPy http://morepypy.blogspot.com/ どうも LLVM のバックエンドは止まってしまったらしい。"Killi…

secd machine

分かりやすそうな http://www.cs.ualberta.ca/~you/courses/325/Mynotes/Fun/SECD-slides.html を元に SECD マシーンを作って見ている途中。ほとんど定義そのままの単純な構造。良くわかっていないが、まだ実装していない LDF あたりが楽しみ。 OP 説明 目的…

toy VM

Gauche の命令列の一部だけが動くおもちゃの vm を作ってスタックマシンを理解しよう。目標は、加減乗除と lambdaと関数適用が動く vm を作ること。 半年くらいまえに浅くやっていたものを、3imp で少し成長したのでもう一歩進める。 準備 最適化があるとわ…

memo

ふむ、いちおうこんなのも動くらしい。自分で書いていても良くわからんけど。 gosh> (eval3 '((lambda (o e n) (o o e n)) (lambda (o e x) (if (= x 0) "even" (e o e (+ x (- 1))))) (lambda (o e x) (if (= x 0) "odd" (o o e (+ x (- 1))))) 10)) (frame…

学習パターン

http://learningpatterns.sfc.keio.ac.jp/index.html reddit 経由。これはなかなか面白い。ちゃんと読んでみよう。

env, frame

もうちょっとちゃんと理解しよう。どこに何が積まれているんだ? extend を良く読む。 フレームと環境はオブジェクト(define-class で定義)にしてみるか。

http://blog.kzfmix.com/entry/1250594366 経由。 届いたので後で読む。斜め読みした感じでは良さげ。 というか仕事がなくなるまえにちゃんと勉強して、生き延びる。

Scheme コンパイラの勉強(49) - lambda, closure, frame

コンパイルの過程。以下3impに書いていること、そのまま。 lambda (lambda vars body) は (close vars cbody) へコンパイルされる。body をコンパイルするときは next を '(return) にしておく。 (return) インストラクションは、スタックから最初のフレーム…

fastcc

LLVM の呼び出し規約 fastcc とスタックフレームとで頭がぐるぐる回っている。やりたいこと。LLVM でネイティブコンパイラを書くこと。 3imp のヒープベースのコンパイラ+VM 。LLVM で自分でヒープを管理するって意味がある行為だろうか。

Scheme コンパイラの勉強(48)

再度整理。 rec -> gauche では定義しなくてよい。SRFI-31 として定義済み。 recur -> named let を使えば不要。 record-case -> match で書き換えできるので不要。 この 3imp 3.4 の VM + Compiler で、まずは普通の四則演算ができるようにしたい。さてどう…

[3imp] record-case

う、ちゃんとテストするとどうも間違っているらしい。ステップバイステップ、といいたいが仕事いかなきゃ。

Scheme コンパイラの勉強(47)

あまり進んでいないがメモ。VM のレジスタの役割を再度確認中。 VM にわたる引数を全て出力して一つ一つ追って行く。 うーん、コンパイラとVMとどちらがどこまで正しいのかよくわからないなぁ。もっと理解できる最小の系にしないと駄目だ。

カメラ

カメラをつなぎたい。 http://www15.atwiki.jp/arduino/pages/45.html http://kousaku-kousaku.blogspot.com/2008/11/arduinos9706.html http://eleshop.jp/shop/g/g402035/

Arduino 0017 alpha

メモ。正確には http://arduino.cc/en/Main/ReleaseNotes を見ること。 構成が 0016 から変わっている(Mac OS X 版) 。(Arduino now comes as an app file (in a dmg) on the Mac.) Arduino.app とドライバのみが配布物。 0017 Arduino.app/Contents/Resourc…

シリアル通信 cat/echo

簡単なところから確認しよう。arduino 側は昨日と同じ。まず端末を開いて、 cat /dev/cu.usbserial-A6008jmR 最初は何も表示されない。別の端末を開いて、 echo 'h' > /dev/cu.usbserial-A6008jmR 文字 'h' を書き込んだら、ちゃんと LED が点灯した。そして…

シリアル通信

シリアル通信ができるってことは好きな言語で Arduino をコントロールできるってことなので試す。以下 Arduino 側。シリアル通信で 'h' で LED オン、'l' で LED オフ。 // Serial - Gauche - Test - Arduino #define LED 13 int inByte; void setup() { pin…

シリアル通信再び

http://nekosan0.bake-neko.net/structure_usart.html http://blog.livedoor.jp/spkv/archives/249613.html gainer + gauche

コマンドライン

http://jp.makezine.com/blog/2009/06/arduino_xcode_template.html?CMP=OTC-T10K41815721 Arduino IDE のかわりに Xcode を使う http://www.arduino.cc/en/Hacking/CommandLine "Arduino from the Command Line" こちらは Makefile Xcode をそもそも全く使…

メモ

AVR のための LLVM バックエンド。 http://wiki.github.com/atduskgreg/llvm-avr まだかなり初期の状態に見えるので注意。わたし自身まだ試してもいない。でも、これで LLVM 用に Scheme コンパイラを書けば、 Arduino で作った自作ハードウェアもコントロー…

Tilt Sensor

動いた‥かも。ひゃっほー。

物理エンジン

Proce55ing で動く物理エンジンを探し中。 http://www.cs.princeton.edu/~traer/physics/

めったに使われない常套句 (3)

「コンパイラを作ったんだって?おめでとう!じゃあ次は、そのコンパイラのためのハードウェアを作る番だね!」

Arduino Duemilanove (2)

一緒に買うべきだったもの、を買いに再び秋葉原へ。(無駄すぎる、、)「Arduino をはじめよう」の 80 ページに、ド素人の私には嬉しいことに、 LED(光る奴) ブレッドボード(ハンダ付けなしに線をつなげるもの?) ジャンプワイヤキット(ブレッドボードに差…

Arduino Duemilanove (1)

唐突に欲しくなり、秋葉原まで出向いて買った。 千石電商 秋葉原店にて購入。( http://sengoku-akb.jugem.jp/?eid=89 ) (ひょっとしたら Arduino Duemilanove としては最後の一個だった?Lily Pad や他のはまだあった。) (20090802 追記。やっぱりArduino Du…