日記

letサポート

http://github.com/mzp/scheme-abc/commit/64fc87159119894bff8b2ada6ea97b488ca2f7f5とうとうletが使えるようになった。レキシカルスコープが使えるのはAS3に対して、アドバンテージになるんじゃね? $ cat example/let.scm (let ((x 42)) (let ((x 10)) (pr…

レキシカルスコープの実装が難しい

AVM2でレキシカルスコープを実現したいけれども、中々難しい。そもそもの原因は、ActionScript3の元となっているECMAScript3にレキシカルスコープが存在しないことにある。 とりあえず現状をまとめてみる。 各クラス・インスタンス・関数などは、Traitと呼ば…

if文サポート

http://github.com/mzp/scheme-abc/commit/e54efa5c0092f49ae892cb15a14fa67816d89099 if文が使えるようになった。正確にはif式だけれども。 $ cat example/bool.scm (if (< 1 42) (print "big") (print "small")) $ ocamlbuild main.byte -- example/bool.s…

boolean operatorに対応

http://github.com/mzp/scheme-abc/tree/master bool値を返す演算子がいくつか使えるようになった。が、リテラルの#tや#fには対応していない中途半端っぷり。#tのパース、面倒そうだなぁ。 $ cat bool.scm (print (> 1 10)) $ ocamlbuild main.byte -- bool.…

if文が難しい

if文への対応が予想以上に難しい。 jumpに、ジャンプするバイトオフセットを命令中に埋め込まないといけない。 でも、命令をバイト列に変換するのは出力直前なので、命令を生成する段階ではバイトオフセットを計算できない。しかも、命令の長さは可変長のも…

AutoDiscoveryするプラグイン書いた

http://howdyworld.org/opml/?TestURLを入力すると、AutoDiscoveryしてRSSのURLとかをとってくるプラグインを書いた。これで追加が楽になったはず。

命令を追加するのが面倒

scheme-abcで命令やASTをひとつ追加するたびに、バリアントをひとつ増やして、match ... withの節をひとつ増やすのが非常に面倒。Expression Problemだよなぁ。 OCamlのオブジェクトシステムを使えば普通に解決できそうだけど、それはそれでなんかヤダ。

加算ができた

やった。加算ができたっ。 $ cat example/add.scm (print (+ 1 2)) $ ./main.byte -o add example/add.scm $ avmplus add 3トークンを作るときに、"+1"(整数の1)と"+ 1"(+というシンボルと1という整数)を区別するのが大変だった。整数のパースを先にやると+…

整数リテラルが使えるようになった

http://github.com/mzp/scheme-abc/tree/master整数リテラルが使えるようになった。やった! $ cat example/int.scm (print 42) $ ./main.byte example/int.scm $ avmplus a.abc 42

Problem30が分らない

Problem 30 - PukiWikiが全然分らない。 どこから手をつけたらいいんだろう。せめて桁数だけでもわかっていれば・・。

GitHub登録

Schemeっぽい言語コンパイラ for ABCをGitHubに登録してみた。http://github.com/mzp/scheme-abc/tree/master

Hello,world!!がコンパイルできたっ

