2006-01-01から1年間の記事一覧

ドカタしながらCOMET II用アセンブラを30日で作る日記(2日目)

昨日は台風みたいな雨の中作業ですよ。てーへんでした。 まぁ、いいや。 いや、10分しか作業時間取れなかったので、とりあえず、コンパイル通して、 コメントつけて終了みたいな。 30日といいつつ、いきなり、時間飛んでるあたり、終わってる。 まぁいいや…

ドカタしながらCOMET II用アセンブラを30日で作る日記(1日目)

おそらく突然、1,2日でゴリゴリすすんでおわりそうだけど、 COMET II用アセンブラくらいなら30日くらいでつくれるんじゃないかと期待しつつ、 作ってみることにしました。 眠いのでココまで。 駄目駄目だなぁ。

ちっちゃいもの

LISPとSECDマシンとそのコンパイラ。それ最小なのかなと思ってみたりした。 SECDマシンのocaml版がどこかに落ちてたような、落ちてなかったような。 状態変移がそのまま書かれてて、オオっっていう。 http://web.engr.oregonstate.edu/~erwig/buch/fp/kapite…

commetの実装やらなにやら

http://alohakun.blog7.fc2.com/blog-entry-597.html あろはさんが、そんなこと言ってます。 おお、これ面白そう。 アセンブラはnasmを参考にx86のやつ作ってみたいと思って挫折してたりするので、 簡単なマシンで練習っていうのはいいんだろうなと。 とりあ…

COMMET

風呂でパソコンしたい。どうしたらできるか? 防水ワイヤレスキーボードと、風呂から古いディスプレイを見れるように仕切り板を設置しておけばよかかと。 ここで、ぐぐると面白くて時間なくなり、鬱になるので、放置する方向で。

ちっちゃいものブーム

あれ、PKUだ、Codeゴルフだとやってて面白いんですが、 できれば、役に立つちっちゃいコードブームが起きないかなぁと。 他力本願的に思ふのでした。 いや、どっかでブームになってるのを知らないだけかもしれないけど。 ちっちゃくて、わかりやすい、アセン…

consを利用した言語の実装

