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

コンパイラインストラクチャ作成ロードマップ

ダイヤモンド言語作りのロードマップを書いて置きます。 これを数年〜10年くらいで行う予定です。1.Scalaでネイティブな命令型言語のコンパイラの美しい作法を探す。 C言語風言語の関数型言語であるScalaで記述することで美しいインフラストラクチャを目指…

タイガーブックchap4の抽象構文木

scalaだと、こんな感じになるんじゃないかっと。 class Absyn { type Pos = Int abstract case class Absyn(pos:Pos) abstract case class Var(override val pos:Pos) extends Absyn(pos) abstract case class Exp(override val pos:Pos) extends Absyn(pos)…

ふつパイラを読む

完全じゃないですけど、軽く目を通してみました。 オブジェクト指向で、visitorパターン使って作るという感じでした。 自分が目指しているのは関数型言語で命令型言語を作ることなので、タイガーブックがあっているのだなと 思いました。mincamlは関数型言語…

カルチャーショック

JQueryの本を嫌々読みました(笑 そう。嫌々に。体をよじらせながら。 ちゃんと理解しようとすると偉いしんどい。 どーせ、使わないし。とか、そんなもん使わなくてもやりたいことはできるとか。 もろもろの、受け付けない感情が湧いてきて、嫌なわけです。 …

で四則演算コンパイラ

自分のライフワークである、言語作りですが、いよいよオリジナルコンパイラを作っていこうと思っています。 で、まずは、四則演算できるだけのコンパイラだよなってことで以下のサイトを参考に作ってみました。 http://www.sol.dti.ne.jp/~yoshinor/mysoft/S…

環境指向言語

昨今、関数型言語とオブジェクト指向言語の融合が行われています。 Objective CamlやScalaがそれです。 しかし、現在ではまだ完全とは言えない状況です。 統一理論的な考え方を作り出すことで融合はスムーズに行えると言えるでしょう。 オブジェクトもクロー…

プロジェクト・グル・メンテーション(仮)

1.妄想言語メンテーション(仮)を開発し優勝を目指します。 名前は孟宗竹でもいいかもしれません。2.インフラストラクチャとしてmincamlを採用 mincamlはチェアマンである住井さんが作成した非常に美しいソースで有名です。 ということで話題性は抜群でしょ…

tanakhさんついにICFP Programming Contest 2010 優勝する

ICFP Programming Contest とは世界の最強のプログラミング言語を決めるコンテストです。 Pure Pure Code ++ が見事1位ということで、感極まるものがあります。 思えば、tanakhさんがD言語をDisっているところに、嫌そんなことはないよ。D言語最高だぜー!…

ゲーセン

むかーし、子供のころ、ゲーセンは不良のたまり場でよい子が行ってはいけない場所だった。 だけど、最新の面白そうなゲームがあって憧れの場所だった。

作業メモ

wonderflにはライブコーディング機能というのがあって、プログラムを組んでいる生の状態を見ることが出来ます。 で、その横にチャット機能が付いています。 結構面白いなと思います。

もくもく会

仕事終わってから1時間ほど、もくもくとプログラムを作ってきました。 phpのプログラムをひたすらscalaに移植。 で、うごくんだろうけど、いまいちかんすうがたっぽくないなぁって、なってました。

多言語対応のCMS「Ionize」

php

haXeのホームページのように多言語対応なwikiっぽいドキュメントが作れるのかもしれないので 後で試してみます。

分散機能付きNoSQL

tokyo tyrant、CouchDB ただ、分散したいってなるとこれだけではしんどいので分散できて、サーバ増やしたいときは増やせて お手軽に減らしたいときは減らせるのがほしい。できればPHPで簡単に設定できるといい。Cassandraは,Google BigtableのデータモデルとA…

永続機能付きNoSQL

てことで、永続機能を付けたものがRedisやtokyo cabinetとか。 Redisがc++製でインストール簡単で、phpからも使えた。 リストの前後に値を入れたり、ソート等もできるので新着データなどを入れるのに良さそう。

メモリ上オンリーNoSQL

memcacheが高速なメモリ上のKVSで永続機能はないのでキャッシュ用途専用になる。

KVSメモ

何んとなくしか調べていないのだけど、忘れると困るのでメモ

ブックマークにすればいいんだろうけど

めんどいので日記に書く。

mincamlを読む

最適化周りを読んでました。 どうも、全体像を1つの流れとして把握できてないようなので、ほとんど暗記問題だなとおもう今日この頃です。mincamlの最適化周りはすべてk正規化した後に、α変換されたものを扱います。まず行うのはβ簡約次に、ネストしたletの…

K正規化とα変換のよくわかっていないメモ

自分はあたまがそれほど良くないのでスパイラル的に何度も見て覚えるしかないなぁと思ってます。 なんとなくわかってるんだけど、詳細がよくわからない。 作って見ればいいのかもしれないけど、作れる自信がない。結局うわべだけなめて、細かいところまで見…

チャンスを狙え

時間が出来た。今がチャンスだ!! 進め!進むんだ! まだ疲れが残ってるだって? 大丈夫行ける!行けるさ!ま、あんま気合い入れない程度にさらっと、進めればいいさ。 さらっと。さらっと

IK

CGアニメーションを作る場合には、頭と、体と、腕と、足と、というかんじでパーツを作っておいて、 間接ごとを別々に動かすことでアニメーションさせるということをします。ただ、この多関節なアニメーションを作るのは結構大変です。 そこで、人形を手でい…

Scala Hackathon

scala hackathonにて、 コップ本を読んでみて、Any型って、JavaのObjectの親になるとか知らなかったので面白かった。あと、Akkaが面白いなと思いました。

imagemagickのオプションメモ

imagemagickでjpeg画像出力のときに、サブサンプリングの値を変更するには sampling-factorsに1x1等と指定するとよいです。

しんどいときが正念場

なんかね、もういいかなぁ。なんて思う時がね。正念場なんです。きっと。一瞬の気を緩めるときは緩めていいと思うんだけど、緩めっぱなしでそのままでいいかな? なんて思って、あきらめちゃうのはもったいないと思うんだなぁ。今まで積み上げてきたものは自…

トランスレータを書いてみよう。

ちょっとだけ書いてみたScalaで書いたトランスレータを紹介します。 四則演算と、代入、if else 文と式しか対応してないので、まだまだトランスレータとして動かせる 物ではありませんけど。 tが文を処理する関数で、teが式を処理する関数です。 引数はAnyで…

mincaml

タプルがうまく動作していないバグを修正しました。 原因はパーサの型が合っていなかっただけでした。 let a = (1,2,3) in let (x,y,z) = a in let c = x+y+z in print_int (x+y+z)こんなコードが動きました。 今日はやる気ないのか、30分くらいしか作業し…

四葉のクローバー

話変わって、午前中は、草刈りをしてました。 草刈りは普通全部、刈るのが基本です。でも、これでは戦略がありません。 いつまでたっても雑草は生えてくるわけです。 なんか、意図的にある方向性を持って操作してやりたいと思ったりします。 生えてくる草は…

ソフトウェアビジネスラボ@仙台 第一回

という集まりに行ってきました。 色々と収穫があった集まりでした。あと本を読もうと。 ディスカッションもそれなりにできたし面白かった。結構ツッコンダ話も出来てよかった。 デメリットもあるんだろうけど。もっと突っ込んで話してみたかったのも事実でし…

プログラミング言語を作るということ

汎用的なプログラミング言語を作るということは、成功は多くのユーザーを獲得し使ってもらうことにあるだろう。 しかし、おそらく、100つの自作言語があれば1つの言語が成功するか否かだろう。 それだけ、プログラミング言語を開発し使ってもらうことは…

SWF仕様翻訳プロジェクト

flashのSWFファイルの仕様を翻訳しているWikiがあります。http://hkpr.info/flash/swf/勝手に表をコピペ&整形してます。 今後はコピペした表の中身を翻訳していく予定です。 協力者も募集中とのことなので、気になるところがあったら ちょっとだけ修正でも…