1 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 19:45:18 ] プログラミング言語処理系の開発に興味のある人達のスレッドです。 字句解析・構文解析から,データフロー解析,ループ並列化,データ分散,SSA変換, CPS変換,レジスタ割付,命令スケジューリング,ソフトウェアパイプライン, SIMD命令生成,VLIW向けクラスタリング,スクラッチメモリ向け最適化,リンク時最適化, JIT,動的バイナリ変換等の各種最適化,それにVM,GC,低消費電力化などなど。 意味論に関する話題も歓迎です。 前スレ 1 pc.2ch.net/tech/kako/981/981672957.html 2 pc2.2ch.net/test/read.cgi/tech/1021136715/ 3 pc5.2ch.net/test/read.cgi/tech/1070089173/ 4 pc5.2ch.net/test/read.cgi/tech/1100097050/ 5 pc8.2ch.net/test/read.cgi/tech/1106129164/ 6 pc8.2ch.net/test/read.cgi/tech/1115335709/ 7 pc8.2ch.net/test/read.cgi/tech/1129287390/ 関連リンクは多分 >>2-10 あたり
2 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 19:45:58 ] ★コンパイラ一般 ・色々なツールの紹介 catalog.compilertools.net/ ・コンパイラ関連のリンク集 www.ulis.ac.jp/~nakai/rel_web_compilers.shtml ・スクリプティング言語資料室(仮) (リンク集) www.kt.rim.or.jp/~kbk/ ・Compiler Construction rananim.ie.u-ryukyu.ac.jp/~kono/lecture/2000/compiler/index.html ・Compiler Construction (1997) rananim.ie.u-ryukyu.ac.jp/~kono/lecture/1997/compiler/compiler.html ・情報システム工学実験 III コンパイラ・コンパイラ math.cs.kitami-it.ac.jp/~fuchino/proin/experimentIII-2000/jikken.html ・OS/Programming 簡単な C コンパイラ www.csg.is.titech.ac.jp/~chiba/lecture/os/ ・正規表現 hp.vector.co.jp/authors/VA007799/viviProg/doc_regexp.htm ・コンパイラ研究・開発情報の一集積所 compilers.cs.uec.ac.jp/ ・Links and Selected Readings www.gnu.org/software/gcc/readings.html ・国産のコンパイラ共通インフラストラクチャCOINS www.coins-project.org/
3 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 19:47:47 ] ★字句・構文解析 ・Lex and YACC primer/HOWTO (邦訳) ttp://www.linux.or.jp/JF/JFdocs/Lex-YACC-HOWTO.html ・Turbo Pascal Lex/Yacc ttp://www.musikwissenschaft.uni-mainz.de/~ag/tply/tply.html ・Jim Roskind's LALR(1) C++ Grammar ttp://www.empathy.com/pccts/roskind.html ・Flexと Bisonを同時に使う ttp://guppy.eng.kagawa-u.ac.jp/~kagawa/1999/SysProg/both.html ・KITE_ASM (yacc,lex) ttp://www.arch.cs.kumamoto-u.ac.jp/project/kite/kiteasm/ ・bison用のC++ LALR skeleton ttp://www.bj-ig.de/software/bison/ ・ANTLR(非yaccのパーサジェネレータ) ttp://www.antlr.org/ ・JavaCC(Java Compiler Compiler) ttps://javacc.dev.java.net/ ttp://village.infoweb.ne.jp/~fwif0083/program/java/javacc/javaccgrm.html ttp://www.asahi-net.or.jp/~DP8T-ASM/java/tips/JavaCCHelloWorld.html ・CUP, JLex, JFlex ttp://www.cs.princeton.edu/~appel/modern/java/ (JLex, CUP) ttp://www.jflex.de/ ・SableCC ttp://www.sablecc.org/ ・¬<><∪∪ (notavacc)LALR(1) ttp://ne.cs.uec.ac.jp/~koto/notavacc/ ・boost::spirit(C++のテンプレートでEBNFの構文を模倣) ttp://spirit.sourceforge.net/ ttp://boost.cppll.jp/HEAD/libs/spirit/index.html(マニュアル日本語化プロジェクト) ttp://www.fides.dti.ne.jp/~oka-t/cpplab-boost-spirit.html
4 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 19:48:38 ] ★ごみ集め ・GC FAQ -- draft www.iecc.com/gclist/GC-faq.html ・A garbage collector for C and C++ www.hpl.hp.com/personal/Hans_Boehm/gc/ ・一般教養としての Garbage Collection www.is.s.u-tokyo.ac.jp/~vu/01/jugyo/processor/process/soft/compilerresume/gc/gc.html ・Garbage Collection : Algorithms for Automatic Dynamic Memory Management www.amazon.com/exec/obidos/ASIN/0471941484/ ★処理系,スクリプト ・kikyou.info (吉里吉里というゲームのスクリプト) kikyou.info/ ・tiny C コンパイラ (C) www.watalab.cs.uec.ac.jp/tinyCabs.html ・6809用 Micro C コンパイラ www.axe-inc.co.jp/pds/mc09.html ・Portable Object Compiler (Obj-C >> C のトランスレータ?) users.pandora.be/stes/compiler.html ・自作コンパイラの部屋(PL/1, Pascal等) www.tokumaru.org/ ・『Rubyソースコード完全解説』サポートページ i.loveruby.net/ja/rhg/ ・『やさしい Lisp の作り方』『やさしい Java インタプリタ の作り方』 www.okisoft.co.jp/esc/go.html ・MSによるPEフォーマット仕様書(日本語) www.interq.or.jp/chubu/r6/reasm/PE_FORMAT/intro.html
5 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 19:49:35 ] ★学会 ・PLDI research.microsoft.com/conferences/pldi06/ コンパイラの研究に関する最新成果を知りたければまずはここ。 ・POPL www.cs.princeton.edu/~dpw/popl/06/ PLDIよりは理論寄りだが大いに参考になる。 ・ICFP icfp06.cs.uchicago.edu/ 関数型言語に関する学会。とても難しい。 ・OOPSLA www.oopsla.org/ オブジェクト指向言語に関する学会。最近はやや低調? ・ICCC www.st.cs.uni-sb.de/cc/ ヨーロッパ系。派手さはないが堅実。
6 名前:1 mailto:sage [2005/11/06(日) 19:55:29 ] つうわけで立てました。>>3 だけリンクがhttp〜になってないのは、 http://が多すぎます、と怒られたため。
7 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 20:02:13 ] キチガイ隔離スレ立て乙です。
8 名前:デフォルトの名無しさん [2005/11/06(日) 20:04:45 ] で、教材に向いているコンパイラってなによ
9 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 20:07:04 ] >>8 マジレスするとMinCaml
10 名前:デフォルトの名無しさん [2005/11/06(日) 21:02:37 ] 書籍関係のテンプレは?
11 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 21:05:41 ] >>1 乙 取りあえず、禁句一覧は以下の通りとする。 (以下よろ)
12 名前:1 mailto:sage [2005/11/06(日) 21:36:56 ] >>10 ごめん、飛ばしたらしい。 ★参考書籍 ・コンパイラ 原理・技法・ツール 1&2 www.amazon.co.jp/exec/obidos/ASIN/4781905854/ www.amazon.co.jp/exec/obidos/ASIN/4781905862/ 通称ドラゴンブック。バイブル。 ・コンパイラ構成法 原田 賢一 www.amazon.co.jp/exec/obidos/ASIN/4320029224/ www.hara.cs.keio.ac.jp/kCompiler/ (ソース、正誤表のダウンロード) ・プログラミング言語処理系 岩波講座 ソフトウェア科学〈5〉 佐々 政孝 www.amazon.co.jp/exec/obidos/ASIN/4000103458/ 一冊で済ませたい人へ。 ・コンパイラの構成と最適化 中田 育男 www.amazon.co.jp/exec/obidos/ASIN/4254121393/ 最適化がメインだが、構文解析からコード生成までの基本事項も解説されている。 ・コンパイラの仕組み 渡邊 坦 www.amazon.co.jp/exec/obidos/ASIN/4254127081/ 薄い奴(185p)を読みたい人に。 ・21st Century Compilers (Alfred V. Aho, Sethi, Ravi Sethi, Jeffrey D. Ullman, Monica Lam) www.amazon.co.jp/exec/obidos/ASIN/0321131436/ まだ出ていない。 ・スモールコンパイラの制作で学ぶプログラムのしくみ www.cbook24.com/bm_detail.asp?sku=4774121770 初心者向けの優しい解説本。
13 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 21:54:48 ] >>1 に書いてある低消費電力化まで 考慮する処理系なんてあるの?
14 名前:前スレの971 mailto:sage [2005/11/06(日) 21:57:31 ] 拡張ライブラリを書くのに、俺言語のソースを文字列リテラルの形で C中に埋め込むのはありか、と質問していたものです。 現時点の案としては、 a)文字列リテラルでCにソースを埋め込む。 b)バイトコードを埋め込む。 c)シリアライズしたものを埋め込む。 d)Cでゴリゴリ書く。 ってとこですね。 b)はバイトコード実行系でないからパス、 c)は、なにしろCなので、シリアライザもデシリアライザも書くのが大変だからパス、 d)は、やっぱり書くのが面倒(いちいち関数呼んで型を変換したり、オブジェクトを GCの管理下に入れたりするのが)。 ってことなんですが、こういったデメリットを上回るデメリットがa)にあれば やめるけど、今のところ思いつきません。 パースなんて重い処理じゃなし、それも1回動くだけだし。 前スレ973に笑われるだけなら、笑わせとくよ俺は。情報科出じゃないし。 というわけで引き続き情報よろしく。
15 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 22:03:58 ] いまどきのプログラム言語の作り方(randy (著)) って、買ってみた人いる? どんな感じなんでしょ。
16 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 22:07:34 ] pc8.2ch.net/test/read.cgi/tech/1130602100/138
17 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 22:11:17 ] >>13 少なくとも研究レベルではよく聞くね。
18 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 22:11:52 ] >>15 書名でぐぐれば目次が見つかる
19 名前:14 [2005/11/06(日) 22:44:18 ] 俺言語の改良点早くかきこめ馬鹿 特にLispで威張ってたやつらw
20 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 22:51:15 ] >>18 Amazonはチェックしたんだけど、良さそうな気がする
21 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 22:54:03 ] >>19 ごめん。全然気付いてなかった。 Lisper じゃないけど、俺は普通に a で良いとおもう。
22 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 22:57:23 ] このスレでは異端かもしれんが、 難しい理論や高度な技術よりも、 使い易いってことの方が言語としては大切な気がするんだけど。 すまん、スルーしてくれ。
23 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 23:10:50 ] >>19 とりあえず、Lispに出来るだけ近い言語にしとけばいいと思う。
24 名前:本物の14 mailto:sage [2005/11/06(日) 23:16:54 ] なんのこっちゃ。 わけわからん行動する奴がいるなあ...
25 名前:本物の14 mailto:sage [2005/11/06(日) 23:21:12 ] 肝心のことを書き忘れた。 >>21 >Lisper じゃないけど、俺は普通に a で良いとおもう。 どうもです。 私には a)の方法で特に問題があると思えないんですよね。 やっぱりa)でいくとします。
26 名前:デフォルトの名無しさん [2005/11/06(日) 23:22:25 ] 急に新スレに移ったので驚きました。 あわてて前スレを読み終わったところです。 前スレの最後のほうで、ECMAScript(JavaScript)にはLispと同じような 言語的能力がある、という話が出ていたのですが、それはどのような点なのですか? Lispは簡単なプログラムが書けるくらいですが、是非教えてください。
27 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 23:38:34 ] >>14 a)でいいと思うけど、.hに入れるか別の拡張子にして #includeするのを薦めてみる。 >>26 GC, クロージャ, 関数オブジェクト あたりだと思う。 関数の合成とかカリー化とかできて、その辺がLispと似通ってる。 この辺はRubyでもサポートされてる。
28 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 23:48:07 ] > カリー化とかできて、 できたっけ? > この辺はRubyでもサポートされてる。 されてたっけ?
29 名前:14 mailto:sage [2005/11/06(日) 23:49:36 ] >>27 >.hに入れるか別の拡張子にして#includeするのを薦めてみる。 そうすることで、#includeされる方のファイルでは俺言語そのままで書けるなら いいんですが、実際にはそうも行かないと思ってるんですけど、 27さんが想定しているメリットはそれ以外のことですか?
30 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 23:58:13 ] >>29 ソースコード中に点在するのは避けた方が良いってことじゃないか?
31 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 00:00:24 ] >>26 d.hatena.ne.jp/brazil/20050829/1125321936 >Cの皮を被ったLisp >JavaScriptには、Cのような中括弧や、不格好なforステートメントがあるため、 >一般的な手続き型言語のように見えます。しかし、それは間違っています。 >JavaScriptは、CやJavaよりも、LispやSchemeのような関数型言語と多くの >共通点を持っているのです。JavaScriptには、リストの代わりに配列があり、 >プロパティリストの代わりにオブジェクトがあります。関数はファーストクラスであり、 >クロージャを備えています。*2括弧のバランスをとる手間なしに、ラムダを利用できるのです。
32 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 00:19:38 ] >>29 makefile使うなら俺言語→ヘッダの簡単なスクリプト書いて規則に入れちゃえば? 周辺ライブラリの一部を俺言語で実装するというのは結構Unix系のこんなにスクリプト が流行る前の言語で見た気がする、ただ組み込み前提では無い為よく見かけたのは起動時 に初期化スクリプトを読むorVMイメージをロードする、もしくはCへのトランスレータ を介して自己に結合するという方法だった気がするけど
33 名前:デフォルトの名無しさん [2005/11/07(月) 00:20:44 ] もうグダグダだなこのスレ。S/N比が悪すぎる。 次スレからは構文解析より後(Lispならmacroexpandの後)だけを対象に限定しようぜ。 表層だけしか見ない厨がよってたかって暴れたあげく 処理系開発と全然関係ない話するバカまでわいてくる現状はかなわん。 既成言語を出すのも、その言語自体の実装に関する話題か、その言語を使って 言語処理系を実装する話題のみに限定し、それ以外は禁止で構わないと思う。 どの言語がいいわるいだの開発体制がどうだのという話はどっか隔離スレを 作ってやってくれ。
34 名前:14 mailto:sage [2005/11/07(月) 00:22:05 ] >>32 です。その、俺言語→Cの変換スクリプトを俺言語で書いて、 miniperlのような形でまずmakeし、そのmini俺言語で変換スクリプトを 動かして.cを生成するのがいいかなあ、と思ってます。
35 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 00:51:15 ] 昔はあんなにぼろくそに言われたJavaScriptもこんなに人気になるんだな。 ブラウザ以外の用途でも結構お目にかかるようになってきた。
36 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 01:05:17 ] >>35 例えばどこで? SVGとかかな
37 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 01:06:23 ] >>36 Flash、PDF、Macのダッシュボードとか。
38 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 01:08:29 ] ダッシュボードは違うか
39 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 01:11:44 ] >>33 お前はLispでもいじってろw
40 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 01:14:39 ] ダッシュボードもそうだしLaszloというRAIフレームワークもJSだ。 RhinoやSpiderMonkyなど組み込みもあるし、組み込み用ライブラリが増えるといいな
41 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 01:22:56 ] だれか >>28 に答えて。俺も気になる。 Flash や Laszlo は ActionScript じゃないの? ていうかさすがにこういう話題のときは ECMAScript って言おうよ。
42 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 01:25:04 ] まあESだな。エンジョイプログラミング復興のためにもスクリプトアプリには頑張ってもらいたい。
43 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 01:30:16 ] JavaScriptの開発はデバッグが苦しい、 というのは旧世代的な思い込みでしょうか。
44 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 01:33:06 ] >>41 www.google.com/search?hl=ja&q=JavaScript+%E3%82%AB%E3%83%AA%E3%83%BC%E5%8C%96&lr= www.google.com/search?hl=ja&q=Ruby+%E3%82%AB%E3%83%AA%E3%83%BC%E5%8C%96&lr=
45 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 01:33:45 ] IEならスクリプトデバッガがあるし、狐ならJSコンソールがある。 変数監視系のデバッグツールまでいくと聞かないけどね。
46 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 01:44:24 ] >>45 デバッガの有無というより、形無し言語だからでは?
47 名前:41 mailto:sage [2005/11/07(月) 01:51:57 ] ははぁ、どっちもarityメソッドとか使って ライブラリにできなくもない、という感じですか。 勉強になりました。ありがとう。
48 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 01:53:40 ] ふむ。しかしまぁ、JSでデバッガが必要な規模のコードなんて書かないけどねぇ。 Ajaxなら必要なのかも知れんけど1000行程度の外部JSファイルで1アプリ分かけない?
49 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 02:02:09 ] デバッグツールなんて、ベースがLISPだったら簡単に作れるのにね。 こういうレベルの話ばっかだからダメなんだよ。 わかれよ。
50 名前:43 mailto:sage [2005/11/07(月) 02:09:10 ] かつては、型がない、開発環境がない、実装間の互換性がない、の三重苦でしたが、 後ろ2つまではわりと解決されてるっぽいですね。 型はまあ、趣味の問題かなぁ。 >>49 言語ユーザとしての話に過ぎませんでしたね。すみません。
51 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 02:14:09 ] コードでエラーはなくともIEが突然落ちるJSはまだまだ怖い。
52 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 04:27:21 ] そういや、前スレの埋め立て時に出てた話題だケド、 GCまで作ってる人って、そんなに珍しいの? 俺の作ってる俺スクリプトでは、今、GCを作ってる途中なんだが・・・
53 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 05:11:32 ] そんなに珍しくも無いんじゃない?明示的削除構文の無い言語でオブジェクト をサポートする言語なら必須でしょ。値,文字列,配列のサポートのみで 配列内に配列を入れない制約をして良いならリファレンスカウンタで処理できるけど ただ自分の場合はCのスタックを直にスキャンするような方式にはしなかった けど、その分ちょっと処理が重くなったかもしれない
54 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 05:15:20 ] ECMAScript作った時はクロージャサポートの為構文木もGC対象にしなきゃいけなかった んでちょっとめんどくさかった、それ以外良い方法が思いつかなくて
55 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 05:27:44 ] このスレ的にはファイナライザってどうなんでしょ、俺言語でnativeのdll呼び出し できるように作った都合上native側で確保したリソースの管理・エラーレポート用 にファイナライザを実装したのですが、GCとの相性が悪くてかなり気持ち悪い思い 気分だったのですが
56 名前: ◆LispYaxRvY mailto:sage [2005/11/07(月) 06:54:53 ] >>55 GC対象になったファイナライザ付きオブジェクトは、 ファイナライザ用のスタックに一端退避して保護対象にする。 GC後にそのスタックの各々に対してファイナライザを起動、 処理が終わったオブジェクトは処理済みマークか何かを付けて保護から外す。 処理済みオブジェクトは次回のGCか何かで回収する。 こんなんでどうかな。
57 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 07:03:38 ] >>31 俺はLispは知らないECMAScripterなんだけれど、 ラムダが利用できますってどういう意味なんだろう。 クロージャは頻繁に利用しています。便利すぎる。
58 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 07:56:47 ] >>56 ふむふむ、現状ではGC実行中に全てのGCを止めた状態でファイナライザを実行して いるのですが、そのように2本化してしまってファイナライザ実行中は通常GCのみ許可、 ファイナライザ処理のみ禁止としてしまう方が融通効きそうですね、アドバイス ありがとうございます、早速検討してみる事にします。
59 名前:14 mailto:sage [2005/11/07(月) 08:11:32 ] >>52 >GCまで作ってる人って、そんなに珍しいの? 珍しいと思い込んでる妄想クンがひとり暴れてただけでしょ。
60 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 08:11:43 ] >>57 ラムダは無名関数リテラルが扱えるという意味で、括弧のバランスはLISPの 大量の括弧を書く話と対比してと受け取った、間違えてるかもしれないけど。 ECMAScriptはクロージャにおけるthisが呼び出しコンテキストに左右されてしまい 必ずしもオブジェクトを指しているとは限らない所と、感情的にだけど宣言なし で未宣言の変数を使った時に宣言先がグローバルになる所、それからクラスメンバ の未宣言がエラーにならない所が気持ち悪く感じた。 最新の4th(普及してないけど)での型宣言の書式も冗長な気がするし でも文句は多いけど頑張って欲しいとは思う。
61 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 08:16:09 ] >>60 クロージャにおけるthisが呼び出しコンテキストに左右されるのは クロージャがある以上当然の設計だと思うんですが。ActionScriptもそうだね。 左右されないthisを使いたいなら、例えば次のように書けばいいはず。 var constThisFunc = function(instance) { return function(x,y){/*real function using 'instance' instead of 'this'*/}; }(this);
62 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 08:30:24 ] >>60 なるほど、無名関数のことでしたか。 ありがとうございます。ラムダについては機会があれば詳しく調べてみます。
63 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 08:33:11 ] >>61 そそ、そこでthisをクロージャメインと考えると妥当なのだけど、一応オブジェクト 機能もあるのでthis==オブジェクトと考えたい部分もあって、例えば var a=new Foo(); eventList.add(a.onMouseDown); みたいな書き方をしたいと、確かにコンストラクタに相当する関数の先頭で var me=this; などとしてクロージャコンテキストに入れてしまえば良いだけなんですが、 言語標準の機能としてあればもっと安心かなぁ、という所です。 ActionScriptはそもそもECMAScript実装なので基本的には同じでは?
64 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 08:37:58 ] >>63 > などとしてクロージャコンテキストに入れてしまえば良いだけなんですが、 > 言語標準の機能としてあればもっと安心かなぁ、という所です。 なるほど、早とちりすまんでした。 最近は癖でthisを必要が無くても常にクロージャに含めてしまっているので、 いまや何の違和感もないですが、言われてみれば言語標準の機能として 自分自身のオブジェクトを指すキーワードを入れても不自然ではないですよね。 > ActionScriptはそもそもECMAScript実装なので基本的には同じでは? 知らなかった、恥です。 これだけ普及しているのに、なかなかECMAScriptの開発環境出てこないなぁ…
65 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 10:16:50 ] 実装依存な仕様が多くて、一般的なものを作っても無駄なんじゃなかろうか
66 名前:デフォルトの名無しさん [2005/11/07(月) 10:46:27 ] ちょっとスレ違いかもしれないけど、VBで構文解析しようと思ったらこれ!っていう ツールある?lex/yaccみたいなのあったら知りたい、、、 現状再帰下降構文解析とかちまちま書いてるんだけど、、、
67 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 15:11:20 ] 実装依存な仕様というか、仕様範囲外のライブラリが多いからね。 あと、組み込み用途がほとんどだから、ES開発環境自体も ホームページエディタやFlash MXなど組み込む対象物の開発環境に 組み込めないといけないのも難しいし、今さら感もある。 ところで、俺言語にJSを組み込ませてみたいと思ってるんだけど、 こういうアイデアを実現した言語って既出? 俺言語は関数型言語なので、 手続き型で書きたいところはさっくりJSでかけるよー、 って感じにしたいんだけど。実行速度は気にしてない。 let f x = g (x - 1) function g(x) { return f(x + 1); } みたいなのが書けるの。
68 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 15:40:23 ] >>67 関数型言語に手続き型記述を埋め込むという話なら、 それこそ前スレで大人気(w)のlispのprog形式とか、 もうちっと今時の言語ならHaskellのMonadとか。 言語に他の言語要素を埋め込むという話なら… CにSmalltalkを埋め込んだObjective-Cとかかなぁ。
69 名前:デフォルトの名無しさん [2005/11/07(月) 18:09:08 ] Lispの次は俺言語かw
70 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 18:15:51 ] だがそれがスレの趣旨にはあってるからなw
71 名前:デフォルトの名無しさん [2005/11/07(月) 19:55:50 ] 俺言語は隔離すれでやってくれよw
72 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 20:04:12 ] >>71 はぁ?
73 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 20:07:51 ] 隔離スレかどうかは知らないけど、過疎ってるスレ結構あるからな〜。 少数で占有すんのもアレなんで、そっちを有効活用するのもアレかと。
74 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 20:11:46 ] >>71 はぁ? 俺言語にLispもいれろw
75 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 20:12:55 ] 俺言語といえば スリムドカン?だっけか どうなったんだべ?
76 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 20:15:07 ] >>75 宣伝乙w
77 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 20:17:12 ] >>75 おみゃーらはようw おみゃーらはようw
78 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 21:00:10 ] >14 遅レスだけど。 おいらだったら a') ローダを実装して別ファイルの俺言語ソースを読み込む ですな。 俺言語ソースを変更するたんびに再コンパイルはちょっとスマートじゃないね。 最近のPCは速いからあまり気にする必要がない、つうのはあるかもしれんが……
79 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 21:25:22 ] >>78 インタプリタ本体+標準拡張ライブラリは1ファイルに という制限があったと思った。
80 名前:デフォルトの名無しさん [2005/11/07(月) 21:29:58 ] >>79 俺様言語の仕様ぐらいちゃんと覚えとけw
81 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 21:31:45 ] 質問ですけれど、自分言語ってどういうときに必要になるんですか?
82 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 21:43:18 ] Lispと一緒で、勉強なり研究なりするとき。 あと、夜のおかずかな?w
83 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 21:52:30 ] >>81 特定のドメインに特化した言語を作ることで 開発効率を上げたりとか。
84 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 21:54:06 ] >>83 COBOLだな? 俺もそろそろDB直結も可能なCOBOLスクリプトが欲しいと思ってたとこだ。
85 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 22:00:34 ] >>82-83 ありがとう。 何らかのフォーマットに対するパーサまでなら良く作りますが 言語を解釈するところまで作ったことはありませんでしたが、 このスレで自分言語を作っている人が多くて、 もしかして何か知らないメリットみたいなものがあるのかと質問しました。
86 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 22:21:56 ] >>82 いいかげんウザイ。キモすぎる。Lisp と共に消えてくれ
87 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 22:27:56 ] >>85 俺言語があれば他人が作った気に入らないクソ言語でストレス溜めながら 書く必要がなくなるじゃん。それだけでもメリット。 例えばJavaがクソ言語だと思ってる人が仕事か何かでクソで書かなきゃ いけなくなった時、Javaで俺言語を作って仕事を俺言語で片付ければ2度おいしい。 クソ言語上に俺言語を作っておけば以降のクソ言語の仕事でも俺言語上だけで 仕事できるし、そういう人は俺言語を弄ってるだけで楽しいだろう。 クソ言語から早急に離脱するためには、それなりの俺言語の設計をする 必要があるけど、クソ言語だけで仕事をする苦労に比べたらマシだし モチベーションにも繋がると考えるだろう。俺言語のためならクソ言語で 書く作業もあまり苦にならないはずだ。 他にも、もしかするとそれでクソ言語の勉強にもなるかもしれない。 あるいはクソだと思っていた言語の良いところが見えて改心するかもしれない。 逆にクソ言語はどこまで行ってもクソだったと確信するかもしれない。
88 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 22:30:31 ] >>87 それってオナニーではないでしょうか? 仕事は他の人と一緒にやるものですよ
89 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 22:31:48 ] >>88 俺言語はオナニーに決まってるだろ。 それ以外の何かだと思ってる奴はきっと勘違いしてる。
90 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 22:33:05 ] >>87 クソ、クソとずいぶんお下品だと見受けられますね。
91 名前:デフォルトの名無しさん [2005/11/07(月) 22:41:19 ] ゲーム作ってると使うよー。 デザイナーにパラメータいじってもらうのとか、 コンパイルせずに修正する箇所があるときに使う。 実行形式の再起動なしで、挙動を変更したり、テストが楽になる でも最近、Luaとか既存のLLでいいじゃんという気がしてきた。 俺言語メンテまんどくせ。
92 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 22:43:38 ] >>90 やっぱ上品に「うんち」って書かなきゃね。
93 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 22:44:00 ] オナニーですよ (*´∀`) 飽きたら捨てるで問題ないでしょー。
94 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 22:46:45 ] オナニーがセックスまで進化したのがLISP
95 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 22:50:20 ] そろそろ倦怠期
96 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 22:51:37 ] >>94 あーなるほど、ぼこぼこ子供(方言、派生言語)が出来上がる意味ではな。
97 名前:78 mailto:sage [2005/11/07(月) 22:58:00 ] >79 その制限て何か意味あるの?タダのクソ仕様にしか見えんが…… >81 個人的に一番多いのが、自作アプリなんかの設定ファイルかな。 最近はXML使うことも多いけど、ルールは結局自分で決めなきゃいかんからね。
98 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 23:15:14 ] 今度は四日ぶりに来たが、凄いことになってるな 読む必要なさそうだから、読まないけどよ
99 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 23:17:36 ] >>91 おーなるほど、確かにデザイナーさんなど、 プログラムに慣れていない人のために書くのはありそうですね。 言語というより設定ファイルとパーサみたいな印象でしょうか。 >>97 上を書いてからこのレス読みました。確かに設定ファイルも言語ですよね。
100 名前:14 mailto:sage [2005/11/07(月) 23:17:50 ] >>97 >その制限て何か意味あるの?タダのクソ仕様にしか見えんが…… インストールが楽。実行形式ひとつ、パスの通ったところに投げ込めば 動くってのはそれなりのメリットだと思うが。 もっと拡張ライブラリが増えて、必要なライブラリだけをオンデマンドで 読み込むとかするようになったら別ファイルにもするけど、今のところ 実行形式単体で動くのはメリットだと思ってる、ってこと。 まあこれをメリットだと思わない人もいるだろうけどさ。
101 名前:14 mailto:sage [2005/11/07(月) 23:35:37 ] しまった100getしとくんだった… なんてくだらん話は置いといて。 >>55 うちの言語では、ネイティブ側で確保したオブジェクトへのポインタ型に ファイナライザを付けられるようにしてる。それ以外のオブジェクトにはなし。 あとで知ったんだけど、Luaもそんな感じらしい。ていうかLuaの場合は、 確保の逆順にファイナライザを呼ぶことを保証してるらしい。 >>56 >ファイナライザ用のスタックに一端退避して保護対象にする。 ええと、このスタックから参照張られたオブジェクトについてファイナライザ 走らせる前に、これらのオブジェクトを起点にしてまたmarkするのでしょうか? この解釈であってる?