トップページ⇒tech
191コメント60KB

新言語を開発したい

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2010/05/30(日) 21:52:01
http://pc12.2ch.net/test/read.cgi/tech/1274015781/l50 の継続スレのかたわれです。
低水準言語にこだわる人は「低水準言語を開発したい」のほうへどうぞ。
0002デフォルトの名無しさん2010/05/30(日) 22:00:37
Cん言語だって?
0003デフォルトの名無しさん2010/05/30(日) 22:05:51
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

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

                  京都大学霊長類研究所
0004デフォルトの名無しさん2010/05/30(日) 22:13:17
関数型とか、GCありとかな言語を作りたい人用らしいです
0005デフォルトの名無しさん2010/05/30(日) 22:15:44
アイちゃんのための自然言語は可?
0006デフォルトの名無しさん2010/05/30(日) 22:50:36
今時GC無し言語なんてありえないだろ
0007デフォルトの名無しさん2010/05/30(日) 23:03:07
いまさら、GCありの言語を作ってもね。
関数型でGCなしとかどうだ。
0008デフォルトの名無しさん2010/05/30(日) 23:16:48
これからはテストがしやすい言語が出てくるだろうな。
ユニットテスト普及以降、テストの考え方が変わった。
コードでテストするようになった。

だけど既存の言語はテストしやすいようには作られていない。
ユニットテストというフレームワークを使うことである程度改善できるけど
さらなる機能が必要。

たとえばprivateメソッドをテストのときだけ外部から呼び出し可能にしたり、
テストのときだけ、関数内部で生成しているクラスのインスタンスを
コードを変えることなく、テスト用のインスタンスにすり替えたり、
テスト対象のコード任意の地点の値をテストコードから監視したり。

アスペクト指向はあまりはやってないけど、テストするには使える技術だと思うな。
0009デフォルトの名無しさん2010/05/30(日) 23:21:19
>>8
C#で不満なところは?
0010デフォルトの名無しさん2010/05/30(日) 23:32:52
>>8
うん。大規模なプロジェクト、あるいは一人だけで作る場合の生産性を上げるようなものだね
0011デフォルトの名無しさん2010/05/30(日) 23:36:27
>>9
上司にC#の言語の制約で出来ませんと言い訳できないところ。
0012デフォルトの名無しさん2010/05/30(日) 23:57:36
オブジェクト指向寄りでGC有りより、
関数型寄りでGC,VM無しのCって方が面白そうだわな。
0013デフォルトの名無しさん2010/05/31(月) 00:14:44
そんな時代遅れ言語はあっちでよろしく
0014デフォルトの名無しさん2010/05/31(月) 00:54:49
scalaでいいじゃん
0015デフォルトの名無しさん2010/05/31(月) 00:57:02
あっちは紙降臨した模様
0016デフォルトの名無しさん2010/05/31(月) 00:58:55
髪(笑)
0017デフォルトの名無しさん2010/05/31(月) 23:57:24
Gentee でいいだろ
0018デフォルトの名無しさん2010/06/01(火) 03:35:31
ここが一番負けてるな
0019デフォルトの名無しさん2010/06/01(火) 03:39:24
見えない敵と戦ってる人こわい
0020デフォルトの名無しさん2010/06/01(火) 16:32:44
見えない敵が一番手ごわい
0021デフォルトの名無しさん2010/06/02(水) 00:05:51
分割前のスレに書いたことの要約

【新言語開発が破綻する典型的なパターン】

言語比較厨登場。言語仕様を大量に盛り込む。工数が膨大に。
↓
開発者が不足。しかも楽しい仕事しかやりたがらないダメな奴ばっかり。
↓
よってライブラリ、デバッガ、IDEの製作やドキュメントの整備等の
面倒だが重要な仕事は手抜きし放題。場合によっては完全放置。
↓
使えない糞言語なので、ユーザーが集まらない。
誰も使ってくれないので開発者のモチベーションが保てない。
↓
終了。

【対策】

・言語ヲタを排除する。工数を増やす人はいらない。

・達成目標をよく議論して明確にする。無計画に始めない。

・小さい言語仕様にする。出来上がってから少しづつ拡張すればいい。

・他の言語に勝てる分野で勝負する。使えない言語を開発することに意義はない。
0022デフォルトの名無しさん2010/06/02(水) 00:10:20
まだ始まってもいないのに気の早いやつだな
0023212010/06/02(水) 00:56:57
汎用言語を作っても無視されるか他言語の劣化コピー扱いされるのがオチだし
ライブラリ作成の工数を減らす意味でも対象にするドメインを絞ったほうがいい。
自分が勝算がありそうだと思う分野をあげておく。

【ゲーム専用言語】

有名なところだとノベルゲームやアドベンチャーゲーム用の吉里吉里2やNScripter
なんかがあるが、GOTO指向の時代遅れの言語なので普通にやれば勝てると思われる。
ネトゲは無理でも、アクションゲーム、パズルゲーム、シューティングゲーム
くらい対応できれば十分。

【携帯用言語】

携帯電話やAndroidやiPad上でプログラミングできるようにする。
既にやってる人もいるだろうが、メジャーなものはないから今なら
まだ勝てるチャンスがある。ライブラリが小さいもので済むのも利点。

【日本語プログラミング言語】

現在は"なでしこ"一人勝ち状態だが実はかなり低速な上にバグだらけ。
文法も破綻気味なのでもう少し洗練された言語を作ればシェアを
全部奪えるのではないかと思う。

【画像/動画/音声 処理用言語】

