2007-01-01から1年間の記事一覧

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

なぜ,ブレークポイントはソースコードに埋め込まないのに,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個もしらない)

Attribute grammar

論文で出てきた言葉をそのまま写しているだけだから,英語のタイトルばっかり続くけど, attribute grammar というものが論文でしょっちゅうでてくるからメモ.http://www.cs.uiowa.edu/~hzhang/c123/Lecture3.pdfようするに,構文解析結果に意味づけを付加…

Adaptive Parser

で検索するとなんか自然言語処理の論文がひっかかるのでなかなか見つからない.やりたいことは: (ab (bc cd) def) を (ab (b c cd) def) に変えたとき (b c cd) の部分だけを再パースして,その前後はパースをやり直さない,というもの.前回のライブラリを…

Adaptive Functional Programming in Java

Excelは関数型言語 とか, Incremental Evaluation とかいう話に関連して,今週読んだ論文:Adaptive functional programming (ACM Transactions on Programming Languages and Systems (TOPLAS))関数型言語において,入力が変化したときに自動的に出力を(…

ちょっと宣伝

自分の研究ページのリンクが切れまくっていたのでなおした,ついでにページ内で公開しているもの宣伝 Tonyu System - ゲーム作成言語と環境 Nigari System - Tonyuの機能をけずってプログラミング教育に特化したもの Aroe - AJax開発環境 soyBasic - 携帯で…

Eclipse プラグイン覚書

EclipseでXMLをエディタ作り,Eclipseのプラグイン作りがどれだけ大変かを学習する.教科書 − amazon:4839922195 Eclipseプラグイン開発徹底攻略の7章(テキストエディター) ハイライトを増やす p156-159 教科書どおりに,CDATA がハイライトされるようにし…

足りないもの

ということはコード補完の論文も.と思ってCode Completion とかCode Assistとかで探してもこれ くらいしかまだ見つからない.意外とすきま研究か?

これで作りたいもの

上で述べたような"Semantic Grammar" を書いておくだけで,Eclipseのプラグインを自動生成してくれる仕組みが欲しい.もちろん,次の機能は全部ついてくるものとする. リアルタイムなコンパイル コード補完 リファクタリング エラー修正候補

Semantic Grammar

昨日の論文の中身:Semantic Grammar,つまり意味まで構文定義に書く方法...なんか普通にyaccとかに取り入れられている気もする command = variable ':=' expression ただし env :: name-> type com :: s -> s ( sはstateのこと ) exp :: s -> val var ::…

意味解析まで面倒みるパーサジェネレータ

日頃から「パーサジェネレータは使えない.構文解析しかしてくれなくて,意味解析はサポートしてくれないから」とぼやいていたが,ちゃんと意味解析も考慮したパーサジェネレータ(というかコンパイラジェネレータ)もあるみたいだ.1982年から. A semantic…

SCI探訪

SCIENCE CITATION INDEXprogramming で検索すると次の3件.ACMは読める. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMSJOURNAL OF LOGIC AND ALGEBRAIC PROGRAMMINGMATHEMATICAL PROGRAMMING game で検索すると ***** No matches found for the q…

Incremental Evaluation その2

7月20日の続き?On the optimality of change propagation for incremental evaluation of hierarchical attribute grammarsプログラムの一部分の書き換えによる影響範囲が伝播するのを,どうやって最適化するかという話.

Game conference で検索

ゲームのネタで真面目な学会発表ができるかどうか? Game Developers Conference GDC 2008 Call for Submissions Call for Submissions for the Game Developers Conference 2008 will open on August 15th 2007 and will remain open until October 1st 200…