トップ 最新 追記

Onion開発日記

2004|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|

ToDo:


2006-09-04

_ [Java][Ruby]凝り固まった旧世代の脳みそ

一部で?話題になってるようなので、読んでみた。…どうも論旨が良く分からない文章だなあ。段落と段落のつながりがはっきりしないせいで、何が言いたいのかよくわからない。タイトルから推測すると、旧世代のプログラマでは、新しい言語のパラダイムについていくのは難しいとでも言いたいのではないかと思うが、本文からその結論を引き出すのは無理があると思う。オブジェクト指向のためのVMとか意味がよくわからない用語が突然出てくるのもどうかと。

あと、JavaやC#の仕様についてC++と比較するなら、もう少し調べてからにしようよ、と思う。

そうすると一つ大きな疑問が出てきます。 (語弊は多いにあるが)仕組みとしてはJavaやC#は、C++にGCを付けただけの存在であって、言語体系もC++からdeleteを取っただけに留まっている理由は何なのでしょうか?

(語弊が多いという留保をつけたとしても)JavaやC#は、シンタックスこそC++に似せてあるものの、セマンティクスはかなり違うんだけど。

  • 言語組み込みのスレッド
  • 単一継承+インタフェースによる型の多重継承
  • Typesafe Enum(C++のenumとはかなり違う仕様になっている)
  • Generics(これもC++のテンプレートとはかなり違う)
  • インナークラス
  • 匿名クラス
  • ……
本日のリンク元 | 2181 | 1797 | 1789 | 1466 | 1147 | 1103 | 1102 | 1095 | 953 | 833 | TrackBack(0)

2006-09-05

_ [Onion]バグ修正

某授業中に、話を聞きながら暇つぶしにOnionでBrainFuckインタプリタのプログラムを書いていたら、処理系のバグを見つけてしまった(もちろん、自分で仕込んでしまったわけだが)。具体的には、java.lang.Character(char)をnewするコードを書いたら、charを引数に取るコンストラクタが見つからないというコンパイラのエラーメッセージが表示された。何故?と思いつつ、処理系のソースを見直してみたところ、左辺がchar型の場合の代入互換性のチェックをするコードを入れ忘れていた。早速修正したところ、無事動作するようになった。

こういうことがあると、やはりeat your own dog foodというのは重要だなあと思う。

本日のツッコミ(全4件) [ツッコミを入れる]

_ 4 [1 ]

_ j [f ]

_ 1 [4 ]

_ awufqijtp wjlqavtx [xejvhlt wehbzqmkt nhwqr ibuj cjwre bnua zwxnbf ]

本日のリンク元 | 1210 | 1143 | 1141 | 1111 | 657 | 546 | 382 | 357 | 354 | 347 | TrackBack(0)

2006-09-09

_ [プログラミング][言語]BrainFu*kによる質問

ssh.Continual経由で。

人力検索はてなで、あの変態言語BrainFu*kのコードで質問をした人が居たらしい。しかも回答者もBrainFu*kで回答する人が居る始末。よくこんなこと考え付くなあとちょっと笑ってしまった。BrainFu*kのことなんか知らないで真面目に答えた?であろう人が可哀想だが。

_ [プログラミング]bfencode

で、これを読んで任意の文字列をBrainFu*kのプログラムにエンコードするbfencodeを簡単に作れるんじゃないかと思って、ちょっと作ってみた。 といってもRubyで書いた単なるワンライナーのプログラムだが。

ARGF.each_byte{|b|b.times{print "+"};print ".>"}

このプログラムに標準入力から(ASCIIの)文字列を与えると、その文字列を出力するBrainFu*kプログラムを標準出力に出力してくれる。ただし、初期状態でBrainFu*k配列の全ての要素がゼロクリアされていることを仮定しているので、そうでないBrainFu*k処理系だと動作しない。

追記: nishioさんからのツッコミを元に、ちゃんとゼロクリアするようにしてみた。ついでにコード自体も、もうちょっと短くしてみた。

$<.each_byte{|b|$><<"[-]#{'+'*b}.>"}
本日のツッコミ(全2件) [ツッコミを入れる]

_ nishio [[-]を前につければゼロクリアされますよ ]

_ みずしま [確かにそうですね。どうもありがとうございます。 ]

本日のリンク元 | 3326 | 2959 | 2952 | 2922 | 2898 | 2424 | 1851 | 1672 | 1524 | 1456 | TrackBack(0)

2006-09-12

_ [言語]PPLサマースクール2006

午前中の圏論の話は、まず理解できないだろうと見切りをつけて、午後から参加することに。

2時間で真似(まね)ぶ関数型言語のコンパイラ

住井さんが実装した、授業用の教材である言語MinCamlについての解説。MinCamlについては、以前からOCamlの小さなサブセットらしいということは知ってはいたが、具体的にどんなものなのかはよく知らなかった。言語仕様は思ってたよりもずっとシンプルなようなので、今度ソースを眺めて勉強してみようかという気になった。あと、K正規形という中間表現があるということも、今回初めて知った。これも、機会があったら調べてみよう。

述語抽象化によるアルゴリズムの検証

産総研の田辺さんによる、アルゴリズムのモデル検査についてのチュートリアル。途中から眠気が襲ってきて寝てしまったので、内容をよくあまりよく覚えていない。

終了後、米澤君、soutaroさん、k.inabaさん、今井さん(1)、今井さん(2)たちと本郷キャンパス近くのハンバーグ屋へ。学生がよく来る店らしく、ほとんどのメニューが1000円以内なのだが、一つだけ1600円もするメニュー(サーロインステーキ定食だったか)があったので、せっかくなので注文してみたところ、ワインがついてきたりとやたら豪華だったので、びっくりした。考えてみれば1600円もするんだから、それなりに豪華で当たり前ではあるのだが、学生向け定食屋のメニューじゃねえなあと思った。

食事終了後、米澤君、soutaroさんとつくば駅まで一緒に帰ることに。東京でよく行われている技術系イベントのようなものをつくばでもできないかなあ、とかShift/Resetについての話を米澤君から聞いたりした。

本日のリンク元 | 89 | 55 | 26 | 12 | 7 | 7 | 7 | 5 | 5 | 4 | TrackBack(0)

2006-09-13

_ [Pnuts][言語]Pnuts Addict: I don't need invokedynamic

Matsにっき経由。

Pnutsの開発者である戸松さんが、JSR292で提案されているinvokedynamicは要らないと言ったという話。実際にJVMで動作する動的言語処理系の中でかなり高性能であるPnutsの開発者の言うことだけあって、説得力がある。

ところで、Pnutsって、JVM上で動作する言語処理系の中ではかなり昔からあるのに、どうして(少なくとも国内では)こんなにマイナーなんだろう。言語としては地味だからかなあ。処理系も安定しているし、便利なライブラリもそれなりにそろっているので、使い勝手は結構いいと思うんだけど。

本日のリンク元 | 17007 | 14395 | 12196 | 12026 | 11746 | 11422 | 11215 | 10713 | 10711 | 10214 | TrackBack(0)

Mizushima Kota/e-mail: i021216{at}coins.tsukuba.ac.jp/SKype ID: mizu_standard