Schemeっぽい言語をコンパイルして、ActionScript3 Bytecode(ABC)を出力するコンパイラを最近書いている。 やっとHello,world!!がコンパイルできるようになった。いえい。 $ cat foo.scm ;; First Program (print "Hello," "world") (print "It's wonderfull…

いまさらProject Eulerに登録した

いまさらながら、About - Project Eulerに登録した。だって、答あわせができるなんて知らなかったんだもん。 いくつか2つほど過去のやつで間違えていたことがわかったので、後で直す。(友愛数と回文積)

なぜProblem12が解けんのだ

ここ数日チャレンジしているけれど、Project EulerのProblem12が一向に解けない。Problem 12 - Haskellはスケるよは、実に素直に書いてるように見える。concatと内包表記の使い方は素晴しいとは思うけれど、アルゴリズム的にはすごく素直に最初から探索して…

BEST SOFTWARE WRITING読み終わった

BEST SOFTWARE WRITING作者: Joel Spolsky,青木靖出版社/メーカー: 翔泳社発売日: 2008/02/21メディア: 単行本(ソフトカバー)購入: 9人 クリック: 201回この商品を含むブログ (109件) を見る帯にJoel Spolsky×青木靖と書いてあったので買ったら、Joelは著…

Rails本再読

ここ2日ほど仕事でRailsを使っているのでRailsによるアジャイルWebアプリケーション開発の前半部分を再読。たいぶ色々忘れているなぁ。でも読めば思いだせるのは幸い。 後半の各モジュールの詳細は、使っているActiveRecordとActiveView、ActiveControllerの…

iptablesの設定ミス

大学においてあるPCのiptablesの設定を失敗して、SSHをブロックしてしまった。 中国っぽいIPアドレスからSSHにものすごい勢いでアクセスが来てる よーし、このIPアドレスをブロックしよう iptablesを書き換えたぞ。iptatbelsのデーモンを再起動! あれ?SSHが…

Prologすげぇ

ガウディ本(asin:4798113468)を読んでいるんだけど、Prologというか関係プログラミングすげぇ。 要するにAppendを {Append [1 2 3] [4 5 6] X}と使うとXが[1 2 3 4 5 6]に束縛されるけど、 {Append X Y [1 2 3 4 5 6]}と使うと結合すると[1 2 3 4 5 6]になる…

リフトとフラット

ガウディ本(asin:4798113468)に リフトがフラットに住む人々にとって有用なのは、エレベータがアパートに住む人々にとって有用なのと同じである。 と書いてあるんだけど、何かのネタなんだろうか? そもそもフラットって何?

そういえば

一年に新しい言語を一つ覚えないとなぁ、とか次は並列言語だよなぁ、と思っていた。でも、考えてみれば最近、Ozを書いてるから、もう新しい言語覚えてることに気がついた。

あけましておめでとうございます

あけましておめでとうございます。本年もよろしくお願いします。

Ruby勉強会でS6を使ってみた

今日のRuby勉強会で、S6を試してみた。印刷がもっと楽にできるようになるといいなぁ。資料はこちらです。http://howdyworld.org/slide/ruby-slide.html

風邪引いてました

また風邪を引いてました。熱が上ったり下ったりで、やたら長びきました。 みなさん、注意してください。あと注文していたiPod touchとアドエスが同時に届いて、ちょっと幸せです。

iPod touch注文した

iPod touchを注文しました。16GBのほう。 アドエス(id:mzp:20071130:ades)と、どちらが先に届くかな。

Pythonのイメージ

なんでPythonが流行ってるんだろう。自分はあまりPythonにいい印象を持ってない。 今、もっているPythonのイメージはこんな感じ。 インデントが意味を持つのは素敵 自分が勉強したときよりも、いくつかの構文が追加されている。yield式とかconditional expre…

はてブとはてなスター

howdyworld.orgのタイトルの横に、はてブボタンとはてなスターボタンを表示するようにした。これだけで、一気にWeb2.0っぽくなった気がする:)。ところで、こういったボタンの設置方法は、はてなウェブサービスではなく各サービスのヘルプページに書いてある…

派閥ジェネレータ

派閥ジェネレータなるものを作ってみた。twitter派閥やカラスはなんで感電しないのか?にあるようなアスキーアートを生成するやつ。例えば、こんなやつが簡単に作れる。 変数名派閥 ├─簡単なやつは略語でいいよ派 │ ├─x,y,z派 │ ├─foo,bar派 │ └─hoge,hage派 …

風邪

風邪引いてました。みなさん、体には気をつけてください。

携帯メールで散財.com

予告通り、散財.comにメールで投稿できるようにした。 ただ、来年の2月のアップデータで携帯に対応されるらしいので、適当に作ってある。 どう適当かと言うと、品名と値段しか登録できない。添付画像ができたり、ジャンル・カテゴリが選べたりしたら楽しいと…

散財.comへメールで投稿

上で書いたやつを使って、メールから投稿できるようにしてみた。 でも、パスワードがべったり書いてあるし、ジャンルとかにも対応してないから、まだ公開できない。そのうちね。