Scheme

SchemeでCSS圧縮

字句解析器silexでCSSを圧縮できるのか。 言語ファイルの削除だけでは限界が見えてきたFireboot。 しかしほかのファイルを機能を維持したまま圧縮できればよりサイズが抑えられるはず。 そんなわけで手始めに一番簡単そうなCSSの圧縮に挑戦してみました。 完…

ちび電卓作ってみた

Chicken Schemeで構文解析はできるのか検証しました。 自分でパーサ書くのは死ぬほどしんどいというのはJavaで体験済みなのでライブラリを探してみます。 アーッ yacc無かった! yaccがあれば楽になると期待してみたところ残念ながらありませんでした。 あれ…

実践 CHICKEN Scheme Qt eggをWindowsで動かす

Chicken Scheme 4.7.0のWindows環境でqt-light eggを普通にchicken-installすると(use qt-light)時にエラーが出てインポートに失敗します。 Qtの導入には地雷が多くて何度も躓いてしまったのでその対策をまとめました。 Ubuntuでは前回の記事の手順で問題あ…

実践 CHICKEN Scheme 準備編

これは CHICKEN Scheme で実用的なGUIアプリケーションを作成するまでのメモです。 CHICKEN Schemeの導入については前回で解説しています。例としてFirefoxの履歴とお気に入りを保管しているデータベースファイルを再構成することでちょっと反応を早くするア…

始めよう Chicken Scheme

これはCHICKEN Schemeの導入メモです。 Chicken Schemeとは何か、どこが優れているのかなどは有志による日本語マニュアルに譲ります。 http://www.h7.dion.ne.jp/~samwyn/ChickenDoc/The%20User%27s%20Manual.html Windows 7 導入編 まずCコンパイル環境を整…

iアプリでScheme(Lisp)処理系を作る 第五回

久しぶりに五回目をやります。ようやく思いどおりのコードになってきたので続きが書けます。 push命令から全部VMに実装するのは無謀だと考えて大きい粒度で処理することにしました。 対象がiアプリ(doja)なのでクラスローダはおろかリフレクションすら使えま…

iアプリでScheme(Lisp)処理系を作る 第四回

四回目です。 前にも一度Lisp実装もどきをつくろうとしたことはあったのですが、 ((Cell)((Cell)args.cdr).cdr) .... と引数を見るためにcdrをどんどんキャストしていく単純作業に耐えかねて挫折してしまいました。 それに実行時に型チェックで時間を取られ…

iアプリでScheme(Lisp)処理系を作る 第三回

今回はコードはありません。 ifなどの「構文」を追加しようとしていろいろ調べ物をしていたら考えが収束しなくなってしまいました。 まとまったコードは次回に掲載する予定です。 それとPairのcdrをいちいちキャストするのが面倒で精神衛生上良くないのもな…

iアプリでScheme(Lisp)処理系を作る 第二回

動機については前回を参照ください。 今回はとりあえず足し算ができるように、ペア・シンボル・整数・手続きを表すクラスを作成します。 ペアを作る Eclipseのdojaプラグインでテンプレクラスを作成してからPairクラスを作成しておきます。 ペア(Pair)にはca…

iアプリでScheme(Lisp)処理系を作る 第一回

動機 独自言語を作ってウェブを変えようなどと企んでいるこの頃ですが、そもそも言語開発とはどのようなものか知らない状態でいきなり挑むのは難しいと思い、習作としてドコモの携帯電話で動作する簡易Scheme処理系の開発に挑戦することにしました。 資料 ア…