Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Matzにっき(2006-01-17)
[go: Go Back, main page]

«前の日記(2006-01-16) 最新 次の日記(2006-01-18)» 編集

Matzにっき

<< 2006/01/ 1 1. 元旦
2 1. 出産
2. 帰省
3. 到着
3 1. デジタル体重計のユーザインタフェース
4 1. Classbox
2. Classboxの実装
5 1. 帰宅
2. PCレスライフ
6 1. PC修理
7 1. 雪かき
2. プログラミング言語SRU
8 1. 断食安息日
2. あーめん
3. 筋肉痛・体調不良
9 1. 米子
10 1. オープンソースマガジン3月号
11 1. 日経Linux 3月号
12 1. Charming Ruby Compiler
2. The Open Nature Of Ruby
13 1. ニート娘に悩む親
2. Python Status Update
3. 泥縄
14 1. 宣教師のお手伝い
2. Simplified/Traditional
3. ボーリング
15 1. 代打不発
2. セミナリー補習
16 1. 不達
2. 誕生日
17 1. 萌え指向プログラミング言語「萌香」
2. Classbox/R
18 1. CommonLispのpackage
19 1. これは便利! と思える elisp プログラムを教えてください
20 1. 「オブジェクト指向神話」神話
21 1. 片付けの日
2. 食べ放題は危険
22 1. 松江
2. お客さま
23 24 1. ruby_block撲滅運動
2. 『よくわかる現代魔法
25 1. 遅延Enumerable
26 1. Thinkpad復活
2. Rastに挑戦?
3. オープンソースの全文検索エンジンの速度性能比較」のご紹介
27 1. 「Javaの生みの親」に聞く「AJAX、LAMP、Ruby on Rails」
2. 「オブジェクト指向」改め「抽象データ指向」
28 1. LINQ
2. シガーソングライター(もどき)
29 1. 慈愛
2. 天国
30 31 1. サブジェクト指向
>>
Dr.Web 予測するアンチウイルス  Hiki も使った新サイト、10/18 リニューアルオープン!

2006-01-17 [長年日記]

_ [言語] 萌え指向プログラミング言語「萌香」

えーと、なんというか...。

しかし、外見がアレな部分を取り除いて本質を見るとなかなか興味深いものがある。 まったくメジャーになりそうな方向性ではないが、そういうことを目指すものではないだろう。

「萌香」はRubyで実装されている。

_ [Ruby] Classbox/R

Smalltalk(Squeak)用のClassbox、Java用のClassbox/Jを参考にしつつ、 Classbox/Rをデザインしてみる。

しかし、Rubyでは

  • 実体は単なるオブジェクト
  • クラス名は単なる定数に過ぎない
  • クラス名はネストできる

などの理由で、そのままは適用できそうにない。Classboxに似た概念は必要そうだが、 ちょっと違うものになりそう。

あれ、待てよ。

Classboxから派生する二つのマイナーなアイディアを組み合わせると、 かねてからの懸案であった

  • method combination (sort of AOP)
  • selector namespace
  • private instance variable

相当(追記: これらの機能が解決しようとしていた問題の解決)を一度に実現できるような気がしてきたぞ。

詳細を書くにはこの余白は(ry (またか)。

冗談はともかく、なかなか良さそうなアイディアのような気がしてきた。 しかし、良さそうと思っても実際にやってみるとそうでもない場合はたびたびなので、 もうちょっと考えてみよう。確実に言語(クラスまわり)が複雑になるので、 仕様の複雑さや性能とのトレードオフになるな。

まあ、この辺は(多重代入とかと違って)元があんまり複雑じゃないから、 仕様の複雑さの方はあんまり問題にならないかなあ。

本日のツッコミ(全8件) [ツッコミを入れる]
_ Matz Jr. (2006-01-20 13:32)

娘です。
「萌香」ってなに??
読んだけど、ツッコミ入れにくいなぁ・・・。
とりあえず、「読んだ」という報告まで。

_ 通りすがり (2006-01-20 19:21)

「萌香」って要するに Scheme を Ruby で実装して、日本語向きにちょっと変えたって感じでしょうか?

Scheme: (define a 123)
萌香: (a 123 define)
又は: 「a 123 定義」
又は: 「a を 123 に 定義 する」
又は: あのね a を 123 に 定義 します。

Scheme: (lambda (x) (+ x 2))
萌香: ((x) (x 2 +) lambda )
又は: 「(x) (x 2 足す) 仕事」
又は: 「(x) を (x に 2 を 足す) 仕事」
又は: あのね (x) を (x に 2 を 足す) 仕事 します。

Scheme: (define +2 (lambda (x) (+ x 2)))
萌香: あのね 足す2 を 「(x) を (x に 2 を 足す) 仕事」に 定義 します。

_ kou (2006-01-21 01:16)

助詞の類がことごとくフェイクってのが(w

_ 野分 (2006-01-21 02:27)

> 萌香
Lisp + FORTH (Mind) といったところですかね?
素直にMindで良いような気もしますが……

_ こさこ (2006-01-21 08:10)

ここでのselector namespaceは、Classboxと同じものとして書いているのでしょうか?違うものとして書いているのでしょうか?

_ まつもと (2006-01-21 10:08)

selector namespaceやclassboxが解決しようとしていた「なにか」(スコープを限定したメソッド)のことです。「機構」で「問題」を表現するのは不適切でしたかね。

_ みずしま (2006-01-22 20:27)

> Classboxから派生する二つのマイナーなアイディア

これってどういうものなのでしょうか?教えていただけると、幸いです。

_ こさこ (2006-01-22 20:57)

了解しました。selector namespaceとClassboxの違いが何なのか気になっていたので。今見直すと、普通に読めばわかる筈でした。

お名前:
E-mail:
コメント:
本日のリンク元
アンテナ
検索

RSS feed meter for http://www.rubyist.net/~matz/ Creative Commons License This work is licensed under a Creative Commons License.