netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2005-06-03 [長年日記] ▲
_ [AspectJ][ツール] 部分評価を使った最適化 ▲
SCoPE Compilerをリリースしますと増原先生のannounceが流れていた. partial evaluation して if ポイントカットをコンパイル時にできるだけ解決する(たとえばシグネチャの文字列に対する正規表現マッチなどが静的に解決される)という青谷さんがSPA-SUMMER 2004のときに発表していた研究成果.
現時点(6/3 13時)では,DistributionやExamplesがNot Foundだったけど…….
15時追記: 直ってました. ダウンロードしてさっそく導入してみたものの,Cygwinだと動かない. ClassNotFoundやらInternal Compile Error とか吐かれたりしたので, Program Files の間の空白が気になったのでダブルクォートの適用,パス区切りの ":" と ";","/" と "\" の違いを全部変更してみた.
# 元のバージョン: 実行時に can't find classfile のエラーが起きる # 長いので改行入り REQUIRED_CLASSPATH=${SCOPE_BASE_DIR}/lib/static_if.jar: ${SCOPE_BASE_DIR}/lib/abc_extention.jar: ${SCOPE_BASE_DIR}/lib/abccomplete.jar: ${SCOPE_BASE_DIR}/lib/aspectjrt.jar java -classpath "${REQUIRED_CLASSPATH}" -Dscope_jars="${CLASSIC_CLASSPATH};${CLASSPATH}" -Xmx256M tao.static_if.Main $*
オリジナル版では,
-Dscope_jars
に渡す引数がCLASSPATH
になっているが,ここをREQUIRED_CLASSPATH
にしたら
エラーは出なくなった.Cygwin で動作させたバージョンは次のとおり.
# 動いたバージョン: やはり1行が長いので途中改行入り SCOPE_BASE_DIR="c:\java\scope" CLASSIC_CLASSPATH="C:\Program Files\Java\j2re1.4.2_08\lib\rt.jar" REQUIRED_CLASSPATH="${SCOPE_BASE_DIR}\lib\static_if.jar; ${SCOPE_BASE_DIR}\lib\abc_extention.jar; ${SCOPE_BASE_DIR}\lib\abc-complete.jar; ${SCOPE_BASE_DIR}\lib\aspectjrt.jar" java -classpath "${REQUIRED_CLASSPATH}" -Dscope_jars="${CLASSIC_CLASSPATH}:${REQUIRED_CLASSPATH}" -Xmx256M tao.static_if.Main $*
このツール,Java 1.4 のランタイムとJ2SE5.0が両方必要という謎の仕様だけれど,abcで実装されているようなので,言語拡張とかを実装実験したい人向けの良いサンプルになりそうな予感.
早速のダウンロード&問題点のご指摘ありがとうございました。スクリプトはすぐに修正しますのでお許し下さい。
お試し頂き, ありがとうございます. 只今修正バージョンをアップロード致しました. どうもすみませんでした.
> このツール,Java 1.4 のランタイムとJ2SE5.0が両方必要という謎の仕様だけれど
すみません, コンパイラを書くのにgenericsを使ってしまい, 一方でabc(正確には内部で使われているsoot)が, java5のrt.jarと組み合わせると上手く動かない, というのが原因だったりします…….
修正していただき,ありがとうございます.Cygwin版スクリプトも配布アーカイブに含めていただいたようで,私のようにWindows環境でメインの開発をしている人間にはありがたいことです.