【Eclipse】Xtend part.1 【Java】

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん:2011/11/07(月) 12:28:46.13
Java開発者向けに作られた新言語。
CoffeeScriptのようにコンパイルするとJava コードを出力します。
Eclipseと統合されており、使い勝手も良さそう。

Xtend公式
http://www.eclipse.org/Xtext/xtend/
2デフォルトの名無しさん:2011/11/07(月) 14:43:21.23
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所
3デフォルトの名無しさん:2011/11/07(月) 14:58:58.19
scala?
4デフォルトの名無しさん:2011/11/08(火) 22:39:13.84
4ね
5デフォルトの名無しさん:2011/11/11(金) 15:01:56.78
名前と拡張子がダサいけど、結構おもしろいと思う。
これでAndroidアプリ作ってみようかなあ
6デフォルトの名無しさん:2011/11/13(日) 22:12:27.14
Javaを自動生成する言語なんていくらでもあるんだからそんなん作るなら
JavaをC言語に変換するプログラム作ってくれよ。
GCJ遅杉重杉なんだよ。
7デフォルトの名無しさん:2011/11/15(火) 05:20:19.42
今後の改善次第では、これがJavaの後継言語になると思っている。
次のアップデートは12月の中旬だとか。
・コンストラクタを定義できるようになる
・staticなメソッドとフィールドを定義できるようになる。
・フィールドを初期化できるようになる。
・throws-clauseを明示的に定義できるようになる。
そうだ。
クロージャの再帰もできるようにしてほしいな。
8デフォルトの名無しさん:2011/11/15(火) 08:02:09.28
仕事で使えるレベルになるのはいつ頃なんだろうな。
期待はしている。
9デフォルトの名無しさん:2011/11/15(火) 08:48:49.03
Xtend自身の開発言語が気になる。
10デフォルトの名無しさん:2011/11/17(木) 17:54:31.90
>>9
Javaで書かれたXtextというEclipseのプラグインがあり、
それを使うとJavaVMで動くDSLを簡単に開発できる。
XtendはそのXtextを使い、Javaで開発されているよ。

http://blog.efftinge.de/2011/11/build-your-own-jvm-language.html
11デフォルトの名無しさん:2011/11/17(木) 18:02:53.69
サンプル見てみたが、Person.javaとかはそのままなのかよ。
あいつらのアクセサメソッドも殺してくれればいいのに。
12デフォルトの名無しさん:2011/11/17(木) 21:20:30.03
メソッドがネストできるってのが必要だな
クロージャのネストでもいいけど
ベストはメソッドとクロージャが統一されると良いのだが
Coffeescriptはそうだよな
13デフォルトの名無しさん:2011/11/17(木) 22:16:22.94
>>11
フィールド定義にアノテーションを付けるとgetterとsetterを殺してくれると
書いてあったけど、やってみたらできなかった。
未実装なのか、俺がやり方を間違えたのかは不明。
14デフォルトの名無しさん:2011/11/18(金) 17:57:25.93
数時間使ってみて気付いた点。

次バージョンで対応予定 (12月中旬)
・コンストラクタを定義できない
・staticなメソッドとフィールドを定義できない
・フィールドを初期化できない
・throws-clauseを明示的に定義できない

バグ・未実装 (おそらく)
・intとchar以外のプリミティブ型のリテラルは書けない
・int以外のプリミティブ型の二項演算子は使えない
・変数はstatic importできない (メソッド限定)
・クロージャの再帰はできない
・ループ中でcontinueとbreakを使えない
・switchでfall throughできない (したい場合にもする方法が無い)

対応予定なし?
・パターンマッチング (「複雑すぎるしほとんどの場合はswitchで代用可能」とか)
1514:2011/11/18(金) 17:58:05.30
俺の間違いもあるかもしれないので、信じすぎないで。
16デフォルトの名無しさん:2011/11/19(土) 12:24:54.08
まあ現状ではいろいろと機能が少なすぎるよ
某g社の言語と違って結構攻めの姿勢があるのは好きだけど
17デフォルトの名無しさん:2011/11/20(日) 10:44:50.18
こんなもの作る暇があったらGCJをEclipse側で作れ
18デフォルトの名無しさん:2011/11/22(火) 16:16:33.40
JavaってEclipseと組み合わせれば下手にスクリプト言語使うより十二分に作りやすいじゃん。
19デフォルトの名無しさん:2011/11/22(火) 22:34:09.03
これってeclipseとjavaでxtextというDSL機能とその支援機能作ってみて
サンプルでjava構文のDSL作ったら思ったよりいろいろ出来ちゃったってやつなのか?
それとも、xtextとは別のしくみを作ってんだろうか。
20デフォルトの名無しさん:2011/11/30(水) 02:59:11.15
stableビルドでは、staticを使えるようになったね。