とりあえず、四則演算+if文が使えるxxx言語を実装してみました。javascriptで。 [if, [=,[+,1,2],4],111, 222] if[=[+[1,2],4],111,222] if (=[+[1,2],4]) [111,222] if (= (+[ 1, 2]) 4 []) 111 222 [] if (= (+ 1 2 []) 4 []) 111 222 [] (if (= (+ 1 2 […

リスト連結(cons)を利用して見やすくした言語xxxを考える。

さて、1と2と3のリストは各言語で以下のようにかける。 lisp xs = (1 2 3)は xs = (1.(2.(3.()))) clean xs = [1,2,3]は xs = [1:[2:[3:[]]]] haskell xs = [1,2,3]は xs = 1:2:3:[] ocaml xs = [1;2;3]は xs = 1::2::3::[]さて、ここで、xxxという言語を考…

Wiiコントローラが駄目だった場合のWiiの使い方

Wii

もしも、Wiiのコントローラでブラウザの操作が簡単にできなかったとしたら、 DSをWiiのブラウザのコントローラとして使ってみたい。 http://www.forest.impress.co.jp/article/2006/01/30/ppctablet.html Pocket Tabletの任天堂バージョンだ。 っていうのは…

Wiiコントローラを扱うライブラリ

Wii

Wiiは買えなかったので、パソコンとテレビとWiiリモコンがあれば、テレビでWii体験できるなとか。 http://www.forest.impress.co.jp/article/2006/12/04/wiinremote.html いろいろライブラリとかあるようなので、ゲームを作れてしまいそうだなと。 http://ww…

Wii

Wii買えてないので、情報収集してました。 そしたら、Wiiリモコンだけとりあえず欲しくなってしまってたりします。

ver1.0が来る!!

来るぞーってことで、最近D言語から離れてるうちに1.0になるそうで、頑張れウォルターたん。 って感じです。D言語研究のBugTrackも放置してしまってたりしたのだけど、 k.inabaさんが送ってくれるそうなので、お願いしてしまいました。 役立たずですまぬで…

SSA最適化

って要は、代入のあるプログラムを代入のないプログラムに変換してから計算するっつうことなのね。 だから、SSA、静的単一代入形式いうんだね。関数型言語だと、代入は基本的にないから、簡単に最適化も出来るみたいな。

0.0.4遅延評価したり、しなかったりする。

とりあえず、DのlazyのようなのをJSOPで作ってみました。処理系は60行以下です。 ちゃんと、遅延評価したり、しなかったりできます。 [{ myif : { args : ["c", ["a"], ["b"]], body : ["if", "c", ["a"], ["b"]] }, body : ["myif", 0, ["error"], 3] }]…

0.0.3

JSONを使った関数型言語JSOPをバージョンアップしてみました。 無名関数が使えるようにしてみました。 alert(eval({body: [{args:["a","b"], body:["+","a","b"]}, 1, 2]}));のように書くと計算結果の3がアラートボックス内に表示されます。 C式を使った場…

NamedArray

プログラミング言語をデータとして扱うためには名前付きの配列が必要なんじゃ??? って思い、NamedArrayクラスってのを作ってみました。 これ使えば、配列と連想配列の両方兼ねてるのでいろいろできるはずです。 名前付き配列を扱うことが出来るJSONみたい…

Vista

クォッツのほうがいいや。 Intel MacをApple以外の会社、例えばパナソニックとかシャープとかソニーとかどこでもいいんだけど、 が作りはじめたらひっくり返るんじゃないかなとか思うのでした。 もしくは、AppleがIBM PC 用のOS作ってしまってもらえると嬉し…

Io風味パーサ

かなり、適当ですが、Io風味のパーサを作ってみました。 a(b,c,d[][]) e f{} []といった式をパースして、以下のような構造を作ります。 call{ call{ call{a(b,c,call{d[],[]}), e}, f{} }, [] }Ioと互換ではなくて、拡張したり、手を抜いたりしてます。 Ioは…

スタックマシンで継続が出来ない(T-T)

四則演算と関数が使えるだけのスタックマシンに継続を入れたものを作ってみてるのですが、 まとまった時間が取れなくて、出来上がりません。くそう。 関数フレームをツリー状にしてうんぬんしたいのだけど、わかんない。

ああ

むしょうに1ヶ月くらい、家に引き篭もって、プログラミングしたくなってきた。 だんだん、プログラミングパワーがたまってきたぞーみたいな。 あろはさん経由sumiiさんの日記から、 SML#のスライドとか見て、MLが一般に広まるには標準化されている必要がう…

言語作りの難さ

いろいろなアイディアがあったとしても、全てを入れるわけには行かず、 複数の選択肢のうちの1つを選ばなくてはならない。 複数のパーツのうち、どの組み合わせが最もよいかを探すことが 言語デザインをする上でのポイントとなるのかもしれない。 ひたすら…

自分が考えている方向性に近い言語

casperの作者さんの日記経由で知りました。 http://d.hatena.ne.jp/xtalco/ : は完全に命名演算子として式として変数、関数、クラス(型)等を使えるようにしているところが似ています。言語をシンプルにする一つの方法として、:を命名演算子としてしまう方…

プログラミング言語JSOP(2)

factの計算が出来るようにしてみました。ifと=を追加して前回の関数呼び出し部分のバグを取ってあります。 <html> <script language="javascript"> function eval(p, env) { if (!isNaN(p))return p; if (p instanceof Array) {// 関数適用 switch(p[0]) { case "+": return eval(p[1], env) + ev</html>…

プログラミング言語JSOP

簡単な、JSONを使ったプログラミング言語JSOPを作ってみました。 数値演算しかできません。 ハッシュと配列で何とかすることを考えたら、関数型言語風になりました。 var program = { body:{ body:["+", "x", ["/", "y", 2]], x:["add", 1, "y"], y:["mul", …

仕様サイトをとりあえず作る

http://dokoka.sakura.ne.jp/cexp/wiki上で書いていこうと思ってます。 googleにはきちんとc式で検索できるようなので安心です。

仕様を書く

とりあえず、仕様を書いてって見よう思ってるんですが、 ドキュメントを書くことが非常に苦手なので困っております。 途中で止まったりすると、再開して書く気力が出ません。 困ったものです。 とりあえず、バージョン0.1って感じの仕様書を完成させないとな…

CASEツールプラットフォーム

らしい。 非常に大雑把に言うと、C言語の統合環境などを簡単に作れるようにするものらしい。 Java対応のJapidというものもあるらしい。 SDBの中身がどうなっているのかがドキュメント上から見れないのがいまいちかと。 もう、新しい言語とか見るの飽きてき…

なんとなく触る。

Io

バイナリを落として、触ってみる。 1 2 + 3の結果の意味がいまいち理解できないで困る。

2chにスレ立てる

C式(C言語風汎用データ形式)を作ろう! http://pc8.2ch.net/test/read.cgi/tech/1158259643/l50 っていうスレを立ててみました。 いろいろと参考になります。 C言語の式の後ろにセミコロンを書かなくてはいけなかったり、 配列の場合は後ろにカンマを書…

C言語風言語の論文っぽいもの書きたい

とりあえず、論文を書いてみたいのだけど、どうしたらいいのかと。 だれか、添削して欲しいなぁと思ってます。 とりあえず、カンマやセミコロンがどうして必要になるのかを述べた後、 カンマを使った考えられる限りのデータ形式を一覧した後、長所と短所をそ…