[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

2008年9月4日のブックマーク (2件)

  • 紫ログ:Grass on AWK - AWKでちょっと草を - livedoor Blog(ブログ)

    ちょっと草植えときますね型言語 GrassをAWKで実装してみるの巻。 Grass は λ-calculus(ラムダ計算)をベースにした「関数型言語」で、「関数定義」「関数適用」のみの組合せでプログラムを表現します。使う文字は W,w,v の3種類。(その他の文字は無視) 今回、こういう言語の実装には正直向いていなさそうなAWKで実装してみました。 AWKの上でYコンビネータが動いているのは自分でもあまり想像したくないのですが・・・grass.elのところにあるサンプルのうち、入力を伴うもの以外はとりあえず全部通るようです。 言語仕様としては、家ドキュメントのほか、ここが参考になりました。 せめて配列がAWKでファーストクラスなオブジェクトだったら楽なんですが... 仕方がないので、文字列でなんでも表現しようではないか 関数は "/i[j]a.b;c.d;e.f;...;y.z;" のよ

    higepon
    higepon 2008/09/04
    どんだけ awk 好き
  • マクロ展開の結果とコンパイルの結果を見る方法 - Y.FUJITA::NOTEPAD::YPSILON

    マクロ展開 マクロ展開の様子を見るにはdebug-expandという手続きを使います。この手続きは0.9.6-update2(2008/09/03)より添付されているライブラリ(debug)からexportされています。debug-expandはコンパイラへの入力を直前で取り出し、これを見やすい形式に変換して出力しています。これによりマクロ展開が思ったように行われているのかどうかや、展開後のボリュームを確認することができます。ちなみに変換前の出力はmacro-expandで見ることができます。 Ypsilon 0.9.6-update2 Copyright (c) 2008 Y.Fujita, LittleWing Company Limited. > (import (debug)) > (debug-expand '(let ((x (foo n)) (y (bar n))) (- x

    マクロ展開の結果とコンパイルの結果を見る方法 - Y.FUJITA::NOTEPAD::YPSILON
    higepon
    higepon 2008/09/04
    scheme レベルで最適化をしているのかな。