JDTもまいったする

javaソース を自動生成してみた.これだけインナークラス使いまくりだと,一文字書き換えただけでEclipse が10秒くらいかたまる.

ひらメソッドの循環参照問題.

あるクラス A がある class A extends B Bは未読なので読みに行く B の中で A を参照している と,無限ループになってその先が読めなくなる のはどうすればいいのでしょう.

pukiwiki 自動整形ツール

http://www2.eplang.jp/hoge1e3/util/outline.cgi pukiwiki にソースを貼り付けるときに,自動的に行頭をスペースをおぎなう. タブはスペース4個におきかえ ただし行頭が- だと何もしない(JDTのソース読むサイトでは,箇条書きをつかってコメントを記入し…

JDT のソースを読むWiki

minixのソースを読むWikiw にならなって,ひらメソッドで,JDTのソースを読むWiki] を立ち上げた. プログラムをPukiwikiに直貼り付けると不恰好になる.書くとそれっぽく出してくれるプラグインとかあるかな.あとクラス名からリンクが生成されるとか.

ひらメソッドで読むJDT

JDT(Eclipse のJavaコンパイラ) はどれくらい苦労して実装されているのかを調べたくなったので,ソースを読むことにした.package org.eclipse.jdt.internal.compiler.ast; の頭から開始 AbstractMethodDeclaration.java public abstract class AbstractMet…

<Ruby>はタグです.

<Ruby>の括弧を半角文字で書いたら何も表示されない,とおもったらルビを振るためのHTMLタグだったことを思い出す.Rubistの皆さんご注意を.

String<Ruby> とか String<SQL> とか

以前も書いたし,あっちとかこっちとかでコメントにも書いているけど,文字列に言語情報をもたせて,静的にチェックする仕組みはないのかな.String<Ruby> なら,Rubyのプログラムとして正しいプログラムしか格納できないとか.「マクロ定義で言語仕様を拡…

Kanasan.JS

前回はprototype.js を読んだが,今回は オライリー本 をひたすら読むというもの. ライトニングトークでは,Aroeとかswf 生成のためのアセンブラの話(実はazukiで実装).「ライトニングトーク」と意識してやったのは初.質問時間が設定されないのでちょっと…

Azuki 動くか?

Tonyuのプラグインが,なんとかTonyuのコードからJavaのソースを吐くところまではこぎつけたけど,Eclipseのルールにのっとってビルダをたたいたりするあたりでつまずき中.

先人の苦労話

電子情報通信学会誌の会誌が来た.いつも電子電気な記事が多くて分野違いなのだが,今月の特集は,昔研究とかで苦労した話が載っていた.こういうのなら分野が違ってもそれなりに読める.テレビ電話の標準を策定しているさなか「会議ってさーあんまりテレビ…

実装なき発表はつまらない

それは,単に 「動くものがプロジェクタに投影されたほうがおもしろい」 ではなく 「実装しないと,システムの詳細,全体が本人にも理解できない」 からである ような気がしてきた.

あなたは,どっち? 〜 IDE派と手打ち派

ここに,IDEに頼りまくりのプログラマと,エディタで手打ち&コマンドラインコンパイルなプログラマがいました.あなたは,どちらの意見により多く賛成できますか?IDE派はいいました 「同じことを2度3度書きたくないから,補完機能は重要」 手打ち派はいい…

デバッガに関連してドキュメント生成についても

なぜ,ブレークポイントはソースコードに埋め込まないのに,JavaDocみたいなドキュメントはソースコードに埋めなければいけないのだろうか.コード内コメントはあまり書きたくないほうなので,メソッドについての説明を別ファイルに書いておいて,変更がおき…

デバッガを使わない10の理由

普段,統合開発環境にはすごいお世話になっているが,なぜかまったく使わない機能にデバッガがある.その理由を挙げてみる 止まる 止まった時点で普通の動作と違う ステップ実行しながら自機を動かして弾をうてるか? 条件つきブレークポイントの問題 「青い…

プラグインわからないところ覚書

プロジェクト新規作成時にいくつか自動的にファイルを置きたいのだがどうすればよいのだ.この本 は,空のプロジェクト作ったところで終わっているし.追記: IProject.getFile("test").create(... ) だって.存在しないリソースをget してから,create する…

プラグイン覚書

なぜかHelloWorldサンプルプラグインすら「The Feature is currently unavailable」とか出て使えなくなっていた...と思ったら,コンパイラは 5.0互換のクラスを吐いていたのに,Eclipse.exe がJRE1.4 を使っていたから. プラグインのテスト実行をすると…

