Haskellに悩んで一年、その後、何気なく始めたF#でまる二年、それはそのまま「関数言語歴」になる。
テーマはずっと、プログラミング言語造り。
プロトタイプベースの、オブジェクト指向言語、JSもどきを作ってる。
当初、F#でパース、C#で評価という構成だったのを、全てF#で書いた。
F#化の過程は、思考、視点が変わるみたいで、自分が情けなく、悲しくなることが多いのだけれど、それは同時に面白い発見でもあって、楽しくもある。
それは、「F#」が、緩やかとはいえ、やはり「関数言語」だからだろうと思う。
昨年いっぱいかかってしまった、全F#版を、2011年1月1日公開した。
(2011/01/01 記 過去形にしただけじゃないか)
長いスランプの後、2011/09 復活。
復活したんだろうなあ。たぶん。・・・また落ち込むかも?
大雑把な履歴
○2008年
○2009年
new
Cm あれこれ 言語仕様や、製作の過程、いろいろ
CMi最新版は、上記のページで、ダウンロードできます
完了してる記事
(別の言い方をすると、陳腐化してる記事。メンテしてないからなあ)
会話型Cm CMi を最初から、見直し、まとめ。(完了)
F# の OOPとNamespace、Module (完了)
F# で「Eval」を実装、その過程(完了)
F# の OOPとNamespace、Module (完了)
2011/09/15
いやいや、まだ油断はならない。
またぞろ、怠惰な老人性欝に落ち込む可能性は大。
でも、こいつ(Cm)をやり始めると、やっぱ、なんか、・・・楽しい。
・・・、うん、楽しい。
2011/01/01
Cm 全てF#版、公開
Cm あれこれ でダウンロードできます。
ここには、言語仕様もあります。
2010/12/17
長いことかかった「Eval」のF#化、ひと段落。
F#のOOPも含め、いいお勉強になったなあ。
2010/08/11
「Eval」のF#化、C#の実装の???が多くて、コメントをどんどん書き始めたが。
やっぱり、過程をドキュメント化しておこうと思い立って、
F# で「Eval」を実装、その過程を書き始めた。
2010/07/11
ようやく、F#のOOP関連まとめを完了して、「Eval」のF#化へ。
先は長い。
2010/06/27
隠居仕事が忙しいのと、ちと目標を見失って、4,5,6月を無為に過ごしてしまった。
Cmの「Eval」をF#化しようと、F#のOOPとNamespace、Module まとめ開始。
2010/03/07
ずっと気になっていた「closure」を実装。
2010/01/03
「Cm」のソースが全て通るところまでデバッグして、ひと段落。
「prototype」ベースの考え方を整理したほうが良さそう。
やりたいことは山ほどあって、あれこれ構想するのは楽しいんだけど、もう少しデバッグしなくちゃいけないなあ。
でも、好き勝手にやってるんだし、まあいいか。(ほんと、こればっかし)
2009/12/31
パーサの見直し、越年のみこみ。
急ぎすぎはだめですね。年内に一区切りつけようと思っていて、そうしたつもりが、ぼろぼろと・・・。
「みこみ」ではなく、越年確定。
2009/11/27
パーサは「作り散らかし」てきた、と言う感じ。
VS環境でも、ステップ実行は、なにやら挙動がおかしくて、デバッグしにくかったのも一因。
まあ、それは言い訳で、早い話が、手も足もでなかった状態から、流れが見えて、うれしくて書きまくっていた、というのが本音。
でも、いくらなんでも、見直しの時期だろう。ドンくさいけど、手掛かりもできたし。
もう少しで、丸二年になるんだなあ。
2009/10/29
prototypeベースのOOP化、まだまだ未実装やバグが山とあるけれど、そこそこに格好を付けたので、一旦休止。
仕様まとめ、見直しとか、ガーベジコレクタの実装の構想とか、パーサの効率アップとか、考えてみようと思う。
2009/09/25
prototypeベースのOOP化、醜くて、バグだらけだけれど。
もう少し、やらなくちゃ、と思いながら、しがらみが・・・。
2009/05/31
CmをOOP化するために、JavaScriptで、プロトタイプベースOOPのお勉強開始。
「ECMA-262 3rd Edition」のpdfを見ただけで、一人じゃ、インプリメントできないよ、とうんざりしてしまう。
各々の仕様を、採用するか否か判断するためにも、お勉強に時間がかかりそー。
その間に、F#も忘れないよう、少しづつやらにゃー。
2009/03/11
Cm(シー マイナー)というよりは、JSm(JavaScript Minor)って感じだけれど、一旦、習作完了ということにしようと思う。
配列データの初期化とか、print文のフォーマット指定とか、いろいろあるけれど、ちょっと隠居仕事に、1月弱精を出さないといけない。
2009/02/21
やっぱり、当初の目標のCm(シー マイナー)に向かってお勉強を再開する。
オブジェクトなんてなくて、80年代前半だったろうか、8ビットマシンでCP/Mかなんかの上で動いた、なんたらCみたいなやつが、目標だ。
当時は、CPUに浮動小数点ユニットなんか無かったから、実数は、ソフトで対応していた。まてよ、そもそも整数しか使えなかったんじゃなかったか。
今時だから、実数くらい使えてもいいよなあ。
Forthは「FParsec - A Parser Combinator Library for F#」を1/5くらいしか読まないでやっちゃったけど、今回はちょいとふんどしを締めてかからないと。
早く「OperatorPrecedenceParser」の「ExpressionParser」にたどり着きたい。
2009/02/19
F#、FParsecでForthが一応完成した。
Haskellで言語作成を目指して、1年2ヶ月、F#に宗旨替えしたけれど、Forthは19日間でできた。
本家Forthのページを見ると、くらくらするような盛りだくさんの機能があるけれど、FParsecによる習作としては、このあたりで一応止めておこう、ということだ。
作成の紆余曲折は、FParsecのページに、ソースの履歴は、私のForthのソースに書いてあります。
2009/02/06
2月に入って、思いつきで、以前やったHarrorthの、F#版を自分で書いてみようと思った。
FParsecは、Parsec以上に情報が無い。だから、数日、ただただ途方にくれていたのに、なんだったんだろう。
ASTをUnion型で書いてみて、へー、いけるのかな、から始まった。
そしたら、F#よたよた歩きの初心者が、今日挫折するか、あしたこそだめだろう、とやってるうちに、マイForth(もどき)ができちゃった。
2009年2月、の第一週は、私にとって、記念すべき週になりました。
舞い上がったり、落ち込んだり、
希望に燃えたり、絶望にさいなまれたり。
そうやって、一年があっという間に過ぎ去ってしまった。
そんななかで、昨年末から、F#のお勉強を再開した。
「Foundations of F#」の1/5くらい読んだところで休止していたやつだ。
例によって、そこまで読んだことさえ忘れていて、最初からやり直し。
こんどは、過程を「F#イントロ」に書いていく。
Haskellをあきらめたわけではない。随時、比較的に理解していこうと思う。
昨年後半にはじめた、里山歩きの様に、いつまでたっても高い山には登れず、里山(イントロ)をうろうろしているけど、何かの拍子に、突破口が開けないでもなかろう。
別に、あせる必要はない。
昨年末だったか、某ニュースキャスターの癌闘病記を「残日うんぬん」とタイトルしていた。
残された「短い」日々、というニュアンスで、気がめいった。
でも、私は、藤沢周平の「三屋清左衛門残日録」のように、「日残りて、暮るるにいまだ遠し」と思いたい。
テーマはずっと、プログラミング言語造り。
プロトタイプベースの、オブジェクト指向言語、JSもどきを作ってる。
当初、F#でパース、C#で評価という構成だったのを、全てF#で書いた。
F#化の過程は、思考、視点が変わるみたいで、自分が情けなく、悲しくなることが多いのだけれど、それは同時に面白い発見でもあって、楽しくもある。
それは、「F#」が、緩やかとはいえ、やはり「関数言語」だからだろうと思う。
昨年いっぱいかかってしまった、全F#版を、2011年1月1日公開した。
(2011/01/01 記 過去形にしただけじゃないか)
長いスランプの後、2011/09 復活。
復活したんだろうなあ。たぶん。・・・また落ち込むかも?
大雑把な履歴
○2008年
○2009年
├ 2009/01/15 一年経過してしまった
├ 2009/02/06 2月にはいって、突然ダッシュ
├ 2009/02/19 F#、FParsecでForthの習作完成
├ 2009/02/21 F#、FParsecでCm(シー マイナー)に向かう
├ 2009/03/11 F#、FParsecでCm(シー マイナー)とりあえず第一ステップ完了
├ 2009/05/31 CmをOOP化するために
├ 2009/09/25 prototypeベースのOOP化、醜くて、バグだらけだけれど
├ 2009/10/29 prototypeベースのOOP化、一旦休止
├ 2009/11/27 パーサの見直し CMi作成
└ 2009/12/31 パーサの見直し CMi作成、越年のみこみ
○2010年├ 2009/02/06 2月にはいって、突然ダッシュ
├ 2009/02/19 F#、FParsecでForthの習作完成
├ 2009/02/21 F#、FParsecでCm(シー マイナー)に向かう
├ 2009/03/11 F#、FParsecでCm(シー マイナー)とりあえず第一ステップ完了
├ 2009/05/31 CmをOOP化するために
├ 2009/09/25 prototypeベースのOOP化、醜くて、バグだらけだけれど
├ 2009/10/29 prototypeベースのOOP化、一旦休止
├ 2009/11/27 パーサの見直し CMi作成
└ 2009/12/31 パーサの見直し CMi作成、越年のみこみ
├ 2010/01/03 パーサの見直し CMi作成、ひと段落
├ 2010/03/07 closure 実装
├ 2010/06/27 F#のOOPとNamespace、Module まとめ開始
├ 2010/07/11 F#のOOPとNamespace、Module まとめ完了して、Eval F#化開始
├ 2010/08/11 Eval F#化、ドキュメント化開始
└ 2010/12/17 Eval F#化、ドキュメント化ひと段落
○2011年├ 2010/03/07 closure 実装
├ 2010/06/27 F#のOOPとNamespace、Module まとめ開始
├ 2010/07/11 F#のOOPとNamespace、Module まとめ完了して、Eval F#化開始
├ 2010/08/11 Eval F#化、ドキュメント化開始
└ 2010/12/17 Eval F#化、ドキュメント化ひと段落
new
CMi最新版は、上記のページで、ダウンロードできます
完了してる記事
(別の言い方をすると、陳腐化してる記事。メンテしてないからなあ)
会話型Cm CMi を最初から、見直し、まとめ。(完了)
F# の OOPとNamespace、Module (完了)
F# で「Eval」を実装、その過程(完了)
F# の OOPとNamespace、Module (完了)
2011/09/15
いやいや、まだ油断はならない。またぞろ、怠惰な老人性欝に落ち込む可能性は大。
でも、こいつ(Cm)をやり始めると、やっぱ、なんか、・・・楽しい。
・・・、うん、楽しい。
2011/01/01
Cm 全てF#版、公開Cm あれこれ でダウンロードできます。
ここには、言語仕様もあります。
2010/12/17
長いことかかった「Eval」のF#化、ひと段落。F#のOOPも含め、いいお勉強になったなあ。
2010/08/11
「Eval」のF#化、C#の実装の???が多くて、コメントをどんどん書き始めたが。やっぱり、過程をドキュメント化しておこうと思い立って、
F# で「Eval」を実装、その過程を書き始めた。
2010/07/11
ようやく、F#のOOP関連まとめを完了して、「Eval」のF#化へ。先は長い。
2010/06/27
隠居仕事が忙しいのと、ちと目標を見失って、4,5,6月を無為に過ごしてしまった。Cmの「Eval」をF#化しようと、F#のOOPとNamespace、Module まとめ開始。
2010/03/07
ずっと気になっていた「closure」を実装。
2010/01/03
「Cm」のソースが全て通るところまでデバッグして、ひと段落。「prototype」ベースの考え方を整理したほうが良さそう。
やりたいことは山ほどあって、あれこれ構想するのは楽しいんだけど、もう少しデバッグしなくちゃいけないなあ。
でも、好き勝手にやってるんだし、まあいいか。(ほんと、こればっかし)
2009/12/31
パーサの見直し、越年のみこみ。急ぎすぎはだめですね。年内に一区切りつけようと思っていて、そうしたつもりが、ぼろぼろと・・・。
「みこみ」ではなく、越年確定。
2009/11/27
パーサは「作り散らかし」てきた、と言う感じ。VS環境でも、ステップ実行は、なにやら挙動がおかしくて、デバッグしにくかったのも一因。
まあ、それは言い訳で、早い話が、手も足もでなかった状態から、流れが見えて、うれしくて書きまくっていた、というのが本音。
でも、いくらなんでも、見直しの時期だろう。ドンくさいけど、手掛かりもできたし。
もう少しで、丸二年になるんだなあ。
2009/10/29
prototypeベースのOOP化、まだまだ未実装やバグが山とあるけれど、そこそこに格好を付けたので、一旦休止。仕様まとめ、見直しとか、ガーベジコレクタの実装の構想とか、パーサの効率アップとか、考えてみようと思う。
2009/09/25
prototypeベースのOOP化、醜くて、バグだらけだけれど。もう少し、やらなくちゃ、と思いながら、しがらみが・・・。
2009/05/31
CmをOOP化するために、JavaScriptで、プロトタイプベースOOPのお勉強開始。「ECMA-262 3rd Edition」のpdfを見ただけで、一人じゃ、インプリメントできないよ、とうんざりしてしまう。
各々の仕様を、採用するか否か判断するためにも、お勉強に時間がかかりそー。
その間に、F#も忘れないよう、少しづつやらにゃー。
2009/03/11
Cm(シー マイナー)というよりは、JSm(JavaScript Minor)って感じだけれど、一旦、習作完了ということにしようと思う。配列データの初期化とか、print文のフォーマット指定とか、いろいろあるけれど、ちょっと隠居仕事に、1月弱精を出さないといけない。
2009/02/21
やっぱり、当初の目標のCm(シー マイナー)に向かってお勉強を再開する。オブジェクトなんてなくて、80年代前半だったろうか、8ビットマシンでCP/Mかなんかの上で動いた、なんたらCみたいなやつが、目標だ。
当時は、CPUに浮動小数点ユニットなんか無かったから、実数は、ソフトで対応していた。まてよ、そもそも整数しか使えなかったんじゃなかったか。
今時だから、実数くらい使えてもいいよなあ。
Forthは「FParsec - A Parser Combinator Library for F#」を1/5くらいしか読まないでやっちゃったけど、今回はちょいとふんどしを締めてかからないと。
早く「OperatorPrecedenceParser」の「ExpressionParser」にたどり着きたい。
2009/02/19
F#、FParsecでForthが一応完成した。Haskellで言語作成を目指して、1年2ヶ月、F#に宗旨替えしたけれど、Forthは19日間でできた。
本家Forthのページを見ると、くらくらするような盛りだくさんの機能があるけれど、FParsecによる習作としては、このあたりで一応止めておこう、ということだ。
作成の紆余曲折は、FParsecのページに、ソースの履歴は、私のForthのソースに書いてあります。
2009/02/06
2月に入って、思いつきで、以前やったHarrorthの、F#版を自分で書いてみようと思った。FParsecは、Parsec以上に情報が無い。だから、数日、ただただ途方にくれていたのに、なんだったんだろう。
ASTをUnion型で書いてみて、へー、いけるのかな、から始まった。
そしたら、F#よたよた歩きの初心者が、今日挫折するか、あしたこそだめだろう、とやってるうちに、マイForth(もどき)ができちゃった。
2009年2月、の第一週は、私にとって、記念すべき週になりました。
09/01/15
がんばったり、なまけたり、舞い上がったり、落ち込んだり、
希望に燃えたり、絶望にさいなまれたり。
そうやって、一年があっという間に過ぎ去ってしまった。
そんななかで、昨年末から、F#のお勉強を再開した。
「Foundations of F#」の1/5くらい読んだところで休止していたやつだ。
例によって、そこまで読んだことさえ忘れていて、最初からやり直し。
こんどは、過程を「F#イントロ」に書いていく。
Haskellをあきらめたわけではない。随時、比較的に理解していこうと思う。
昨年後半にはじめた、里山歩きの様に、いつまでたっても高い山には登れず、里山(イントロ)をうろうろしているけど、何かの拍子に、突破口が開けないでもなかろう。
別に、あせる必要はない。
昨年末だったか、某ニュースキャスターの癌闘病記を「残日うんぬん」とタイトルしていた。
残された「短い」日々、というニュアンスで、気がめいった。
でも、私は、藤沢周平の「三屋清左衛門残日録」のように、「日残りて、暮るるにいまだ遠し」と思いたい。