タグ

ブックマーク / gikoforth.s13.xrea.com (6)

  • Project GikoForth

    GikoForthは、pForthをベースに、非分かち書き日語プログラミング風な表記ができるようにしたオブジェクト指向Forthです。 役に立ちませんが、まったりと気分が乗った時に断続的に開発しています。 最近、全く更新してません。 Sukunaは、単一継承+Mix-in、ブロッククロージャ、ガベージコレクターなどを備えたForth方言です。 整数、浮動小数点数、文字列、Vector、ブロッククロージャなどが一応オブジェクトとして扱えます。 逆ポーランド記法とブロッククロージャの組み合わせでシンプルなFunctional Programmingぽいこともできたりします。 どのみち役に立ちませんが、もう少し役に立つ物にならないかと思案しながらまったり開発中です。

    mnru
    mnru 2012/08/30
    GikoForth,Sukuna
  • Project GikoForth

    GikoForthはANS Forth上に日語風オブジェクト指向機能を拡張するソース(オプン)でしたが、 現在はベースのpForthにも手を入れてしまっているのでそのままでは他の環境で動きません。 GikoForthではこんなソースやあんなソースのように、非分かち書き日語プログラミング風の記述ができます。 ‥‥‥断続的突発的にマターリと気が向いたら開発します‥‥。 GikoForthって何?と思う方は、ReadMeも読んで見て下さい。 Wikiたてますた。 オブジェクト指向+関数型なForth方言Sukunaはこちら。(2003/9/13) ○最新版のダウンロード Mac OS Xで動作するバイナリを用意してみました。 ターミナル版とFinderから起動できるアプリケーション版が両方含まれています。 GikoForth v0.2.3(GikoForth.tgz) ターミナル版を実行する

  • The Log of the No22(2006-09)

    _ [言語] nil 今更だけど、いろんなとこ経由sumimさんの記事を読ませていただきながら、ぼんやり思ったことを。 数学では、 a * e = e * a = a を満たすよーなeを単位元と呼び、 a * 0 = 0 * a = 0 を満たすよーな0を零元と呼ぶのだそうです。 とすると、空文字列は文字列の単位元なので、nil.to_sが空文字列を返すということは、nilには単位元としての「空」を期待されているということになります。 これはこれで一貫性があるように思います・・・。 ところでnilが使われる局面というのは、たとえば、検索の結果、該当する値が見つからなかった、とか何らかの例外や異常事態を伝える場合なのではないでしょうか? もちろんnilを返さずに、直接、例外を投げても良いのですが、そうするとnilという特別な値を用意した意味が薄れる気がします。 こういう場合に、n

    mnru
    mnru 2010/02/13
  • Sukuna

    SukunaはOO拡張を最初から組み込んであるForth dialectです。 Mops、Joy、Rubyなどに影響を受けて作られました。 関数定義 { square dup * } または { square | x | x x * } Bank Account class BankAccount float dollars accessor { deposit: self :dollars :+ self :setDollars } { withdraw: :negate self :dollars :+ 0 :max self :setDollars } end BankAccount :new -> MyAccount 200 MyAccount :setDollars MyAccount :dollars :p cr # 200.000000 50 MyAccount :depos

    mnru
    mnru 2010/02/13
  • The Log of the No22 - Concatenative

    _ [言語] Concatenative Lispがブラックホールのような存在だと言われることの原因の一つに、現代的なプログラム言語の多くがlambda calculusを理論的な核にしていることが挙げられるのではないかしらん。 そしてlambda calculusへのマッピングでの理解が困難な言語は、一般に、抽象度の低い原始的な言語であると理解されてきた面が否めないのではなかろうか。 今、lambda calculusベースの言語を仮に「ラムダの子」と呼ぶとする。 「ラムダの子」は数が多く、そしてまた多くの言語がこれら「ラムダの子」の眷属となっている。 ところで、ある少数の言語は「ラムダの子」たちとは異なった生い立ちを持っていた。 このような言語にはAPLやJ、BackusのFPやその一族などがある。 彼らはcombinatory logicあるいはFP systemと呼ばれ

    mnru
    mnru 2010/02/12
  • The Log of the No22 - それは逆ポーランドじゃない

    _ [言語][Forth][Joy] それは逆ポーランドじゃない(1) 一応、この前のエントリの続き・・・なのかな? Joyの(中の人の)指摘として、我々スタック族が使っている記法は、当は逆ポーランド記法じゃない、というものがあります。 逆ポーランド記法の元となるポーランド記法は、1920年頃ポーランド人論理学者Jan Łukasiewiczによって考案されたものだそーですが、ポーランド記法では括弧を使わなくても式の意味が一意に決まることが利点として知られています。 ということは演算子のarityは既知であることが前提であるわけで、その意味では可変長引数をとるLispの記法もまたポーランド記法ではありません。 さて、それはともかくとして、ポーランド記法を左右反転したものが逆ポーランド記法、そしてその逆ポーランド記法を採用したのがFORTHやPostscriptなどの「スタック族」

    mnru
    mnru 2010/02/05
  • 1