タグ

ブックマーク / propella.hatenablog.com (4)

  • ネームスペース概論 - 言語ゲーム

    ネームスペースについて、色々調べたので今度は自分の考えをだらだら書く。 今思っているのは、ネームスペースを主要な言語の要素として考えたいという事だ。だいたい GC だとかオブジェクトだとか末尾再帰について色々うるさく言う人は沢山いるのに、ネームスペースは日陰者というか、言語開発者が最後に面倒くさそうに付ける物という程度の人気しか無い。モダンなネームスペースが特徴です!とセールスポイントに挙げてる言語に出会った試しが無い。 しかし世の中には名前が原因で起こる問題が沢山あるし、当はネームスペースの問題なのに他の問題と思われている物も沢山あると思う。そういう物にはネームスペースが解決の糸口になると思う。 やりたい事。まずネームスペースがどういう物か、どんな種類があるかを定義したい。そしてプログラミング技術に散在しているネームスペースっぽい問題の共通点を考えたい。 まずネームスペースが取り上げる

    ネームスペース概論 - 言語ゲーム
    eagletmt
    eagletmt 2010/08/17
  • git サブツリーマージを使って他のプロジェクトのソースコードを使う。 - 言語ゲーム

    git で管理しているプロジェクトの中に他の git プロジェクトを混ぜる方法を書きます。例えば私の lispコンパイラ tamacola では、abcsx という別のレポジトリにあるアセンブラを使っているんだけど、これをライブラリとして使いたい。しかも単にコピーするだけじゃなくて、もしも abcsx を変更した時に、その変更点を元のレポジトリにも反映したい。そんな状況です。 そこで役立つのがサブマージツリーという仕組みです。普通 git では二つのプロジェクトを混ぜて一つのレポジトリを作りたいとき、一つのディレクトリに二つのプロジェクトが混ざってしまいます。サブマージツリーを使うと、ライブラリとして使いたい方のプロジェクトをサブディレクトリとしてマージする事が出来ます。 サブマージツリーを使った作業ツリーの作り方。 まず、あなたはとある git レポジトリ上で仕事をしているとします。ab

    git サブツリーマージを使って他のプロジェクトのソースコードを使う。 - 言語ゲーム
    eagletmt
    eagletmt 2010/08/13
  • 言語遍歴(技術的な近況) - 言語ゲーム

    私が色々なプログラミング言語が好きなのは、それぞれの言語が新しい視点を提供してくれるからだ。正しい言語を選だけで、複雑すぎてやってられないような仕事が呆れる程簡単になってしまう!というような事が今まで何度もあったし、これからもあって欲しいと思っている。たまたま機会があって、最近では自分でも言語を作っている。その辺の経緯を一番最初から書く。 最初はみんなと同じ BASIC。パソコンという物に触れる前に、千里中央にあった電電公社のショールームでバイオリズムを出力するプログラムを見たのが初めてだと思う。ロールペーパーに打ち出された行番号と英単語はとてもかっこ良かった。すがやみつるの漫画でプログラムを学び、最終的にマルチウインドウのアスキー画像エディタを作ってゲームのキャラ作成に使った。ドラクエ風を目指して作ったウインドウは全部モーダルで、配列をスタックとして使って8画面まで重ねる事が出来た。 機

    言語遍歴(技術的な近況) - 言語ゲーム
  • Prolog を Haskell で書く。 - 言語ゲーム

    Prolog インタプリタを Haskell で書きました。しばらく書いただけで満足してしまっていたのですが、このまま人知れず消えて行くのも寂しいので勉強した事を書きます。まず、参考にしたソースは前回書いた hugs98/demos/prolog/ です。このソース。大変短くて良いのですが、素人目には簡潔すぎて難しいのと、書かれたのが古いのか do 記法を全く使っていないので、そこらへんを私風にアレンジしました。ソースを http://github.com/propella/prolog/tree に置いておきます。なお、言葉の使い方とか間違ってるかもしれないので気づいた人は教えてください。 実行 実行の仕方は Prolog.hs をダウンロードして、 runghc Prolog.hsです。food(apple). のようにするとルールに追加で、?- apple(X). で問い合わせ、??

    Prolog を Haskell で書く。 - 言語ゲーム
  • 1