例えば本格的な画像編集をGIMPとScript-Fuなんぞで頑張るのには無理があるし
GPLでがっちり固められてしまっているのでつまらない。
およそマルティメディア関係のアプリケーションでは速度の問題が大きすぎて
結局C++でプラグイン書いてリンクのパターンになってしまう。
簡単な記述でそこそこ高速なデータ処理言語があればシェアがとれるはず。
0024デフォルトの名無しさん2010/06/02(水) 00:59:53
gotoは速いんだよ
0025デフォルトの名無しさん2010/06/02(水) 01:04:36
gotoはゲームシナリオとの親和性が高いしな
0026デフォルトの名無しさん2010/06/02(水) 01:37:13
>>25
いやノベルゲームのバグの原因の大半はGOTOとグローバル変数だと思うけど。
ノベルであっても関数言語的な構造をもっているなら自動テストを行って
ある行動をプレーヤーがとると無限ループになるとか
絶対に取れないフラグが存在するとか、バグを検出するのが容易になるので
素人こそ先進的な道具を使わせておくべきじゃないの。
0027デフォルトの名無しさん2010/06/02(水) 01:41:18
バグの原因は素人
0028デフォルトの名無しさん2010/06/02(水) 01:44:50
結局フラグ使ったステートマシンにするしかないんだから
switchのラベルでもgotoのラベルでも同じことだろう。
0029デフォルトの名無しさん2010/06/02(水) 02:07:11
>>28

例えば

