【Eclipse】Xtend part.1 【Java】
1 :
デフォルトの名無しさん:2011/11/07(月) 12:28:46.13
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
scala?
4ね
名前と拡張子がダサいけど、結構おもしろいと思う。
これでAndroidアプリ作ってみようかなあ
Javaを自動生成する言語なんていくらでもあるんだからそんなん作るなら
JavaをC言語に変換するプログラム作ってくれよ。
GCJ遅杉重杉なんだよ。
今後の改善次第では、これがJavaの後継言語になると思っている。
次のアップデートは12月の中旬だとか。
・コンストラクタを定義できるようになる
・staticなメソッドとフィールドを定義できるようになる。
・フィールドを初期化できるようになる。
・throws-clauseを明示的に定義できるようになる。
そうだ。
クロージャの再帰もできるようにしてほしいな。
仕事で使えるレベルになるのはいつ頃なんだろうな。
期待はしている。
Xtend自身の開発言語が気になる。
サンプル見てみたが、Person.javaとかはそのままなのかよ。
あいつらのアクセサメソッドも殺してくれればいいのに。
メソッドがネストできるってのが必要だな
クロージャのネストでもいいけど
ベストはメソッドとクロージャが統一されると良いのだが
Coffeescriptはそうだよな
>>11 フィールド定義にアノテーションを付けるとgetterとsetterを殺してくれると
書いてあったけど、やってみたらできなかった。
未実装なのか、俺がやり方を間違えたのかは不明。
数時間使ってみて気付いた点。
次バージョンで対応予定 (12月中旬)
・コンストラクタを定義できない
・staticなメソッドとフィールドを定義できない
・フィールドを初期化できない
・throws-clauseを明示的に定義できない
バグ・未実装 (おそらく)
・intとchar以外のプリミティブ型のリテラルは書けない
・int以外のプリミティブ型の二項演算子は使えない
・変数はstatic importできない (メソッド限定)
・クロージャの再帰はできない
・ループ中でcontinueとbreakを使えない
・switchでfall throughできない (したい場合にもする方法が無い)
対応予定なし?
・パターンマッチング (「複雑すぎるしほとんどの場合はswitchで代用可能」とか)
15 :
14:2011/11/18(金) 17:58:05.30
俺の間違いもあるかもしれないので、信じすぎないで。
まあ現状ではいろいろと機能が少なすぎるよ
某g社の言語と違って結構攻めの姿勢があるのは好きだけど
17 :
デフォルトの名無しさん:2011/11/20(日) 10:44:50.18
こんなもの作る暇があったらGCJをEclipse側で作れ
JavaってEclipseと組み合わせれば下手にスクリプト言語使うより十二分に作りやすいじゃん。
これってeclipseとjavaでxtextというDSL機能とその支援機能作ってみて
サンプルでjava構文のDSL作ったら思ったよりいろいろ出来ちゃったってやつなのか?
それとも、xtextとは別のしくみを作ってんだろうか。
stableビルドでは、staticを使えるようになったね。
>>19 DSLを簡単に組み込めるXtextを作り、それを使ってXtendという言語を作ってある。
しかし、Xtendは単なるサンプルではないと思う。
stableビルドでは、staticを使えるようになってる。
>>19 DSLを簡単に組み込めるXtextを作り、それを使ってXtendという言語を作ってある。
しかし、Xtendは単なるサンプルではないと思う。
だいじなことなので2回(
.
新しいバージョンが出たね。
サイトも更新されてる。
「javaコードを出力します」のコードとは?
バイトコードの方?javaソースコードの方?
ソースコードを吐かれても困るんだよね。
ちゃんとデバッガとか使えるの?
エラーメッセージとかスタックダンプとか、まともに出るの?
javaコードの方のファイル名と行番号でエラーメッセージ出されても
困るんだよね。
その位試せよ糞が。余りに調べなさ過ぎだろ。何が困るんだよねだ。
Xtextを使ってXtendを作っただけではなく、
XtextでのDSL開発にXtendを使うようにもなっている。
Xtextでは構文を定義すると、字句解析器、構文解析器、
ASTのノードを自動生成してくれる。
中ではANTLRを使っているっぽい (初回に自動的にダウンロードする) 。
コード生成は自分で書く (Stringを作って渡すと) のだけど、
Xbaseというのがコード生成を簡単にするためのライブラリっぽいので、
今度はそれを調べてみるところ。
(Xtendプラグインでも使っている)
Xtextで作ったDSLでのコード生成には
以下のメソッドをオーバーライドするのだけど、
このメソッドが入ったクラスが、Xtendで定義されている。
(メソッドが空の状態でXtextにより生成)
// Resourceが構文解析の結果で、IFileSystemAccessに
// ファイル名と出力したい文字列 (Javaのソースコード) を渡す
void doGenerate(Resource resource, IFileSystemAccess fsa);
よくわからんがXtendでLisp処理系つくれんの?っと。
閑古鳥が鳴いておる
junoのCDTのリポジトリURLが404なんだけど
junoついでに調べてみたけど見た目ダブルディスパッチな多重ディスパッチがあるんだな。
第一引数が必ずレシーバになるのは強い静的型付けのOOPなjavaにトランスレートしてるから仕方ないか。
動的型付けじゃないOOPで多重ディスパッチできるのはいいと思う。
日本語でおk
まあ2chでこれ言っても仕方がないけど、職場で影が薄いモジモジ系の奴とか
いかにもうだつが上がらない奴が自分の実存を棚に上げて評論家面していっぱしの口を利いて
水に落ちた犬を叩くのは、本人気が付いてないだろうけどみっともないというより滑稽だよな。
一生懸命何かを語っているつもりでむしろ自分自身を語ってることに気が付いてない頭の悪さ。
寒いコピペだな