新規作成 → プログラミング言語

Azuki については1月に某所で発表予定.それに向けたデモを作成中.コンセプトは 自作言語を作ったはいいが,開発環境まで作っていられない. EclipseのJava開発支援機能みたいなすてきな機能を自作言語でも使えたらなぁ... そうだ.言語仕様を書くだけで…

やっぱりWebでプログラミング?

どう書く.org - http://ja.doukaku.org/いろんなアルゴリズムを出してその解をいろんな言語で投稿するサイト. なんか,これこそWebで実際にプログラムが動かせたらもっと楽しいだろうに,と思わせてくれるサイトである.どんな言語で投稿されたかも一覧でで…

prototype.js を読んでみる会

以前 言語開発合宿 でお世話になった ujihisaさん企画.http://cotocoto.jp/event/2429prototype.jsは便利と聞いているが,触ったことがないので,これを機に使ってみようかと思ってソースを読むところから始めた.あと,ソースコードを読む集まり,というの…

言語仕様書き直し

http://d.hatena.ne.jp/hoge1e3/20071023 に書いたサンプル言語の言語仕様はS式で読みづらいので,もうすこし理解可能な形に整理した(azuki からはまだ読めないけど) program := empty | stmt program stmt := decl | let | typedef typedef := 'type' nam…

仮称 「azuki」

前回,前々回 から言っている「セマンティクスを数式で書くパーサジェネレータ」の名前を一応azuki としておく.TonyuとかsoyBasicとか,豆に関連するものを適当につけているから.

フィールド名変更機能の自動生成

先日の続き.プログラムの元の意味を変えずに,フィールド名変更を行う機能ができた.http://www2.eplang.jp/tonyu/adaptive/AdaptiveParser071025.zip(zip解凍後,test.batを起動すれば一応動きます) Before Refactoring: type String {} type int {} type …

セマンティクスを数式で書くパーサジェネレータ

Eclipseのようなリファクタリングやら,コード補完やらの機能を,自分の作った「俺言語」でも使えるように自動生成したい,という目標のもと,パーサジェネレータを製作中.http://www2.eplang.jp/tonyu/adaptive/AdaptiveParser071023.jar (jar解凍後,test…

Haskell2Java

HaskellのプログラムをJava VMで動かす,というものがあるらしいhttp://www.cs.rit.edu/~bja8464/lambdavm/しかし... darcs ってなんだろ...CVSのお友達らしい.面倒でインストールしておらず $ darcs get http://darcs.brianweb.net/hsutils $ make -…

Outer context

只今読み中の論文Prototyping realistic programming languages based on formal specifications: Arnd Poetzsch-Heffter, Springer-Verlag 1997まだ流し読み中だけれども,気になる記述があった.P747 FCT encl_method( Exp@ E ) Method@: IF Method@ M THE…

上に文法を書いて,下の文章を解析

前回のをバージョンアップhttp://www2.eplang.jp/tonyu/adaptive/grammarApplet.html(JavaAppletが起動します.ソースあり) 左上に文法定義を書くと,右上に文法定義の構文木が出る. 右下に,上で決めた文法にしたがって文字列をかくと,右下に文字列の解…

パーサが必要な部分だけを書き換えている様子を可視化

Eclipseっぽいインクリメンタルなコンパイルを行うための試作品.http://www2.eplang.jp/tonyu/adaptive/ (JavaAppletが起動します.ソースあり) 左にソースファイル,右に構文木が出る. プログラム(というかS式)を書き換えると,その周辺だけが消去・…

もう一品追加

家かえるまでが言語開発合宿 なので,帰るまでにもう1つ作った.ってこれも言語じゃなくてパーサだ 無限リストパーサ 実行例 >java parse.Parser (ab (cd de) ef )|?SINGLETON-2:19 〔'(' 〔〔〔〔'' 'ab'〕 〔'(' 〔〔〔'' 'cd'〕 'de'〕 ')'〕〕〕 'ef'〕 …

言語開発合宿

言語開発合宿 に参加.2泊3日のうちにプログラミング言語をつくるというすごい企画.最初は 代入可能な純粋関数型言語 を作ろうとしたが,3日(というか途中参加なので2日)では絶対完成しなさそうなので,ネタに走る. bioParser - 構文解析するいきものた…

で,これを実装しているパーサジェネレータってあるの?

yacc は,上位から下位に値を渡す機能はなさそうだし...なんかこの構文みているとPrologぽいから,Prologで動くパーサジェネレータをあたってみるか(って1個もしらない)