ストーリー() {出会い, 事件, 別れ}
出会い() {移動, 発見, 挨拶}
移動() {台詞="
長い文章"}
…

と構造化されてるのと

*ストーリー
(長い文章)
goto 出会い
*出会い
(長い文章)
goto 移動
*移動
(長い文章)
goto 発見
…

が同じわけがねえ。

実際はif文とクラスに属してない総称型のフラグが散らばっててさらに
分けわかんないことになってるんだよ。よくあんな言語使うと思うけど。
0030デフォルトの名無しさん2010/06/02(水) 02:10:56
エロゲ作ってんの?くれよ
0031デフォルトの名無しさん2010/06/02(水) 02:11:11
総称型じゃないやw。型の決まってないフラグね。さっきまでJavaの本読んでたんでスマン。
0032デフォルトの名無しさん2010/06/02(水) 02:12:45
w。
0033デフォルトの名無しさん2010/06/02(水) 08:52:45
エロゲスクリプトで総称型ってなんに使うんかな。
0034デフォルトの名無しさん2010/06/02(水) 20:02:44
モザイクの量とか
0035デフォルトの名無しさん2010/06/02(水) 21:33:12
巨乳でも貧乳でも同じメソッドを
0036デフォルトの名無しさん2010/06/02(水) 21:36:17
着衣プレイの時の制服の種類とか
0037デフォルトの名無しさん2010/06/05(土) 04:43:01
AS3を汎用言語にしたい
30歳になったら本気出す
0038デフォルトの名無しさん2010/06/06(日) 23:04:43
普通にjsのエンジンは一杯あるわな
0039デフォルトの名無しさん2010/06/07(月) 01:16:47
いや、AS3です^^;
0040デフォルトの名無しさん2010/06/07(月) 02:02:11
おっと、調べたらかなり違うのね
でもあそこまでやるなら他の言語でも良さげな
0041デフォルトの名無しさん2010/06/08(火) 02:01:33
>着衣プレイの時の制服の種類とか
詳しく
0042デフォルトの名無しさん2010/06/08(火) 07:52:42
そこかよ
0043天使 ◆uL5esZLBSE 2011/07/03(日) 21:18:42.73
∨∨
(((((((((( >着衣プレイの時の制服の種類とか ))))))))))(キリッッッッ!!!!

ゴミグラマじゃねーか
0044天使 ◆uL5esZLBSE 2011/07/04(月) 04:59:35.62
これ ; デリミタっていうんだけどさ、これをつけなきゃエラーになるような
そんな言語使ってる奴ってどうみてもゴミだと思うんだけど

もしかして「;」これ打ち忘れてコンパイルエラー出すのが楽しいの?
そうか、二度と話かけんなよ
なんだ、ただのゴミか(笑)
0045ななし。2011/07/27(水) 12:48:37.24
カオスラウンジ死ね
0046デフォルトの名無しさん2011/09/10(土) 11:36:04.49
ここもやはりgdgdか。上げ。
このままだと数年後も完成しないだろうから手法を提案をするか。

まず、初心に戻って明確なプロパガンダといいますかキャッチコピーを決めるといい。
可能であれば利用状況などの想定を盛り込んだ短編小説もね。すると必要なものがわかる。

例えばコピーであれば、
- ロケット制御用言語なら「Rock:et を使って月のウサギに会いに行こう」
- 日本語異性型ロボットAI言語はぢらひ「俺の嫁、旦那様、バーニング」
- 従来の汎用言語の改良であれば「あなたは今日からリア充です(※効果には個人差があります)」
など...。
0047デフォルトの名無しさん2011/09/10(土) 11:42:53.85
こういう言語が欲しい、作れというのであれば、一通り網羅した仕様書書いたほうが受け入れられやすい。
それに仕様は複数存在しても別に問題はないよ。rejectされても別プロジェクトでやればいい。

つか欲しい・作れって言うだけでは、仕様書いている人からすれば
「これこれこういう言語があるからそっち使っては?」になることが多いと思うよ。
0048デフォルトの名無しさん2011/09/10(土) 11:50:59.20
言語仕様を書きあげるのは意外と大変だからねえ。
やっぱり謎の重圧と戦う、調べることが数千件、細かいことに
配慮して悩みぬくなどあります。使うと書くとでは大違いですよ。

では押しの強いひとが現れることを願って。以上。
0049デフォルトの名無しさん2011/09/10(土) 11:58:46.33
新言語→信玄後→
0050デフォルトの名無しさん2011/09/10(土) 13:46:03.85
やっぱなんらかの既存処理系においては存在しない、または直接扱うのが困難な計算モデルがあって
それを容易に扱う為の言語といった形の必要性で無いと作る意義が乏しいだろうな
こう言語仕様においてはその扱いたい計算モデルに都合の良い文法とそのプログラミング言語としての意味論を定義することが
結構大きな割合占めてると思うのよね
0051デフォルトの名無しさん2011/09/10(土) 14:21:16.44
>>50
俺はそんな、適用する場所があまりない、つまり効果が薄いことよりも
もっと人間が楽になる言語がほしいよ。

具体的には、言語機能として、ユニットテスト、リファクタリング、
デザインパターン、ドキュメントの書き方まで考慮されていて、
特別な何かを別に用意しなくてもこれらが簡単に実行できること。
簡単にというのは、正規表現やワンライナーができるということも含まれている。
それでいてstrictモードなら、型をきっちり明記して、様々な統合環境を作ることも可能。
0052デフォルトの名無しさん2011/09/10(土) 14:27:32.28
なんていうか言語よりも開発環境の問題だろう。
0053デフォルトの名無しさん2011/09/10(土) 14:34:51.11
>>52
言語によって開発環境ができることが限られてくるんだよ。

たとえば変数に型を持たない言語では、
メソッドの補完は不可能。

だからそういうのを減らして、言語がコードの解析をして全体を理解し、
その情報を開発環境に提供することで開発環境の機能を
さらに向上できるように考慮された言語。

それは結果的に人間を楽にしてくだれる。
0054デフォルトの名無しさん2011/09/10(土) 14:42:26.96
あと、開発環境に頼り過ぎなのも良くない。
たとえば名前でも意味が違う変数があるだろ?

それは開発環境ではどれが同じで違うか理解できても
テキストエディタでは理解出来ない。

もしこれが開発環境ではなく言語自体で情報を提供されるようになったら
テキストエディタからでもコマンド一発で簡単に知ることができるだろうし
テキストエディタを拡張することも簡単だろう。

だから開発環境の問題ではなく、その問題を言語側に移そうという話でもある。
0055デフォルトの名無しさん2011/09/10(土) 14:47:37.10
言語処理系と言語そのものがごっちゃになってるな
リフレクションの機構は処理系が提供するものだ
仕様としてその言語処理系対する要件として定義はできるがな
0056デフォルトの名無しさん2011/09/10(土) 15:49:42.66
Google、新プログラミング言語 " Dart " を来月発表、「構造化ウェブプログラミング」向け
http://japanese.engadget.com/2011/09/09/google-dart/
0057デフォルトの名無しさん2011/09/10(土) 16:02:56.76
>>55
リフレクション? リファクタリングの間違い?


リファクタリングは確かに処理系が提供するもの。
だけど、なにかの機能を載せたいと思ったとき、
その機能を実現するためには、その機能を実現するための情報が
ソースコードに書かれていないといけない。

だから、開発環境、処理系、にフォーカスを当てて
それに搭載したい機能を考え、
その機能を実現できる言語を作りましょうってことだよ。
0058デフォルトの名無しさん2011/09/10(土) 16:32:19.86
>リフレクション
プログラムの実行中、コンパイル中にそのプログラム自身の構造を参照したり書き換えたりする機構の事だよ
インスタンスから自分自身の型や型からその属性や継承木を言語内で1級のオブジェクトの形で取得できるわけだ
そのインスタンスが生成されたコード内の位置を取得することができるものもある
0059デフォルトの名無しさん2011/09/10(土) 20:21:08.49
>>58
リフレクションの機能がわからいんじゃなくて、
どこからそんな話が出てきたんだってことなんだが。
0060デフォルトの名無しさん2011/09/11(日) 00:38:09.61
プログラミング押しえてぇえええええええええええええええええええええええええ
0061デフォルトの名無しさん2011/09/11(日) 01:11:41.90
>>51
具体的に新しい言語によって何を解決したいのかが何一つ読み取れない。

例えばC#(+VisualStudio)なら何が不満なの?
どういう部分に考慮が足りないと感じる?
0062uy2011/09/11(日) 21:44:19.12
>>59
ゴミ相手に何マジレスしちゃってんの?

これでわかっただろ
ここには58こういうゴミみたいな「知ったか」しかいない事実
覚えたての単語を使いたがる精神年齢中学生
適当にカタカナ言葉を混ぜておけば
>>58
いっぱしに、プログラマー気取りっすかあああああああああああああwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
カンケーネータンゴダシテシッタカデスカアォアアアアアアアアアアア!!!!!!!!!
さっさと死ね  黙って死ね 今すぐ死ねよ ゴミ

ゴミはさっさと死ねばいいのに
0063デフォルトの名無しさん2011/09/11(日) 22:20:23.55
>>50
よくある方法で思い切って概念の整理を行うことで新しい言語を生み出すこともできる。
また一般に難しいとされるものをすっきり記述できるようにするといいと思う。

例えばオブジェクト指向や関数という概念などを、もっと単純でなものにできるか、
バグの出ない記法や間違っているものを間違っているように見せる方法はあるか、
など未だ色々と解決する問題はあるね。
0064デフォルトの名無しさん2011/09/11(日) 22:27:38.54
>>51
それって...まだ未実装のようだが Cobra だよな...
ttp://cobra-language.com/
ttp://cobra-language.com/docs/quality/
0065デフォルトの名無しさん2011/10/01(土) 23:43:16.13
cの完全上位互換にとなっているobjective-cのアプローチが好きだ
ネイティブ吐いて、オブジェクト指向で理想的な言語だ
だが、objective-cは何かが違う。あの言語は何かを間違えた。
0066デフォルトの名無しさん2011/10/07(金) 06:26:43.46
stとCのハイブリッドだしな
@なんちゃらを無くして
gc前提なら悪くないかもしれん
0067デフォルトの名無しさん2011/10/08(土) 21:07:01.34
かもしれんね
0068デフォルトの名無しさん2011/10/09(日) 15:33:05.18
objective-cってi-phoneアプリでも使われている言語だよね?
純粋なC言語ではi-phoneアプリは組めないのかな?
もしCで書けるならJAVAでも書けるって事だから
そうなるとJAVAプログラマーはキャッキャウフフになるんだけど
それを実現するには努力が必要だよね
0069デフォルトの名無しさん2011/10/09(日) 16:20:07.55
iPhoneを駆逐するために、Javaプログラマはもっと熱意を持ってAndroidアプリに取り組むべき
0070デフォルトの名無しさん2011/10/09(日) 18:42:18.22
そういうことは自分が率先してやれ
0071デフォルトの名無しさん2011/10/09(日) 20:00:32.37
>>68
Cで作れるならJavaでも作れる?
どういう論理か教えて欲しい
0072デフォルトの名無しさん2011/10/09(日) 20:15:09.40
>>71
まずCでJavaバイトコードを実行するVMを書きます
0073デフォルトの名無しさん2011/10/09(日) 20:15:49.74
それを煮ます
0074デフォルトの名無しさん2011/10/09(日) 20:53:56.40
なるほど。そりゃ努力が必要だわな
0075デフォルトの名無しさん2011/10/10(月) 13:39:55.32
JNIの事だと思うよ
0076デフォルトの名無しさん2011/10/10(月) 16:31:23.67
dartがえらく素っ気ないc++もどきでワロタ
0077デフォルトの名無しさん2011/10/10(月) 17:05:37.13
>>75
でもそれじゃiPhoneで走らないだろ
あ、JNIを呼び出す為にVMも実装するのか
偉いな
0078デフォルトの名無しさん2011/10/16(日) 22:45:09.03
perlやphp,pythonの失敗を見てわかる通り、
個人やコミュニティが開発する規模の言語が
普及してから大きなメジャーアップデートしても誰もついてこない
最初に文法を決めてしまったのであれば、後から修正してはならない
0079デフォルトの名無しさん2011/10/16(日) 22:56:08.75
失敗してんの?
0080デフォルトの名無しさん2011/10/17(月) 07:36:40.16
個人が作った言語だろうが、大企業が作った言語だろうが、委員会が作った言語だろうが、
アップデートについてこれない低能を相手にしてたらやってられるわけがない。

そういう低能は切り捨てるだけ、そういうレベルの企業には潰れる以外の末路はない。そんだけ。
0081デフォルトの名無しさん2011/10/22(土) 11:00:30.75
文法を修正したら駄目だろ。できるのは追加だけだ
0082デフォルトの名無しさん2011/10/22(土) 11:29:21.56
文法を修正したら別言語じゃんw
0083デフォルトの名無しさん2011/10/24(月) 06:54:44.84
言語自体古い

文字通り生きてる有機コンピューターつくれよ
0084デフォルトの名無しさん2011/10/24(月) 06:56:14.09
脳みそ直結だろ
防壁は張っとけよ
0085デフォルトの名無しさん2011/10/24(月) 07:08:18.37
現生人類と比べ、喉の奥(上気道)が短い。このため、分節言語を発声する能力が低かった可能性

ネアンデルタール人 - Wikipedia
0086デフォルトの名無しさん2011/10/24(月) 07:45:34.66
甘ったれた滑舌の悪いネアン
可愛いかもしれん
0087デフォルトの名無しさん2011/10/25(火) 00:53:23.64
このスレを総合すると c++ が良いということですね。
0088デフォルトの名無しさん2011/10/25(火) 21:12:55.84
それだけは無いな
0089デフォルトの名無しさん2011/10/26(水) 01:00:54.44
というか、コンセプトがみんなバラバラなんだよね、多分
汎用言語を作りたいのか
専用言語を作りたいのか
汎用の言語なら、動的言語か、静的型付け言語かでざっくり分かれるけど
代替の場合、自分の使っている or 愛している言語に、ほかの言語の機能を取り込む方で頭が回っている
自分の場合、Rubyのメタプログラミングの機構や、Object型にくっついている、黒魔術的なメソッドの細かい仕様バグを取り除いて再設計されたものとかを欲しいと思ってしまう
0090デフォルトの名無しさん2011/10/26(水) 01:32:42.96
汎用型で静的型付け言語、
それでいて動的言語で出来るメタプログラミングを
できるようにした言語が作りたい。

あとコンパイラのアーキテクチャを変更したい。
今のように実行したらバイナリが出来る方式ではなく
”プロジェクト” を "コンパイラーサーバー" に読み込ませると
ファイルを更新するたびに、コンパイル可能な所をリアルタイムでコンパイルし、
コンパイルができてる場所、エラーにある場所、その他様々な情報を取得できるという設計。

言語仕様ももそれが出来るように考慮する必要があるだろう。

そしてリファクタリングやコーディング規約チェックなど、
コンパイラの助けを得たほうが出来ることを、コンパイラにやらせ、
その機能の呼び出しをテキストエディタから行いたい。
0091デフォルトの名無しさん2011/10/26(水) 08:47:34.31
>>90
最新のIDEを使えばオケ
0092デフォルトの名無しさん2011/10/26(水) 19:31:34.49
>>91
最新のIDEの限界を超えた所を狙ってる。
0093デフォルトの名無しさん2011/10/26(水) 19:39:49.76
なら言語じゃなくIDE作れよ
今の言語の文法難しくてパーサー作れない
処理系の吐く情報難しくて解析出来ない
よしオラ言語作る!
これでは進まないのも当たり前
0094デフォルトの名無しさん2011/10/26(水) 20:03:49.45
>>93
言語(ソースコード)はデータであり
IDEはそのデータを処理するツール

いくらツールがすごくても
データがなければ、なにも処理できない。

つまりIDEを更に進化させるためには
データである言語をIDEに適したものに改良する必要がある。
0095デフォルトの名無しさん2011/10/26(水) 20:30:41.33
普通に静的型付けなら実現不可能ではない内容に見えるが
0096デフォルトの名無しさん2011/10/26(水) 21:32:59.78
>>94
その考えが既に浅薄だとは気づかないのか
構文解析やリンケージやシンボル情報うんぬんありきのIDEだと気づけ

文法をパーサが簡単になるようにするとかは
別に構わないが、IDEありきの言語とか
本末転倒にもほどがある
最近のだどgolangの設計方針とか
パッケージとかgocodeとかみてみ
0097デフォルトの名無しさん2011/10/26(水) 21:57:34.80
>>96

IDEありきなんて言ってないですよ?

>>90を読んでください。むしろ180度逆で
IDEがやっているようなことをコンパイラサーバーに
やらせることで、テキストエディタでも
IDEと同等の高度なことができるようにするという書いてあるでしょ。

なんでこう人の話聞かないかな。
0098デフォルトの名無しさん2011/10/26(水) 23:13:40.41
本質的に同じだろ
パーサにどう吐かせるか
吐いた情報をどう加工するかだけの話
そんなのは言語自体ではなく単なる処理系のバックエンドの話
その辺と言語をごっちゃにしてるから浅薄だと
0099デフォルトの名無しさん2011/10/26(水) 23:23:22.06
>>98
頭悪いねぇ。

吐いた情報? じゃあその情報はどこから持ってきた。

言ってみ。
0100デフォルトの名無しさん2011/10/27(木) 07:37:55.47
パーサーと書いてるだろ
ASTなりなんなりを吐くんだよ
サーバに置こうがローカルだろうがやることは同じに決まってんだろ
処理系の知識0ならまずは
ドラゴンでも中田さんのでも読んで来い
0101デフォルトの名無しさん2011/10/27(木) 10:13:05.31
コンパイルフェーズをプラガブルにしてフロントエンドだろうが、中間言語処理部だろうが、バイナリに落とすところだろうが
どこでも割り込み可能にしたら多分なんでも持ってこれる
昔、gccで中間言語をXMLに落としたり、情報拾って部分式の型や逆参照を類推するような実験的プロジェクトがあったんだけどそういうやり方だった
まぁ当時はgccプラグインとか無かったから、無理やりコード改変でやってたけど今ならもう少し楽かも
0102デフォルトの名無しさん2011/10/27(木) 19:54:22.84
LLVM
0103デフォルトの名無しさん2011/10/27(木) 21:04:59.31
まあコンパイラの基本だよな
gccも昔は弄りやすかったけど
今はモンスターになっちまって見る気にならんけど
0104デフォルトの名無しさん2011/10/27(木) 23:21:04.40
>>100
> パーサーと書いてるだろ

パーサーはなんでもでてくる四次元ポケットじゃないぞw
パーサーはただ情報をコンピュータが理解できる形に変換するだけ。

情報はそもそもソースコードにある。

ソースコードになにを書くか。それは言語によって決まる。
言語によって、どれだけ情報を取り出せるかが決まる。
多くの情報を取り出せるようにするには、言語を作るという話になる。

ここまで説明すれば理解できるよな?
単純にパーサーが頑張ればなんでもできるってわけじゃないことが。
0105デフォルトの名無しさん2011/10/27(木) 23:24:45.74
じゃあどんな情報が必要だと思ってるんだ
0106デフォルトの名無しさん2011/10/27(木) 23:30:42.03
たとえばJavaに「このメソッドは自分自身のオブジェクトを変更しない」という情報をつける構文があれば、
自分自身を変更しようとした時に警告を出せる。

これはいくらパーサーが頑張ってもできないことだ。
0107デフォルトの名無しさん2011/10/27(木) 23:38:23.85
他にも、言語仕様が不足していたためIDEで
コーディングサポートが実装出来なかった機能として
Javaのenumがあるよな。昔のJavaはenumがなかったら
引数に入る値のコーディングサポートが出来なかった

パーサーや言語以外の何かが頑張ればなんでもできるってわけじゃない。
言語仕様によって、IDEが出来る機能は変わってくる。
これは紛れも無い事実。

なら逆に、IDEの機能をさらに発展させるには
言語仕様を変える必要があるという発想は自然と出てくるはずだ。
0108デフォルトの名無しさん2011/10/27(木) 23:43:22.82
なんというか、自説を認めさせたいだけでそこまで凄いアイデアがあったわけじゃないのね
0109デフォルトの名無しさん2011/10/27(木) 23:43:42.02
あと、言っておくがIDEを出したのは話がわかりやすいからであって
別にテキストエディタでも同じ事だぞ。

俺は存在を知らないが、高度なテキストエディタがあれば
IDEと同等の文法を理解した上での、コーディングサポートをしてくれるだろう。

で、なぜそんな高度なテキストエディタは存在しないのか?俺は存在を知らんのだw
その理由は、今のコンパイラは、コンパイルすることしか出来ず
コンパイル途中の情報を取り出せない。

IDEなみの機能を搭載するには、テキストエディタ開発者がコンパイラを作らなきゃいけない。
それは普通に考えてありえない話。だからコンパイラのアーキテクチャも変更しないといけない。
それがコンパイラのサーバー化という話。

テキストエディタを進化させるためのコンパイラサーバー化だ。
0110デフォルトの名無しさん2011/10/27(木) 23:45:46.59
>>108
誰がすごいアイデアといったんだ?

最初から、このスレらしく「そういう言語を開発したい」と言ってるだけだろ。
  ↓
>>90
> できるようにした言語が作りたい。

そんだけしか言うことがないなら、難癖つけてくんなよ。
0111デフォルトの名無しさん2011/10/27(木) 23:47:56.25
ここまでで、開発全体を快適にするためには、
IDEで頑張る前に、言語仕様を頑張る必要があるという話に
同意いただけましたでしょうか?
0112デフォルトの名無しさん2011/10/27(木) 23:50:14.57
constをあんなに早くに導入したC++は神ということで
0113デフォルトの名無しさん2011/10/28(金) 00:11:04.41
>>112
おい、答え言うなよw

せっかく、そんな機能に何の意味があるんだ?って
素人丸出しレスを待っていたのにw
0114デフォルトの名無しさん2011/10/28(金) 01:12:50.05
意味が全くわからん
enumがIDEとかエディタとか
IDEとエディタを分けて考えてたり
コンパイラが情報を出してくれないとか
色々ツッコミ所が多すぎて…
モノを知らなさ過ぎる

enumもconstもvolatileもprivateなんてのも
言語の必要性から来たもの
人間にもコンパイラにも理解出来るものは
IDE/エディタにも理解させれるのは当然だが…

後は冗長で縛り過ぎる言語は誰も使わないぞ
契約プログラミングとか今や何それだろ

興味があるなら色々処理系みて見るといい
gccなんかの中間情報もだが
goとかは自分のパーサが標準ライブラリだし
エディタで補完するための情報吐くツールもある
0115デフォルトの名無しさん2011/10/28(金) 08:43:51.06
>>114
意味がわからんのはお前が馬鹿だからじゃね?

そもそも言語の必要性ってなんだ?w
enumになんの言語の必要性があるんだ。
言語の必要性で言えば、constで十分じゃねぇか。
実際ちょっと前まではenumしか無かったんだし。

極論いえば、全部アセンブラでも作れる。
言語っていうのは「人間が書きやすくするため」に作られたもんだ。
ならば、人間がさらに書きやすくするためには、言語を改良するのは当たり前の話。

IDE・エディタが頑張るのは、その次の段階だし、
言語機能が不足していれば、IDE・エディタががんばろうとしても
不可能なのは、enumやメソッドのconstで例に出したとおり。

具体的な例は出てる。それが違うというのなら、関係ないごちゃごちゃとして文章はいらない。
「言語仕様によって、IDE・エディタがサポートできる機能が変わってくる」
このことに”だけ”に反論してくれ。
0116デフォルトの名無しさん2011/10/28(金) 11:49:02.68
>>115
理想のIDEを作るために最適な言語仕様を考えよう
と言いたいなら理解できる。

本末転倒であることは分かってると思うが
百歩譲って、それが生産性や快適さをどう改善するんだ?
0117デフォルトの名無しさん2011/10/28(金) 20:41:49.12
>>116
理想のIDEというのは正確じゃないな。

コーディングサポートと言ったほうが的確。テキストエディタであっても
多かれ少なかれコーディングのサポート機能はあるだろう。

例えば、構文に色をつけるのだってその一つだ。
さすが色があっても生産性や快適さを改善することにならないと
主張するわけじゃあるまい?

あとは「どう改善するんだ?」という話じゃないのは解るかな?
どう改善するかではなく「どう改善したいか?」だよ。

それが、言語仕様で決まっていなくてもできることなら、言語仕様の変更はいらない。
だがenumみたいに、言語仕様があることでコーディングサポートが改善する、
ということはあるというのが事実。

もう限界でこれ以上生産性も快適さも上がらないよ。言語はもう発展しきった。と
いうのなら、そいつには、君のとってはそうだねって俺は言うだけだ。
0118デフォルトの名無しさん2011/10/28(金) 21:38:00.08
その「どう改善したいか」を君が示せないから賛同を得られないのだが
0119デフォルトの名無しさん2011/10/28(金) 22:16:44.12
>>118
つ「言語仕様によって、IDE・エディタがサポートできる機能が変わってくる」
このことに”だけ”に反論してくれ。
0120デフォルトの名無しさん2011/10/28(金) 23:17:38.11
コテハンかトリップ付けてくれ
0121デフォルトの名無しさん2011/10/28(金) 23:23:05.24
俺の好きにする
0122デフォルトの名無しさん2011/10/29(土) 03:49:03.42
114だがconstやenumを#defineがわりとしか見てないとか、もう…

とにかく言語云々よりIDE()が作りたい事だけはわかった

もし実際になにかを作り始めたら
いずれ俺の書いた意味がわかる日も来るよ
0123デフォルトの名無しさん2011/10/29(土) 08:51:50.38
>>122
なんか偉そうだなw

俺の書いたことに一切反論出来なかったくせに。
0124デフォルトの名無しさん2011/10/29(土) 09:47:10.64
>>122
お前卑怯者。

#defineという単語を出したのはお前が初めてだ。
お前の書き込みは、#defineがわりとしてみていると
周りの人に錯覚させようという書き込みだろ。

#defineがわりと勘違いしているのはお前だけだ。
0125デフォルトの名無しさん2011/10/29(土) 09:54:51.24
どう見ても、そうとしか見えない、と表明したら、
「周りの人に錯覚させようという書き込み」になるのかwwwwwwwwwwww
0126デフォルトの名無しさん2011/10/29(土) 09:58:30.06
>>122では
「がわりとしか見てない」

>>125では
「そうとしか見えない」

相手に対して言った言葉が、
自分の感想に摩り替わってる。

無意識で自分の都合の言いように
自分の発言を思い込む人なのか?
0127デフォルトの名無しさん2011/10/29(土) 10:03:07.57
違うならどう違うか、具体的に反論すればいいだけなのに、人格攻撃しかできないの?
0128デフォルトの名無しさん2011/10/29(土) 10:06:26.26
なにに反論すればいいかわかんなくなってきてるみたいだから
もっかい書いておくわ。

> 「言語仕様によって、IDE・エディタがサポートできる機能が変わってくる」
> このことに”だけ”に反論してくれ。

これに対する反論はでてない。
0129デフォルトの名無しさん2011/10/29(土) 10:18:57.43
それ以外の主張はどうでもいいことだから無視していいわけね。
全く見なかったものとして、無視しても一切文句ないわけね。了解。
0130デフォルトの名無しさん2011/10/29(土) 10:25:28.37
>>129
そもそも>>90になにがしたいかは書いてある。

それにして、反論したい人がいるみたいだが、
その内容が、「お前はわかってない(その理由は書いてない)」ばかりで
何の反論にもなってないのだ。

そしてそいつは質問ばかりする。それに対して
enumやconstの例を出して説明があるが、
それに対しても「お前はわかってない(その理由は書いてない)」と
言うばかりで、何の反論もない。

どっちのワンサイドゲームになっているか一目瞭然だろう。
0131デフォルトの名無しさん2011/10/29(土) 10:31:47.36
挙句の果てに、constを#defineの代わりとか言い出す。
話をちゃんと見ていれば、ここで出ているconstは
定数のconstではなく、メソッドのconstであることはわかるはず。

そこに根本的なレベルの差を感じるよ。
0132デフォルトの名無しさん2011/10/29(土) 10:34:19.83
根本的なレベルの差、って、2ちゃんねるに思いのたけを書き綴るしかできないレベルの低さのこと?
0133デフォルトの名無しさん2011/10/29(土) 10:42:23.96
人格攻撃しかできないの?
0134デフォルトの名無しさん2011/10/29(土) 12:02:53.46
「言語仕様によって、IDE・エディタがサポートできる機能が変わってくる」
別にそのことそれ自体に対しては誰も否定していないので安心してね

という事でこの話はもう終わりにしよう
0135デフォルトの名無しさん2011/10/29(土) 12:09:23.71
完全勝利で終わらす気かw

反論しろよ。
0136デフォルトの名無しさん2011/10/29(土) 12:16:12.29
だってそれ以外には何も書いてない、とみなしていいということなんだから、
そういうことでしょ?
0137デフォルトの名無しさん2011/10/29(土) 12:21:50.13
どうでもいいよ。
ここまでの間>>90の言うことに
まともな反論はなかったという事実が全てだから。
0138デフォルトの名無しさん2011/10/29(土) 12:30:20.41
自分の主張している範囲を絞って相手に同意させて
元々の主張全体を正しいように見せる

この詭弁のテクニックは何か名前がついてた気がするけどなんだっけ
0139デフォルトの名無しさん2011/10/29(土) 12:42:51.41
> なにに反論すればいいかわかんなくなってきてるみたいだから
> もっかい書いておくわ。

> > 「言語仕様によって、IDE・エディタがサポートできる機能が変わってくる」
> > このことに”だけ”に反論してくれ。

このこと以外についての反論は相手にしない、って明言してるもんな。
0140デフォルトの名無しさん2011/10/29(土) 12:43:49.56
で>>90に負けたわけかw
情けないな。
0141デフォルトの名無しさん2011/10/29(土) 12:46:10.24
実装してから勝利宣言しろよw
0142デフォルトの名無しさん2011/10/29(土) 13:27:08.81
「開発したい」スレでなに言ってんだ?
01431142011/10/29(土) 13:55:26.98
全ての視点がツールでのサポートがどうたらで
その事を言語仕様の重要点にする意味が
ないって指摘をしてんだが
フルシカトだから話にならんね

あ、constがあればenumいらねと書いた事は面倒だから忘れてやるよ
0144デフォルトの名無しさん2011/10/29(土) 14:09:02.64
>>143
言語仕様ってのは、人間が使いやすくするために存在するもの。
すべてがシンタックスシュガーであるといってもいい。

使いにくくてもいいなら、比較とジャンプができれば、事足りるんだからさ。


人間が使いやすくする=ツールのサポートも含まれる。
最終的な目的は何だ? ツールを使ったらダメなのか?
そうじゃないだろ。使いやすく出来るのであれば
どんな手段もとっていいはずだ。
0145デフォルトの名無しさん2011/10/29(土) 14:12:30.42
普通チューリング等価であることをシンタクティックシュガーと表現したりはせんぞ
0146デフォルトの名無しさん2011/10/29(土) 14:16:30.09
だからなんだよw
0147デフォルトの名無しさん2011/10/29(土) 14:19:40.36
コーディングサポートの為だけに言語仕様を追加するのは効果が薄い(無い)のではという批判が主なのに
何ズレた反論を延々としてるんだろう

例に上がってるenumやconstだって開発環境の為のヒントの為だけに作られたわけじゃないし
ぶっちゃけそういうのはアノテーションで十分じゃん
0148デフォルトの名無しさん2011/10/29(土) 14:24:19.28
> コーディングサポートの為だけに言語仕様を追加するのは効果が薄い(無い)のではという批判が主なのに

その批判に根拠が無いから
だらだらと続いているんだろ。
0149デフォルトの名無しさん2011/10/29(土) 14:39:12.77
快適なスレッドリーディングサポートのために
コテハンの追加を所望
0150デフォルトの名無しさん2011/10/29(土) 15:06:11.79
言いだしっぺからどうぞ
0151快適なスレッドリーディングサポートのためにコテハンの追加を所望2011/10/29(土) 15:15:44.70
こうか
0152 ◆zQSWiGWUZ6 2011/10/29(土) 15:32:05.31
ほらよ、コテハン。
これでなにがしたいのかしらんが。
0153 ◆R8FrGenb6Y 2011/10/29(土) 15:32:28.97
ちなみに、こんなのもある。
0154 ◆.EsjK4Weww 2011/10/29(土) 15:33:35.39
さて、これでなにが快適になると思うか。
だがコテハンできたのだから、満足したろ?
0155デフォルトの名無しさん2011/10/29(土) 15:42:36.82
コテハンと言われてトリップを付けるか。
まぁ他人になりすまされることがないからそのほうがいいか。
0156デフォルトの名無しさん2011/10/29(土) 15:44:47.55
じゃあそういうことで。なお、コテハンもトリップも
つけたり外したり変えたりするのでよろしくw
0157デフォルトの名無しさん2011/11/08(火) 23:07:44.93
それなら言語の処理系本体に持たせて、各々のIDEが車輪の再発明しないだけでも
小さな一歩と言えると思うんだけど
全体的に見て、後退と言える要素がほとんど見当たらないんだけど
>> 97
の意見は私はいいカンしているように見える
0158デフォルトの名無しさん2011/11/08(火) 23:59:51.76
外部ツールで補完の情報やらクロスリファレンスを
出させてエディタで利用する
なんてのはかなり昔から存在する
構文解析はエディタの外部だと反応が鈍くなる
どっちにしろ新言語というより処理系の話
0159デフォルトの名無しさん2011/11/09(水) 01:11:28.86
かといってemacsのように重たくなっても困るしな

だれかemacsにコンパイラ仕込んだ奴いる?
0160デフォルトの名無しさん2011/11/09(水) 01:13:16.02
excelなら見たことあるな、うろ覚えでググる気にもならんが・・・
0161デフォルトの名無しさん2011/11/09(水) 01:38:10.65
エディタにコンパイラ仕込むっていう意味が不明だが
flymakeで裏で文法チェックとか出来る
eclipseもjavaは知らんがCDTはgccとかを呼んでるだろ
0162デフォルトの名無しさん2011/11/09(水) 05:10:07.71
>>160
これのことか?
http://d.hatena.ne.jp/n7shi/20100519
0163デフォルトの名無しさん2011/11/09(水) 13:04:26.33
面白いな、これのemacs版でも作ってみるといいかもな
0164デフォルトの名無しさん2011/11/12(土) 21:38:55.58
http://babanba-n.iobb.net/mylang.txt
マジレスするとこんな感じの言語が欲しい

中二病の妄想投下だよね、失礼…
0165デフォルトの名無しさん2011/11/12(土) 22:04:28.44
真面目な回答をすると人工言語ロジバンがコンパイルして実行可能なので
院生とかでこのコンパイラ作れば歴史に名を残せそう…
0166デフォルトの名無しさん2011/11/12(土) 22:27:02.77
GUI の作成を含め、IDE が作りやすい言語、作りにくい言語と
いうのはある

Smalltalk は、IDE が作りやすい言語

C++ は、IDE が作りにくい言語
Microsoft の Visual C++ なんて、Visual という言葉を捨てた
方がいい
0167デフォルトの名無しさん2011/11/12(土) 22:39:42.29
>>166
VC++を捨てるのはいいとして、
Smalltalkは使われてないだろw

他にまともなものを出さないと
捨てようにも捨てられない。
0168デフォルトの名無しさん2011/11/12(土) 23:06:30.35
C++は文法が複雑になり過ぎて
機械的なパーザが作りにくいからな
STはObjectiveCとして生きながらえるしか…
0169デフォルトの名無しさん2011/11/12(土) 23:33:15.12
>>168
よくわからん。
いくら複雑といってもコンパイラはパース出来るんだろ?
ならIDEだって同じ方法で理解できると思うんだが。
0170デフォルトの名無しさん2011/11/13(日) 01:38:38.72
IDEで開発支援するなら動的言語が最適
0171デフォルトの名無しさん2011/11/13(日) 02:10:10.38
>>170
動的言語で一括りにするなよ。
っていうか、世の中のほとんどは動的言語じゃね?

IDEが発達している言語は、Java、C++、
C、C#、VB.NET、Smalltalkぐらいじゃね?
あとの言語は数世代遅れた所で止まってる。
0172デフォルトの名無しさん2011/11/13(日) 02:13:06.13
>>169
文字打つたびに長ったらしいコンパイルなんてやり始めたら作業にならんだろ
0173デフォルトの名無しさん2011/11/13(日) 02:15:27.61
>>172
バックグラウンドでやるから関係ないよ。
0174デフォルトの名無しさん2011/11/13(日) 10:15:38.45
デバッグしながらコード書ける?
0175デフォルトの名無しさん2011/11/13(日) 20:54:58.22
>>172
BoostのTMP系でも食ってなきゃ滅多にないだろ。
0176デフォルトの名無しさん2011/11/13(日) 21:10:12.22
>>164
俺も昔はこんなのだったなあと思いつつ言うので許してね…。
ぶっちゃけ酷い。プログラマーとして初心者以下のレベル。
0177デフォルトの名無しさん2011/11/13(日) 23:18:16.24
ひどい理由が書いていない。
ぶっちゃけ評価する人間として、初心者以下のレベル。
0178デフォルトの名無しさん2011/11/14(月) 00:28:30.86
>>177
これで軽く気持ち悪くなった。
>i=0.to_i // 一度Int型で固定
>i : Obj // どんな方でも受け入れることに変更

モンキーパッチ推奨、DRYと真逆の発想、可読性無視、スコープ破壊
もうお腹いっぱいです。

・動的型と静的型の違いは明確に。
・シノニムが多い。統一性を。(これではただの変態Ruby)
・ライブラリ、型、言語仕様の境界が曖昧すぎ。
 NullContext: 継承による拡張はライブラリ側。スコープは言語。

・メソッド接尾子
 if enabled? ... else ... : truthy、falsyが曖昧。可読性悪。
 array.push! : 強制すると感染しますので破綻します。
  万が一実装するにしても、これこそ型を使うべき。(C++のconst)
0179デフォルトの名無しさん2011/11/14(月) 00:30:02.21
追加

・オペレーターオーバーロードっぽい機能は静的型用。動的メソッドは無理。
0180デフォルトの名無しさん2011/11/14(月) 00:45:16.79
いい過ぎた。すまん。
読んでて実装無視の仕様に腹が立っただけなんだ。
本人も中二と認めてるものにいちいち口出して済まんかった。
0181デフォルトの名無しさん2011/11/14(月) 01:27:46.29
一時の感情で発言して、その後謝罪するという無駄行為は謹んでください。
0182デフォルトの名無しさん2011/11/14(月) 01:35:02.56
どっちもキモイので謹んでください。
0183デフォルトの名無しさん2011/11/14(月) 14:12:17.53
ide言語君よりかなりマシな流れ
0184デフォルトの名無しさん2011/11/14(月) 21:32:25.37
>>183
なにも言うことがないお前よりも、ide言語君の方がマシ。
0185デフォルトの名無しさん2011/11/14(月) 21:59:22.95
とりあえず、そのide言語君が「何を、いつまでに」作ってくるか
答えるまでは評価しないという方向で・・・
ネタは>>162で与えた筈
0186デフォルトの名無しさん2011/11/14(月) 22:16:57.35
>>185
言い出しっぺの法則。
まずお前から
0187デフォルトの名無しさん2011/11/14(月) 22:34:12.17
パス
01881642011/11/14(月) 22:52:59.80
>> 180
どうも、真面目な話参考になりました
具体的に非難されるとよく考えるきっかけになるし、ありがたかったです
ちょいちょいと修練しなおしてきます

少し恥ずかしいですが、恥の記念碑みたいなもので少し残しておきます
こういうスレは進みが遅いので、1000行くまで残すことはないですが
0189デフォルトの名無しさん2011/11/19(土) 16:32:25.73
ないね
0190デフォルトの名無しさん2011/11/21(月) 19:55:38.62
まずは 新言語からCに変換してgccで実行ファイル作るとこまでやる
これだけでも世界が変わる
納得いくものができたら次のステップへ
0191デフォルトの名無しさん2011/11/29(火) 23:11:00.82
今ならjs吐かせてブラウザから
試せるようにしたら話題を少し掴めるかもな
■ このスレッドは過去ログ倉庫に格納されています