>>19
DSLを簡単に組み込めるXtextを作り、それを使ってXtendという言語を作ってある。
しかし、Xtendは単なるサンプルではないと思う。
21デフォルトの名無しさん:2011/11/30(水) 03:08:04.50
stableビルドでは、staticを使えるようになってる。

>>19
DSLを簡単に組み込めるXtextを作り、それを使ってXtendという言語を作ってある。
しかし、Xtendは単なるサンプルではないと思う。
22デフォルトの名無しさん:2011/11/30(水) 16:11:43.46
だいじなことなので2回(
23デフォルトの名無しさん:2011/12/08(木) 13:41:35.72
.
24デフォルトの名無しさん:2011/12/09(金) 07:33:12.58
新しいバージョンが出たね。
サイトも更新されてる。
25デフォルトの名無しさん:2011/12/10(土) 11:10:56.87
「javaコードを出力します」のコードとは?
バイトコードの方?javaソースコードの方?

ソースコードを吐かれても困るんだよね。
ちゃんとデバッガとか使えるの?
エラーメッセージとかスタックダンプとか、まともに出るの?
javaコードの方のファイル名と行番号でエラーメッセージ出されても
困るんだよね。
26デフォルトの名無しさん:2011/12/10(土) 15:48:13.21
その位試せよ糞が。余りに調べなさ過ぎだろ。何が困るんだよねだ。
27デフォルトの名無しさん:2011/12/11(日) 13:36:45.58
Xtextを使ってXtendを作っただけではなく、
XtextでのDSL開発にXtendを使うようにもなっている。

Xtextでは構文を定義すると、字句解析器、構文解析器、
ASTのノードを自動生成してくれる。
中ではANTLRを使っているっぽい (初回に自動的にダウンロードする) 。

コード生成は自分で書く (Stringを作って渡すと) のだけど、
Xbaseというのがコード生成を簡単にするためのライブラリっぽいので、
今度はそれを調べてみるところ。
(Xtendプラグインでも使っている)

Xtextで作ったDSLでのコード生成には
以下のメソッドをオーバーライドするのだけど、
このメソッドが入ったクラスが、Xtendで定義されている。
(メソッドが空の状態でXtextにより生成)

// Resourceが構文解析の結果で、IFileSystemAccessに
// ファイル名と出力したい文字列 (Javaのソースコード) を渡す
void doGenerate(Resource resource, IFileSystemAccess fsa);
28デフォルトの名無しさん:2011/12/11(日) 16:40:08.00
よくわからんがXtendでLisp処理系つくれんの?っと。
29デフォルトの名無しさん:2011/12/12(月) 14:55:18.83
http://gihyo.jp/dev/serial/01/engineer_toolbox/0023

本格派エンジニアの工具箱

第23回 Eclipseプロジェクト発の新プログラミング言語 「Eclipse Xtend」
30デフォルトの名無しさん:2012/01/09(月) 02:10:55.93
閑古鳥が鳴いておる
31デフォルトの名無しさん:2012/06/29(金) 21:43:59.93
junoのCDTのリポジトリURLが404なんだけど
32デフォルトの名無しさん:2012/07/07(土) 12:44:27.25
junoついでに調べてみたけど見た目ダブルディスパッチな多重ディスパッチがあるんだな。
第一引数が必ずレシーバになるのは強い静的型付けのOOPなjavaにトランスレートしてるから仕方ないか。
動的型付けじゃないOOPで多重ディスパッチできるのはいいと思う。
33デフォルトの名無しさん:2012/07/07(土) 18:10:43.03
日本語でおk
34デフォルトの名無しさん:2012/07/07(土) 19:46:35.00
まあ2chでこれ言っても仕方がないけど、職場で影が薄いモジモジ系の奴とか
いかにもうだつが上がらない奴が自分の実存を棚に上げて評論家面していっぱしの口を利いて
水に落ちた犬を叩くのは、本人気が付いてないだろうけどみっともないというより滑稽だよな。

一生懸命何かを語っているつもりでむしろ自分自身を語ってることに気が付いてない頭の悪さ。
35デフォルトの名無しさん
寒いコピペだな