http://pc12.2ch.net/test/read.cgi/tech/1274015781/l50 の継続スレのかたわれです。
低水準言語にこだわる人は「低水準言語を開発したい」のほうへどうぞ。
探検
新言語を開発したい
■ このスレッドは過去ログ倉庫に格納されています
2010/05/30(日) 21:52:01
2010/05/30(日) 23:21:19
>>8
C#で不満なところは?
C#で不満なところは?
2010/05/30(日) 23:32:52
>>8
うん。大規模なプロジェクト、あるいは一人だけで作る場合の生産性を上げるようなものだね
うん。大規模なプロジェクト、あるいは一人だけで作る場合の生産性を上げるようなものだね
2010/05/30(日) 23:36:27
>>9
上司にC#の言語の制約で出来ませんと言い訳できないところ。
上司にC#の言語の制約で出来ませんと言い訳できないところ。
2010/05/30(日) 23:57:36
オブジェクト指向寄りでGC有りより、
関数型寄りでGC,VM無しのCって方が面白そうだわな。
関数型寄りでGC,VM無しのCって方が面白そうだわな。
13デフォルトの名無しさん
2010/05/31(月) 00:14:44 そんな時代遅れ言語はあっちでよろしく
2010/05/31(月) 00:54:49
scalaでいいじゃん
2010/05/31(月) 00:57:02
あっちは紙降臨した模様
2010/05/31(月) 00:58:55
髪(笑)
2010/05/31(月) 23:57:24
Gentee でいいだろ
2010/06/01(火) 03:35:31
ここが一番負けてるな
2010/06/01(火) 03:39:24
見えない敵と戦ってる人こわい
2010/06/01(火) 16:32:44
見えない敵が一番手ごわい
2010/06/02(水) 00:05:51
分割前のスレに書いたことの要約
【新言語開発が破綻する典型的なパターン】
言語比較厨登場。言語仕様を大量に盛り込む。工数が膨大に。
↓
開発者が不足。しかも楽しい仕事しかやりたがらないダメな奴ばっかり。
↓
よってライブラリ、デバッガ、IDEの製作やドキュメントの整備等の
面倒だが重要な仕事は手抜きし放題。場合によっては完全放置。
↓
使えない糞言語なので、ユーザーが集まらない。
誰も使ってくれないので開発者のモチベーションが保てない。
↓
終了。
【対策】
・言語ヲタを排除する。工数を増やす人はいらない。
・達成目標をよく議論して明確にする。無計画に始めない。
・小さい言語仕様にする。出来上がってから少しづつ拡張すればいい。
・他の言語に勝てる分野で勝負する。使えない言語を開発することに意義はない。
【新言語開発が破綻する典型的なパターン】
言語比較厨登場。言語仕様を大量に盛り込む。工数が膨大に。
↓
開発者が不足。しかも楽しい仕事しかやりたがらないダメな奴ばっかり。
↓
よってライブラリ、デバッガ、IDEの製作やドキュメントの整備等の
面倒だが重要な仕事は手抜きし放題。場合によっては完全放置。
↓
使えない糞言語なので、ユーザーが集まらない。
誰も使ってくれないので開発者のモチベーションが保てない。
↓
終了。
【対策】
・言語ヲタを排除する。工数を増やす人はいらない。
・達成目標をよく議論して明確にする。無計画に始めない。
・小さい言語仕様にする。出来上がってから少しづつ拡張すればいい。
・他の言語に勝てる分野で勝負する。使えない言語を開発することに意義はない。
2010/06/02(水) 00:10:20
まだ始まってもいないのに気の早いやつだな
2321
2010/06/02(水) 00:56:57 汎用言語を作っても無視されるか他言語の劣化コピー扱いされるのがオチだし
ライブラリ作成の工数を減らす意味でも対象にするドメインを絞ったほうがいい。
自分が勝算がありそうだと思う分野をあげておく。
【ゲーム専用言語】
有名なところだとノベルゲームやアドベンチャーゲーム用の吉里吉里2やNScripter
なんかがあるが、GOTO指向の時代遅れの言語なので普通にやれば勝てると思われる。
ネトゲは無理でも、アクションゲーム、パズルゲーム、シューティングゲーム
くらい対応できれば十分。
【携帯用言語】
携帯電話やAndroidやiPad上でプログラミングできるようにする。
既にやってる人もいるだろうが、メジャーなものはないから今なら
まだ勝てるチャンスがある。ライブラリが小さいもので済むのも利点。
【日本語プログラミング言語】
現在は"なでしこ"一人勝ち状態だが実はかなり低速な上にバグだらけ。
文法も破綻気味なのでもう少し洗練された言語を作ればシェアを
全部奪えるのではないかと思う。
【画像/動画/音声 処理用言語】
例えば本格的な画像編集をGIMPとScript-Fuなんぞで頑張るのには無理があるし
GPLでがっちり固められてしまっているのでつまらない。
およそマルティメディア関係のアプリケーションでは速度の問題が大きすぎて
結局C++でプラグイン書いてリンクのパターンになってしまう。
簡単な記述でそこそこ高速なデータ処理言語があればシェアがとれるはず。
ライブラリ作成の工数を減らす意味でも対象にするドメインを絞ったほうがいい。
自分が勝算がありそうだと思う分野をあげておく。
【ゲーム専用言語】
有名なところだとノベルゲームやアドベンチャーゲーム用の吉里吉里2やNScripter
なんかがあるが、GOTO指向の時代遅れの言語なので普通にやれば勝てると思われる。
ネトゲは無理でも、アクションゲーム、パズルゲーム、シューティングゲーム
くらい対応できれば十分。
【携帯用言語】
携帯電話やAndroidやiPad上でプログラミングできるようにする。
既にやってる人もいるだろうが、メジャーなものはないから今なら
まだ勝てるチャンスがある。ライブラリが小さいもので済むのも利点。
【日本語プログラミング言語】
現在は"なでしこ"一人勝ち状態だが実はかなり低速な上にバグだらけ。
文法も破綻気味なのでもう少し洗練された言語を作ればシェアを
全部奪えるのではないかと思う。
【画像/動画/音声 処理用言語】
例えば本格的な画像編集をGIMPとScript-Fuなんぞで頑張るのには無理があるし
GPLでがっちり固められてしまっているのでつまらない。
およそマルティメディア関係のアプリケーションでは速度の問題が大きすぎて
結局C++でプラグイン書いてリンクのパターンになってしまう。
簡単な記述でそこそこ高速なデータ処理言語があればシェアがとれるはず。
2010/06/02(水) 00:59:53
gotoは速いんだよ
2010/06/02(水) 01:04:36
gotoはゲームシナリオとの親和性が高いしな
2010/06/02(水) 01:37:13
>>25
いやノベルゲームのバグの原因の大半はGOTOとグローバル変数だと思うけど。
ノベルであっても関数言語的な構造をもっているなら自動テストを行って
ある行動をプレーヤーがとると無限ループになるとか
絶対に取れないフラグが存在するとか、バグを検出するのが容易になるので
素人こそ先進的な道具を使わせておくべきじゃないの。
いやノベルゲームのバグの原因の大半はGOTOとグローバル変数だと思うけど。
ノベルであっても関数言語的な構造をもっているなら自動テストを行って
ある行動をプレーヤーがとると無限ループになるとか
絶対に取れないフラグが存在するとか、バグを検出するのが容易になるので
素人こそ先進的な道具を使わせておくべきじゃないの。
2010/06/02(水) 01:41:18
バグの原因は素人
2010/06/02(水) 01:44:50
結局フラグ使ったステートマシンにするしかないんだから
switchのラベルでもgotoのラベルでも同じことだろう。
switchのラベルでもgotoのラベルでも同じことだろう。
2010/06/02(水) 02:07:11
>>28
例えば
ストーリー() {出会い, 事件, 別れ}
出会い() {移動, 発見, 挨拶}
移動() {台詞="
長い文章"}
…
と構造化されてるのと
*ストーリー
(長い文章)
goto 出会い
*出会い
(長い文章)
goto 移動
*移動
(長い文章)
goto 発見
…
が同じわけがねえ。
実際はif文とクラスに属してない総称型のフラグが散らばっててさらに
分けわかんないことになってるんだよ。よくあんな言語使うと思うけど。
例えば
ストーリー() {出会い, 事件, 別れ}
出会い() {移動, 発見, 挨拶}
移動() {台詞="
長い文章"}
…
と構造化されてるのと
*ストーリー
(長い文章)
goto 出会い
*出会い
(長い文章)
goto 移動
*移動
(長い文章)
goto 発見
…
が同じわけがねえ。
実際はif文とクラスに属してない総称型のフラグが散らばっててさらに
分けわかんないことになってるんだよ。よくあんな言語使うと思うけど。
2010/06/02(水) 02:10:56
エロゲ作ってんの?くれよ
2010/06/02(水) 02:11:11
総称型じゃないやw。型の決まってないフラグね。さっきまでJavaの本読んでたんでスマン。
2010/06/02(水) 02:12:45
w。
2010/06/02(水) 08:52:45
エロゲスクリプトで総称型ってなんに使うんかな。
2010/06/02(水) 20:02:44
モザイクの量とか
2010/06/02(水) 21:33:12
巨乳でも貧乳でも同じメソッドを
2010/06/02(水) 21:36:17
着衣プレイの時の制服の種類とか
2010/06/05(土) 04:43:01
AS3を汎用言語にしたい
30歳になったら本気出す
30歳になったら本気出す
2010/06/06(日) 23:04:43
普通にjsのエンジンは一杯あるわな
2010/06/07(月) 01:16:47
いや、AS3です^^;
2010/06/07(月) 02:02:11
おっと、調べたらかなり違うのね
でもあそこまでやるなら他の言語でも良さげな
でもあそこまでやるなら他の言語でも良さげな
2010/06/08(火) 02:01:33
>着衣プレイの時の制服の種類とか
詳しく
詳しく
2010/06/08(火) 07:52:42
そこかよ
43天使 ◆uL5esZLBSE
2011/07/03(日) 21:18:42.73 ∨∨
(((((((((( >着衣プレイの時の制服の種類とか ))))))))))(キリッッッッ!!!!
ゴミグラマじゃねーか
(((((((((( >着衣プレイの時の制服の種類とか ))))))))))(キリッッッッ!!!!
ゴミグラマじゃねーか
44天使 ◆uL5esZLBSE
2011/07/04(月) 04:59:35.62 これ ; デリミタっていうんだけどさ、これをつけなきゃエラーになるような
そんな言語使ってる奴ってどうみてもゴミだと思うんだけど
もしかして「;」これ打ち忘れてコンパイルエラー出すのが楽しいの?
そうか、二度と話かけんなよ
なんだ、ただのゴミか(笑)
そんな言語使ってる奴ってどうみてもゴミだと思うんだけど
もしかして「;」これ打ち忘れてコンパイルエラー出すのが楽しいの?
そうか、二度と話かけんなよ
なんだ、ただのゴミか(笑)
45ななし。
2011/07/27(水) 12:48:37.24 カオスラウンジ死ね
46デフォルトの名無しさん
2011/09/10(土) 11:36:04.49 ここもやはりgdgdか。上げ。
このままだと数年後も完成しないだろうから手法を提案をするか。
まず、初心に戻って明確なプロパガンダといいますかキャッチコピーを決めるといい。
可能であれば利用状況などの想定を盛り込んだ短編小説もね。すると必要なものがわかる。
例えばコピーであれば、
- ロケット制御用言語なら「Rock:et を使って月のウサギに会いに行こう」
- 日本語異性型ロボットAI言語はぢらひ「俺の嫁、旦那様、バーニング」
- 従来の汎用言語の改良であれば「あなたは今日からリア充です(※効果には個人差があります)」
など...。
このままだと数年後も完成しないだろうから手法を提案をするか。
まず、初心に戻って明確なプロパガンダといいますかキャッチコピーを決めるといい。
可能であれば利用状況などの想定を盛り込んだ短編小説もね。すると必要なものがわかる。
例えばコピーであれば、
- ロケット制御用言語なら「Rock:et を使って月のウサギに会いに行こう」
- 日本語異性型ロボットAI言語はぢらひ「俺の嫁、旦那様、バーニング」
- 従来の汎用言語の改良であれば「あなたは今日からリア充です(※効果には個人差があります)」
など...。
2011/09/10(土) 11:42:53.85
こういう言語が欲しい、作れというのであれば、一通り網羅した仕様書書いたほうが受け入れられやすい。
それに仕様は複数存在しても別に問題はないよ。rejectされても別プロジェクトでやればいい。
つか欲しい・作れって言うだけでは、仕様書いている人からすれば
「これこれこういう言語があるからそっち使っては?」になることが多いと思うよ。
それに仕様は複数存在しても別に問題はないよ。rejectされても別プロジェクトでやればいい。
つか欲しい・作れって言うだけでは、仕様書いている人からすれば
「これこれこういう言語があるからそっち使っては?」になることが多いと思うよ。
2011/09/10(土) 11:50:59.20
言語仕様を書きあげるのは意外と大変だからねえ。
やっぱり謎の重圧と戦う、調べることが数千件、細かいことに
配慮して悩みぬくなどあります。使うと書くとでは大違いですよ。
では押しの強いひとが現れることを願って。以上。
やっぱり謎の重圧と戦う、調べることが数千件、細かいことに
配慮して悩みぬくなどあります。使うと書くとでは大違いですよ。
では押しの強いひとが現れることを願って。以上。
2011/09/10(土) 11:58:46.33
新言語→信玄後→
2011/09/10(土) 13:46:03.85
やっぱなんらかの既存処理系においては存在しない、または直接扱うのが困難な計算モデルがあって
それを容易に扱う為の言語といった形の必要性で無いと作る意義が乏しいだろうな
こう言語仕様においてはその扱いたい計算モデルに都合の良い文法とそのプログラミング言語としての意味論を定義することが
結構大きな割合占めてると思うのよね
それを容易に扱う為の言語といった形の必要性で無いと作る意義が乏しいだろうな
こう言語仕様においてはその扱いたい計算モデルに都合の良い文法とそのプログラミング言語としての意味論を定義することが
結構大きな割合占めてると思うのよね
2011/09/10(土) 14:21:16.44
>>50
俺はそんな、適用する場所があまりない、つまり効果が薄いことよりも
もっと人間が楽になる言語がほしいよ。
具体的には、言語機能として、ユニットテスト、リファクタリング、
デザインパターン、ドキュメントの書き方まで考慮されていて、
特別な何かを別に用意しなくてもこれらが簡単に実行できること。
簡単にというのは、正規表現やワンライナーができるということも含まれている。
それでいてstrictモードなら、型をきっちり明記して、様々な統合環境を作ることも可能。
俺はそんな、適用する場所があまりない、つまり効果が薄いことよりも
もっと人間が楽になる言語がほしいよ。
具体的には、言語機能として、ユニットテスト、リファクタリング、
デザインパターン、ドキュメントの書き方まで考慮されていて、
特別な何かを別に用意しなくてもこれらが簡単に実行できること。
簡単にというのは、正規表現やワンライナーができるということも含まれている。
それでいてstrictモードなら、型をきっちり明記して、様々な統合環境を作ることも可能。
2011/09/10(土) 14:27:32.28
なんていうか言語よりも開発環境の問題だろう。
2011/09/10(土) 14:34:51.11
>>52
言語によって開発環境ができることが限られてくるんだよ。
たとえば変数に型を持たない言語では、
メソッドの補完は不可能。
だからそういうのを減らして、言語がコードの解析をして全体を理解し、
その情報を開発環境に提供することで開発環境の機能を
さらに向上できるように考慮された言語。
それは結果的に人間を楽にしてくだれる。
言語によって開発環境ができることが限られてくるんだよ。
たとえば変数に型を持たない言語では、
メソッドの補完は不可能。
だからそういうのを減らして、言語がコードの解析をして全体を理解し、
その情報を開発環境に提供することで開発環境の機能を
さらに向上できるように考慮された言語。
それは結果的に人間を楽にしてくだれる。
2011/09/10(土) 14:42:26.96
あと、開発環境に頼り過ぎなのも良くない。
たとえば名前でも意味が違う変数があるだろ?
それは開発環境ではどれが同じで違うか理解できても
テキストエディタでは理解出来ない。
もしこれが開発環境ではなく言語自体で情報を提供されるようになったら
テキストエディタからでもコマンド一発で簡単に知ることができるだろうし
テキストエディタを拡張することも簡単だろう。
だから開発環境の問題ではなく、その問題を言語側に移そうという話でもある。
たとえば名前でも意味が違う変数があるだろ?
それは開発環境ではどれが同じで違うか理解できても
テキストエディタでは理解出来ない。
もしこれが開発環境ではなく言語自体で情報を提供されるようになったら
テキストエディタからでもコマンド一発で簡単に知ることができるだろうし
テキストエディタを拡張することも簡単だろう。
だから開発環境の問題ではなく、その問題を言語側に移そうという話でもある。
2011/09/10(土) 14:47:37.10
言語処理系と言語そのものがごっちゃになってるな
リフレクションの機構は処理系が提供するものだ
仕様としてその言語処理系対する要件として定義はできるがな
リフレクションの機構は処理系が提供するものだ
仕様としてその言語処理系対する要件として定義はできるがな
2011/09/10(土) 15:49:42.66
Google、新プログラミング言語 " Dart " を来月発表、「構造化ウェブプログラミング」向け
http://japanese.engadget.com/2011/09/09/google-dart/
http://japanese.engadget.com/2011/09/09/google-dart/
2011/09/10(土) 16:02:56.76
>>55
リフレクション? リファクタリングの間違い?
リファクタリングは確かに処理系が提供するもの。
だけど、なにかの機能を載せたいと思ったとき、
その機能を実現するためには、その機能を実現するための情報が
ソースコードに書かれていないといけない。
だから、開発環境、処理系、にフォーカスを当てて
それに搭載したい機能を考え、
その機能を実現できる言語を作りましょうってことだよ。
リフレクション? リファクタリングの間違い?
リファクタリングは確かに処理系が提供するもの。
だけど、なにかの機能を載せたいと思ったとき、
その機能を実現するためには、その機能を実現するための情報が
ソースコードに書かれていないといけない。
だから、開発環境、処理系、にフォーカスを当てて
それに搭載したい機能を考え、
その機能を実現できる言語を作りましょうってことだよ。
2011/09/10(土) 16:32:19.86
>リフレクション
プログラムの実行中、コンパイル中にそのプログラム自身の構造を参照したり書き換えたりする機構の事だよ
インスタンスから自分自身の型や型からその属性や継承木を言語内で1級のオブジェクトの形で取得できるわけだ
そのインスタンスが生成されたコード内の位置を取得することができるものもある
プログラムの実行中、コンパイル中にそのプログラム自身の構造を参照したり書き換えたりする機構の事だよ
インスタンスから自分自身の型や型からその属性や継承木を言語内で1級のオブジェクトの形で取得できるわけだ
そのインスタンスが生成されたコード内の位置を取得することができるものもある
2011/09/10(土) 20:21:08.49
2011/09/11(日) 00:38:09.61
プログラミング押しえてぇえええええええええええええええええええええええええ
2011/09/11(日) 01:11:41.90
62uy
2011/09/11(日) 21:44:19.122011/09/11(日) 22:20:23.55
>>50
よくある方法で思い切って概念の整理を行うことで新しい言語を生み出すこともできる。
また一般に難しいとされるものをすっきり記述できるようにするといいと思う。
例えばオブジェクト指向や関数という概念などを、もっと単純でなものにできるか、
バグの出ない記法や間違っているものを間違っているように見せる方法はあるか、
など未だ色々と解決する問題はあるね。
よくある方法で思い切って概念の整理を行うことで新しい言語を生み出すこともできる。
また一般に難しいとされるものをすっきり記述できるようにするといいと思う。
例えばオブジェクト指向や関数という概念などを、もっと単純でなものにできるか、
バグの出ない記法や間違っているものを間違っているように見せる方法はあるか、
など未だ色々と解決する問題はあるね。
2011/09/11(日) 22:27:38.54
>>51
それって...まだ未実装のようだが Cobra だよな...
ttp://cobra-language.com/
ttp://cobra-language.com/docs/quality/
それって...まだ未実装のようだが Cobra だよな...
ttp://cobra-language.com/
ttp://cobra-language.com/docs/quality/
2011/10/01(土) 23:43:16.13
cの完全上位互換にとなっているobjective-cのアプローチが好きだ
ネイティブ吐いて、オブジェクト指向で理想的な言語だ
だが、objective-cは何かが違う。あの言語は何かを間違えた。
ネイティブ吐いて、オブジェクト指向で理想的な言語だ
だが、objective-cは何かが違う。あの言語は何かを間違えた。
2011/10/07(金) 06:26:43.46
stとCのハイブリッドだしな
@なんちゃらを無くして
gc前提なら悪くないかもしれん
@なんちゃらを無くして
gc前提なら悪くないかもしれん
67デフォルトの名無しさん
2011/10/08(土) 21:07:01.34 かもしれんね
2011/10/09(日) 15:33:05.18
objective-cってi-phoneアプリでも使われている言語だよね?
純粋なC言語ではi-phoneアプリは組めないのかな?
もしCで書けるならJAVAでも書けるって事だから
そうなるとJAVAプログラマーはキャッキャウフフになるんだけど
それを実現するには努力が必要だよね
純粋なC言語ではi-phoneアプリは組めないのかな?
もしCで書けるならJAVAでも書けるって事だから
そうなるとJAVAプログラマーはキャッキャウフフになるんだけど
それを実現するには努力が必要だよね
2011/10/09(日) 16:20:07.55
iPhoneを駆逐するために、Javaプログラマはもっと熱意を持ってAndroidアプリに取り組むべき
2011/10/09(日) 18:42:18.22
そういうことは自分が率先してやれ
2011/10/09(日) 20:00:32.37
2011/10/09(日) 20:15:09.40
>>71
まずCでJavaバイトコードを実行するVMを書きます
まずCでJavaバイトコードを実行するVMを書きます
2011/10/09(日) 20:15:49.74
それを煮ます
2011/10/09(日) 20:53:56.40
なるほど。そりゃ努力が必要だわな
2011/10/10(月) 13:39:55.32
JNIの事だと思うよ
2011/10/10(月) 16:31:23.67
dartがえらく素っ気ないc++もどきでワロタ
2011/10/10(月) 17:05:37.13
2011/10/16(日) 22:45:09.03
perlやphp,pythonの失敗を見てわかる通り、
個人やコミュニティが開発する規模の言語が
普及してから大きなメジャーアップデートしても誰もついてこない
最初に文法を決めてしまったのであれば、後から修正してはならない
個人やコミュニティが開発する規模の言語が
普及してから大きなメジャーアップデートしても誰もついてこない
最初に文法を決めてしまったのであれば、後から修正してはならない
2011/10/16(日) 22:56:08.75
失敗してんの?
2011/10/17(月) 07:36:40.16
個人が作った言語だろうが、大企業が作った言語だろうが、委員会が作った言語だろうが、
アップデートについてこれない低能を相手にしてたらやってられるわけがない。
そういう低能は切り捨てるだけ、そういうレベルの企業には潰れる以外の末路はない。そんだけ。
アップデートについてこれない低能を相手にしてたらやってられるわけがない。
そういう低能は切り捨てるだけ、そういうレベルの企業には潰れる以外の末路はない。そんだけ。
2011/10/22(土) 11:00:30.75
文法を修正したら駄目だろ。できるのは追加だけだ
2011/10/22(土) 11:29:21.56
文法を修正したら別言語じゃんw
83デフォルトの名無しさん
2011/10/24(月) 06:54:44.84 言語自体古い
文字通り生きてる有機コンピューターつくれよ
文字通り生きてる有機コンピューターつくれよ
2011/10/24(月) 06:56:14.09
脳みそ直結だろ
防壁は張っとけよ
防壁は張っとけよ
2011/10/24(月) 07:08:18.37
現生人類と比べ、喉の奥(上気道)が短い。このため、分節言語を発声する能力が低かった可能性
ネアンデルタール人 - Wikipedia
ネアンデルタール人 - Wikipedia
2011/10/24(月) 07:45:34.66
甘ったれた滑舌の悪いネアン
可愛いかもしれん
可愛いかもしれん
2011/10/25(火) 00:53:23.64
このスレを総合すると c++ が良いということですね。
2011/10/25(火) 21:12:55.84
それだけは無いな
89デフォルトの名無しさん
2011/10/26(水) 01:00:54.44 というか、コンセプトがみんなバラバラなんだよね、多分
汎用言語を作りたいのか
専用言語を作りたいのか
汎用の言語なら、動的言語か、静的型付け言語かでざっくり分かれるけど
代替の場合、自分の使っている or 愛している言語に、ほかの言語の機能を取り込む方で頭が回っている
自分の場合、Rubyのメタプログラミングの機構や、Object型にくっついている、黒魔術的なメソッドの細かい仕様バグを取り除いて再設計されたものとかを欲しいと思ってしまう
汎用言語を作りたいのか
専用言語を作りたいのか
汎用の言語なら、動的言語か、静的型付け言語かでざっくり分かれるけど
代替の場合、自分の使っている or 愛している言語に、ほかの言語の機能を取り込む方で頭が回っている
自分の場合、Rubyのメタプログラミングの機構や、Object型にくっついている、黒魔術的なメソッドの細かい仕様バグを取り除いて再設計されたものとかを欲しいと思ってしまう
2011/10/26(水) 01:32:42.96
汎用型で静的型付け言語、
それでいて動的言語で出来るメタプログラミングを
できるようにした言語が作りたい。
あとコンパイラのアーキテクチャを変更したい。
今のように実行したらバイナリが出来る方式ではなく
”プロジェクト” を "コンパイラーサーバー" に読み込ませると
ファイルを更新するたびに、コンパイル可能な所をリアルタイムでコンパイルし、
コンパイルができてる場所、エラーにある場所、その他様々な情報を取得できるという設計。
言語仕様ももそれが出来るように考慮する必要があるだろう。
そしてリファクタリングやコーディング規約チェックなど、
コンパイラの助けを得たほうが出来ることを、コンパイラにやらせ、
その機能の呼び出しをテキストエディタから行いたい。
それでいて動的言語で出来るメタプログラミングを
できるようにした言語が作りたい。
あとコンパイラのアーキテクチャを変更したい。
今のように実行したらバイナリが出来る方式ではなく
”プロジェクト” を "コンパイラーサーバー" に読み込ませると
ファイルを更新するたびに、コンパイル可能な所をリアルタイムでコンパイルし、
コンパイルができてる場所、エラーにある場所、その他様々な情報を取得できるという設計。
言語仕様ももそれが出来るように考慮する必要があるだろう。
そしてリファクタリングやコーディング規約チェックなど、
コンパイラの助けを得たほうが出来ることを、コンパイラにやらせ、
その機能の呼び出しをテキストエディタから行いたい。
2011/10/26(水) 08:47:34.31
>>90
最新のIDEを使えばオケ
最新のIDEを使えばオケ
2011/10/26(水) 19:31:34.49
>>91
最新のIDEの限界を超えた所を狙ってる。
最新のIDEの限界を超えた所を狙ってる。
2011/10/26(水) 19:39:49.76
なら言語じゃなくIDE作れよ
今の言語の文法難しくてパーサー作れない
処理系の吐く情報難しくて解析出来ない
よしオラ言語作る!
これでは進まないのも当たり前
今の言語の文法難しくてパーサー作れない
処理系の吐く情報難しくて解析出来ない
よしオラ言語作る!
これでは進まないのも当たり前
2011/10/26(水) 20:03:49.45
>>93
言語(ソースコード)はデータであり
IDEはそのデータを処理するツール
いくらツールがすごくても
データがなければ、なにも処理できない。
つまりIDEを更に進化させるためには
データである言語をIDEに適したものに改良する必要がある。
言語(ソースコード)はデータであり
IDEはそのデータを処理するツール
いくらツールがすごくても
データがなければ、なにも処理できない。
つまりIDEを更に進化させるためには
データである言語をIDEに適したものに改良する必要がある。
2011/10/26(水) 20:30:41.33
普通に静的型付けなら実現不可能ではない内容に見えるが
2011/10/26(水) 21:32:59.78
>>94
その考えが既に浅薄だとは気づかないのか
構文解析やリンケージやシンボル情報うんぬんありきのIDEだと気づけ
文法をパーサが簡単になるようにするとかは
別に構わないが、IDEありきの言語とか
本末転倒にもほどがある
最近のだどgolangの設計方針とか
パッケージとかgocodeとかみてみ
その考えが既に浅薄だとは気づかないのか
構文解析やリンケージやシンボル情報うんぬんありきのIDEだと気づけ
文法をパーサが簡単になるようにするとかは
別に構わないが、IDEありきの言語とか
本末転倒にもほどがある
最近のだどgolangの設計方針とか
パッケージとかgocodeとかみてみ
2011/10/26(水) 21:57:34.80
2011/10/26(水) 23:13:40.41
本質的に同じだろ
パーサにどう吐かせるか
吐いた情報をどう加工するかだけの話
そんなのは言語自体ではなく単なる処理系のバックエンドの話
その辺と言語をごっちゃにしてるから浅薄だと
パーサにどう吐かせるか
吐いた情報をどう加工するかだけの話
そんなのは言語自体ではなく単なる処理系のバックエンドの話
その辺と言語をごっちゃにしてるから浅薄だと
2011/10/26(水) 23:23:22.06
100デフォルトの名無しさん
2011/10/27(木) 07:37:55.47 パーサーと書いてるだろ
ASTなりなんなりを吐くんだよ
サーバに置こうがローカルだろうがやることは同じに決まってんだろ
処理系の知識0ならまずは
ドラゴンでも中田さんのでも読んで来い
ASTなりなんなりを吐くんだよ
サーバに置こうがローカルだろうがやることは同じに決まってんだろ
処理系の知識0ならまずは
ドラゴンでも中田さんのでも読んで来い
101デフォルトの名無しさん
2011/10/27(木) 10:13:05.31 コンパイルフェーズをプラガブルにしてフロントエンドだろうが、中間言語処理部だろうが、バイナリに落とすところだろうが
どこでも割り込み可能にしたら多分なんでも持ってこれる
昔、gccで中間言語をXMLに落としたり、情報拾って部分式の型や逆参照を類推するような実験的プロジェクトがあったんだけどそういうやり方だった
まぁ当時はgccプラグインとか無かったから、無理やりコード改変でやってたけど今ならもう少し楽かも
どこでも割り込み可能にしたら多分なんでも持ってこれる
昔、gccで中間言語をXMLに落としたり、情報拾って部分式の型や逆参照を類推するような実験的プロジェクトがあったんだけどそういうやり方だった
まぁ当時はgccプラグインとか無かったから、無理やりコード改変でやってたけど今ならもう少し楽かも
102デフォルトの名無しさん
2011/10/27(木) 19:54:22.84 LLVM
103デフォルトの名無しさん
2011/10/27(木) 21:04:59.31 まあコンパイラの基本だよな
gccも昔は弄りやすかったけど
今はモンスターになっちまって見る気にならんけど
gccも昔は弄りやすかったけど
今はモンスターになっちまって見る気にならんけど
104デフォルトの名無しさん
2011/10/27(木) 23:21:04.40 >>100
> パーサーと書いてるだろ
パーサーはなんでもでてくる四次元ポケットじゃないぞw
パーサーはただ情報をコンピュータが理解できる形に変換するだけ。
情報はそもそもソースコードにある。
ソースコードになにを書くか。それは言語によって決まる。
言語によって、どれだけ情報を取り出せるかが決まる。
多くの情報を取り出せるようにするには、言語を作るという話になる。
ここまで説明すれば理解できるよな?
単純にパーサーが頑張ればなんでもできるってわけじゃないことが。
> パーサーと書いてるだろ
パーサーはなんでもでてくる四次元ポケットじゃないぞw
パーサーはただ情報をコンピュータが理解できる形に変換するだけ。
情報はそもそもソースコードにある。
ソースコードになにを書くか。それは言語によって決まる。
言語によって、どれだけ情報を取り出せるかが決まる。
多くの情報を取り出せるようにするには、言語を作るという話になる。
ここまで説明すれば理解できるよな?
単純にパーサーが頑張ればなんでもできるってわけじゃないことが。
105デフォルトの名無しさん
2011/10/27(木) 23:24:45.74 じゃあどんな情報が必要だと思ってるんだ
106デフォルトの名無しさん
2011/10/27(木) 23:30:42.03 たとえばJavaに「このメソッドは自分自身のオブジェクトを変更しない」という情報をつける構文があれば、
自分自身を変更しようとした時に警告を出せる。
これはいくらパーサーが頑張ってもできないことだ。
自分自身を変更しようとした時に警告を出せる。
これはいくらパーサーが頑張ってもできないことだ。
107デフォルトの名無しさん
2011/10/27(木) 23:38:23.85 他にも、言語仕様が不足していたためIDEで
コーディングサポートが実装出来なかった機能として
Javaのenumがあるよな。昔のJavaはenumがなかったら
引数に入る値のコーディングサポートが出来なかった
パーサーや言語以外の何かが頑張ればなんでもできるってわけじゃない。
言語仕様によって、IDEが出来る機能は変わってくる。
これは紛れも無い事実。
なら逆に、IDEの機能をさらに発展させるには
言語仕様を変える必要があるという発想は自然と出てくるはずだ。
コーディングサポートが実装出来なかった機能として
Javaのenumがあるよな。昔のJavaはenumがなかったら
引数に入る値のコーディングサポートが出来なかった
パーサーや言語以外の何かが頑張ればなんでもできるってわけじゃない。
言語仕様によって、IDEが出来る機能は変わってくる。
これは紛れも無い事実。
なら逆に、IDEの機能をさらに発展させるには
言語仕様を変える必要があるという発想は自然と出てくるはずだ。
108デフォルトの名無しさん
2011/10/27(木) 23:43:22.82 なんというか、自説を認めさせたいだけでそこまで凄いアイデアがあったわけじゃないのね
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「おこめ券は米以外の食品も買える。効果的な活用を」 地元で農水相 [山形県] [少考さん★]
- 【速報】「女芸人No.1決定戦 THE W」9代目女王にニッチェ! 7年ぶり3度目で悲願の優勝 [牛丼★]
- 【芸能】『女芸人No.1決定戦THE W』 粗品が最後にバッサリ「優勝賞金1000万円にしてはレベル低い大会」 [冬月記者★]
- 【沖縄】開業4ヵ月でこれは…“国民の税金”投入の『ジャングリア沖縄』で見た衝撃的な光景と、モチベーションが低い一部スタッフの現状 [ぐれ★]
- 今年の流行語大賞 『働いて働いて働いてまいります』が受賞で不快感… 過労自殺の遺族らが会見「家族にむち打つような行為だ」 [冬月記者★]
- 【東京】「家族で話題にして」 “世田谷一家殺害から25年 警視庁が呼びかけ [煮卵★]
- 焼き芋を輪切りにして天ぷらにすると美味しいよ
- プロレスラーってロープに振ると走って戻ってくるけど
- お前らお嫁さん見つけた?
- なんでお前らってスピリチュアル系の話嫌いなの?
- クズ「勉強頑張らなかった奴は一生DQNと一緒に肉体労働しろ」☚勉強頑張れるのも環境と巡り合わせなんだが? [783475554]
- 薄いカーテンだけ閉めて部屋の灯りを消すと凄くいい
