1read 100read
2013年05月プログラム264: 新言語を開発したい (418)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
***Javaのオススメ入門書*** 『創るJava』 3.0 (567)
【Lisp】プログラミング言語 Clojure #2【JVM】 (792)
Java低速GUI Swing & JavaFX 10 (713)
【Delphi】Embarcaderoオッチャ その28【C++B*】 (317)
Java系スクリプト言語Groovy (857)
【Lisp】プログラミング言語 Clojure #2【JVM】 (792)
新言語を開発したい
- 1 :2010/05/30 〜 最終レス :2013/03/27
- http://pc12.2ch.net/test/read.cgi/tech/1274015781/l50 の継続スレのかたわれです。
低水準言語にこだわる人は「低水準言語を開発したい」のほうへどうぞ。
- 2 :
- Cん言語だって?
- 3 :
- このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
- 4 :
- 関数型とか、GCありとかな言語を作りたい人用らしいです
- 5 :
- アイちゃんのための自然言語は可?
- 6 :
- 今時GC無し言語なんてありえないだろ
- 7 :
- いまさら、GCありの言語を作ってもね。
関数型でGCなしとかどうだ。
- 8 :
- これからはテストがしやすい言語が出てくるだろうな。
ユニットテスト普及以降、テストの考え方が変わった。
コードでテストするようになった。
だけど既存の言語はテストしやすいようには作られていない。
ユニットテストというフレームワークを使うことである程度改善できるけど
さらなる機能が必要。
たとえばprivateメソッドをテストのときだけ外部から呼び出し可能にしたり、
テストのときだけ、関数内部で生成しているクラスのインスタンスを
コードを変えることなく、テスト用のインスタンスにすり替えたり、
テスト対象のコード任意の地点の値をテストコードから監視したり。
アスペクト指向はあまりはやってないけど、テストするには使える技術だと思うな。
- 9 :
- >>8
C#で不満なところは?
- 10 :
- >>8
うん。大規模なプロジェクト、あるいは一人だけで作る場合の生産性を上げるようなものだね
- 11 :
- >>9
上司にC#の言語の制約で出来ませんと言い訳できないところ。
- 12 :
- オブジェクト指向寄りでGC有りより、
関数型寄りでGC,VM無しのCって方が面白そうだわな。
- 13 :
- そんな時代遅れ言語はあっちでよろしく
- 14 :
- scalaでいいじゃん
- 15 :
- あっちは紙降臨した模様
- 16 :
- 髪(笑)
- 17 :
- Gentee でいいだろ
- 18 :
- ここが一番負けてるな
- 19 :
- 見えない敵と戦ってる人こわい
- 20 :
- 見えない敵が一番手ごわい
- 21 :
- 分割前のスレに書いたことの要約
【新言語開発が破綻する典型的なパターン】
言語比較厨登場。言語仕様を大量に盛り込む。工数が膨大に。
↓
開発者が不足。しかも楽しい仕事しかやりたがらないダメな奴ばっかり。
↓
よってライブラリ、デバッガ、IDEの製作やドキュメントの整備等の
面倒だが重要な仕事は手抜きし放題。場合によっては完全放置。
↓
使えない糞言語なので、ユーザーが集まらない。
誰も使ってくれないので開発者のモチベーションが保てない。
↓
終了。
【対策】
・言語ヲタを排除する。工数を増やす人はいらない。
・達成目標をよく議論して明確にする。無計画に始めない。
・小さい言語仕様にする。出来上がってから少しづつ拡張すればいい。
・他の言語に勝てる分野で勝負する。使えない言語を開発することに意義はない。
- 22 :
- まだ始まってもいないのに気の早いやつだな
- 23 :
- 汎用言語を作っても無視されるか他言語の劣化コピー扱いされるのがオチだし
ライブラリ作成の工数を減らす意味でも対象にするドメインを絞ったほうがいい。
自分が勝算がありそうだと思う分野をあげておく。
【ゲーム専用言語】
有名なところだとノベルゲームやアドベンチャーゲーム用の吉里吉里2やNScripter
なんかがあるが、GOTO指向の時代遅れの言語なので普通にやれば勝てると思われる。
ネトゲは無理でも、アクションゲーム、パズルゲーム、シューティングゲーム
くらい対応できれば十分。
【携帯用言語】
携帯電話やAndroidやiPad上でプログラミングできるようにする。
既にやってる人もいるだろうが、メジャーなものはないから今なら
まだ勝てるチャンスがある。ライブラリが小さいもので済むのも利点。
【日本語プログラミング言語】
現在は"なでしこ"一人勝ち状態だが実はかなり低速な上にバグだらけ。
文法も破綻気味なのでもう少し洗練された言語を作ればシェアを
全部奪えるのではないかと思う。
【画像/動画/音声 処理用言語】
例えば本格的な画像編集をGIMPとScript-Fuなんぞで頑張るのには無理があるし
GPLでがっちり固められてしまっているのでつまらない。
およそマルティメディア関係のアプリケーションでは速度の問題が大きすぎて
結局C++でプラグイン書いてリンクのパターンになってしまう。
簡単な記述でそこそこ高速なデータ処理言語があればシェアがとれるはず。
- 24 :
- gotoは速いんだよ
- 25 :
- gotoはゲームシナリオとの親和性が高いしな
- 26 :
- >>25
いやノベルゲームのバグの原因の大半はGOTOとグローバル変数だと思うけど。
ノベルであっても関数言語的な構造をもっているなら自動テストを行って
ある行動をプレーヤーがとると無限ループになるとか
絶対に取れないフラグが存在するとか、バグを検出するのが容易になるので
素人こそ先進的な道具を使わせておくべきじゃないの。
- 27 :
- バグの原因は素人
- 28 :
- 結局フラグ使ったステートマシンにするしかないんだから
switchのラベルでもgotoのラベルでも同じことだろう。
- 29 :
- >>28
例えば
ストーリー() {R, 事件, 別れ}
R() {移動, 発見, 挨拶}
移動() {台詞="
長い文章"}
…
と構造化されてるのと
*ストーリー
(長い文章)
goto R
*R
(長い文章)
goto 移動
*移動
(長い文章)
goto 発見
…
が同じわけがねえ。
実際はif文とクラスに属してない総称型のフラグが散らばっててさらに
分けわかんないことになってるんだよ。よくあんな言語使うと思うけど。
- 30 :
- エロゲ作ってんの?くれよ
- 31 :
- 総称型じゃないやw。型の決まってないフラグね。さっきまでJavaの本読んでたんでスマン。
- 32 :
- w。
- 33 :
- エロゲスクリプトで総称型ってなんに使うんかな。
- 34 :
- モザイクの量とか
- 35 :
- 巨Rでも貧Rでも同じメソッドを
- 36 :
- 着衣プレイの時の制服の種類とか
- 37 :
- AS3を汎用言語にしたい
30歳になったら本気出す
- 38 :
- 普通にjsのエンジンは一杯あるわな
- 39 :
- いや、AS3です^^;
- 40 :
- おっと、調べたらかなり違うのね
でもあそこまでやるなら他の言語でも良さげな
- 41 :
- >着衣プレイの時の制服の種類とか
詳しく
- 42 :
- そこかよ
- 43 :
- ∨∨
(((((((((( >着衣プレイの時の制服の種類とか ))))))))))(キリッッッッ!!!!
ゴミグラマじゃねーか
- 44 :
- これ ; デリミタっていうんだけどさ、これをつけなきゃエラーになるような
そんな言語使ってる奴ってどうみてもゴミだと思うんだけど
もしかして「;」これ打ち忘れてコンパイルエラー出すのが楽しいの?
そうか、二度と話かけんなよ
なんだ、ただのゴミか(笑)
- 45 :
- カオスラウンジR
- 46 :
- ここもやはりgdgdか。上げ。
このままだと数年後も完成しないだろうから手法を提案をするか。
まず、初心に戻って明確なプロパガンダといいますかキャッチコピーを決めるといい。
可能であれば利用状況などの想定を盛り込んだ短編小説もね。すると必要なものがわかる。
例えばコピーであれば、
- ロケット制御用言語なら「Rock:et を使って月のウサギに会いに行こう」
- 日本語異性型ロボットAI言語はぢらひ「俺の嫁、旦那様、バーニング」
- 従来の汎用言語の改良であれば「あなたは今日からリア充です(※効果には個人差があります)」
など...。
- 47 :
- こういう言語が欲しい、作れというのであれば、一通り網羅した仕様書書いたほうが受け入れられやすい。
それに仕様は複数存在しても別に問題はないよ。rejectされても別プロジェクトでやればいい。
つか欲しい・作れって言うだけでは、仕様書いている人からすれば
「これこれこういう言語があるからそっち使っては?」になることが多いと思うよ。
- 48 :
- 言語仕様を書きあげるのは意外と大変だからねえ。
やっぱり謎の重圧と戦う、調べることが数千件、細かいことに
配慮して悩みぬくなどあります。使うと書くとでは大違いですよ。
では押しの強いひとが現れることを願って。以上。
- 49 :
- 新言語→信玄後→
- 50 :
- やっぱなんらかの既存処理系においては存在しない、または直接扱うのが困難な計算モデルがあって
それを容易に扱う為の言語といった形の必要性で無いと作る意義が乏しいだろうな
こう言語仕様においてはその扱いたい計算モデルに都合の良い文法とそのプログラミング言語としての意味論を定義することが
結構大きな割合占めてると思うのよね
- 51 :
- >>50
俺はそんな、適用する場所があまりない、つまり効果が薄いことよりも
もっと人間が楽になる言語がほしいよ。
具体的には、言語機能として、ユニットテスト、リファクタリング、
デザインパターン、ドキュメントの書き方まで考慮されていて、
特別な何かを別に用意しなくてもこれらが簡単に実行できること。
簡単にというのは、正規表現やワンライナーができるということも含まれている。
それでいてstrictモードなら、型をきっちり明記して、様々な統合環境を作ることも可能。
- 52 :
- なんていうか言語よりも開発環境の問題だろう。
- 53 :
- >>52
言語によって開発環境ができることが限られてくるんだよ。
たとえば変数に型を持たない言語では、
メソッドの補完は不可能。
だからそういうのを減らして、言語がコードの解析をして全体を理解し、
その情報を開発環境に提供することで開発環境の機能を
さらに向上できるように考慮された言語。
それは結果的に人間を楽にしてくだれる。
- 54 :
- あと、開発環境に頼り過ぎなのも良くない。
たとえば名前でも意味が違う変数があるだろ?
それは開発環境ではどれが同じで違うか理解できても
テキストエディタでは理解出来ない。
もしこれが開発環境ではなく言語自体で情報を提供されるようになったら
テキストエディタからでもコマンド一発で簡単に知ることができるだろうし
テキストエディタを拡張することも簡単だろう。
だから開発環境の問題ではなく、その問題を言語側に移そうという話でもある。
- 55 :
- 言語処理系と言語そのものがごっちゃになってるな
リフレクションの機構は処理系が提供するものだ
仕様としてその言語処理系対する要件として定義はできるがな
- 56 :
- Google、新プログラミング言語 " Dart " を来月発表、「構造化ウェブプログラミング」向け
http://japanese.engadget.com/2011/09/09/google-dart/
- 57 :
- >>55
リフレクション? リファクタリングの間違い?
リファクタリングは確かに処理系が提供するもの。
だけど、なにかの機能を載せたいと思ったとき、
その機能を実現するためには、その機能を実現するための情報が
ソースコードに書かれていないといけない。
だから、開発環境、処理系、にフォーカスを当てて
それに搭載したい機能を考え、
その機能を実現できる言語を作りましょうってことだよ。
- 58 :
- >リフレクション
プログラムの実行中、コンパイル中にそのプログラム自身の構造を参照したり書き換えたりする機構の事だよ
インスタンスから自分自身の型や型からその属性や継承木を言語内で1級のオブジェクトの形で取得できるわけだ
そのインスタンスが生成されたコード内の位置を取得することができるものもある
- 59 :
- >>58
リフレクションの機能がわからいんじゃなくて、
どこからそんな話が出てきたんだってことなんだが。
- 60 :
- プログラミング押しえてぇえええええええええええええええええええええええええ
- 61 :
- >>51
具体的に新しい言語によって何を解決したいのかが何一つ読み取れない。
例えばC#(+VisualStudio)なら何が不満なの?
どういう部分に考慮が足りないと感じる?
- 62 :
- >>59
ゴミ相手に何マジレスしちゃってんの?
これでわかっただろ
ここには58こういうゴミみたいな「知ったか」しかいない事実
覚えたての単語を使いたがる精神年齢中学生
適当にカタカナ言葉を混ぜておけば
>>58
いっぱしに、プログラマー気取りっすかあああああああああああああwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
カンケーネータンゴダシテシッタカデスカアォアアアアアアアアアアア!!!!!!!!!
さっさとR 黙ってR 今すぐRよ ゴミ
ゴミはさっさとRばいいのに
- 63 :
- >>50
よくある方法で思い切って概念の整理を行うことで新しい言語を生み出すこともできる。
また一般に難しいとされるものをすっきり記述できるようにするといいと思う。
例えばオブジェクト指向や関数という概念などを、もっと単純でなものにできるか、
バグの出ない記法や間違っているものを間違っているように見せる方法はあるか、
など未だ色々と解決する問題はあるね。
- 64 :
- >>51
それって...まだ未実装のようだが Cobra だよな...
ttp://cobra-language.com/
ttp://cobra-language.com/docs/quality/
- 65 :
- cの完全上位互換にとなっているobjective-cのアプローチが好きだ
ネイティブ吐いて、オブジェクト指向で理想的な言語だ
だが、objective-cは何かが違う。あの言語は何かを間違えた。
- 66 :
- stとCのハイブリッドだしな
@なんちゃらを無くして
gc前提なら悪くないかもしれん
- 67 :
- かもしれんね
- 68 :
- objective-cってi-phoneアプリでも使われている言語だよね?
純粋なC言語ではi-phoneアプリは組めないのかな?
もしCで書けるならJAVAでも書けるって事だから
そうなるとJAVAプログラマーはキャッキャウフフになるんだけど
それを実現するには努力が必要だよね
- 69 :
- iPhoneを駆逐するために、Javaプログラマはもっと熱意を持ってAndroidアプリに取り組むべき
- 70 :
- そういうことは自分が率先してやれ
- 71 :
- >>68
Cで作れるならJavaでも作れる?
どういう論理か教えて欲しい
- 72 :
- >>71
まずCでJavaバイトコードを実行するVMを書きます
- 73 :
- それを煮ます
- 74 :
- なるほど。そりゃ努力が必要だわな
- 75 :
- JNIの事だと思うよ
- 76 :
- dartがえらく素っ気ないc++もどきでワロタ
- 77 :
- >>75
でもそれじゃiPhoneで走らないだろ
あ、JNIを呼び出す為にVMも実装するのか
偉いな
- 78 :
- perlやphp,pythonの失敗を見てわかる通り、
個人やコミュニティが開発する規模の言語が
普及してから大きなメジャーアップデートしても誰もついてこない
最初に文法を決めてしまったのであれば、後から修正してはならない
- 79 :
- 失敗してんの?
- 80 :
- 個人が作った言語だろうが、大企業が作った言語だろうが、委員会が作った言語だろうが、
アップデートについてこれない低能を相手にしてたらやってられるわけがない。
そういう低能は切り捨てるだけ、そういうレベルの企業には潰れる以外の末路はない。そんだけ。
- 81 :
- 文法を修正したら駄目だろ。できるのは追加だけだ
- 82 :
- 文法を修正したら別言語じゃんw
- 83 :
- 言語自体古い
文字通り生きてる有機コンピューターつくれよ
- 84 :
- 脳みそ直結だろ
防壁は張っとけよ
- 85 :
- 現生人類と比べ、喉の奥(上気道)が短い。このため、分節言語を発声する能力が低かった可能性
ネアンデルタール人 - Wikipedia
- 86 :
- 甘ったれた滑舌の悪いネアン
可愛いかもしれん
- 87 :
- このスレを総合すると c++ が良いということですね。
- 88 :
- それだけは無いな
- 89 :
- というか、コンセプトがみんなバラバラなんだよね、多分
汎用言語を作りたいのか
専用言語を作りたいのか
汎用の言語なら、動的言語か、静的型付け言語かでざっくり分かれるけど
代替の場合、自分の使っている or 愛している言語に、ほかの言語の機能を取り込む方で頭が回っている
自分の場合、Rubyのメタプログラミングの機構や、Object型にくっついている、黒魔術的なメソッドの細かい仕様バグを取り除いて再設計されたものとかを欲しいと思ってしまう
- 90 :
- 汎用型で静的型付け言語、
それでいて動的言語で出来るメタプログラミングを
できるようにした言語が作りたい。
あとコンパイラのアーキテクチャを変更したい。
今のように実行したらバイナリが出来る方式ではなく
”プロジェクト” を "コンパイラーサーバー" に読み込ませると
ファイルを更新するたびに、コンパイル可能な所をリアルタイムでコンパイルし、
コンパイルができてる場所、エラーにある場所、その他様々な情報を取得できるという設計。
言語仕様ももそれが出来るように考慮する必要があるだろう。
そしてリファクタリングやコーディング規約チェックなど、
コンパイラの助けを得たほうが出来ることを、コンパイラにやらせ、
その機能の呼び出しをテキストエディタから行いたい。
- 91 :
- >>90
最新のIDEを使えばオケ
- 92 :
- >>91
最新のIDEの限界を超えた所を狙ってる。
- 93 :
- なら言語じゃなくIDE作れよ
今の言語の文法難しくてパーサー作れない
処理系の吐く情報難しくて解析出来ない
よしオラ言語作る!
これでは進まないのも当たり前
- 94 :
- >>93
言語(ソースコード)はデータであり
IDEはそのデータを処理するツール
いくらツールがすごくても
データがなければ、なにも処理できない。
つまりIDEを更に進化させるためには
データである言語をIDEに適したものに改良する必要がある。
- 95 :
- 普通に静的型付けなら実現不可能ではない内容に見えるが
- 96 :
- >>94
その考えが既に浅薄だとは気づかないのか
構文解析やリンケージやシンボル情報うんぬんありきのIDEだと気づけ
文法をパーサが簡単になるようにするとかは
別に構わないが、IDEありきの言語とか
本末転倒にもほどがある
最近のだどgolangの設計方針とか
パッケージとかgocodeとかみてみ
- 97 :
- >>96
IDEありきなんて言ってないですよ?
>>90を読んでください。むしろ180度逆で
IDEがやっているようなことをコンパイラサーバーに
やらせることで、テキストエディタでも
IDEと同等の高度なことができるようにするという書いてあるでしょ。
なんでこう人の話聞かないかな。
- 98 :
- 本質的に同じだろ
パーサにどう吐かせるか
吐いた情報をどう加工するかだけの話
そんなのは言語自体ではなく単なる処理系のバックエンドの話
その辺と言語をごっちゃにしてるから浅薄だと
- 99 :
- >>98
頭悪いねぇ。
吐いた情報? じゃあその情報はどこから持ってきた。
言ってみ。
- 100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▲
Java系スクリプト言語Groovy (857)
Perlについて (733)
【Delphi】Embarcaderoオッチャ その28【C++B*】 (317)
【分散型バージョン管理】 Mercurial 2【hg】 (232)
***Javaのオススメ入門書*** 『創るJava』 3.0 (567)
Pythonについて(アンチ専用) (789)
--log9.info------------------
【ニコニコ】うきょちpart3【生放送】 (278)
【車載の癌】TKスレ【アスペルガー】 (823)
【ニコニコ動画】米津玄師・ハチスレ part6【diorama】 (725)
【首がET】えまpart3【おすすめ生主紹介スレ】 (242)
【ニコ生】DQNger(ねぎたん)【年齢詐称】 (334)
【踊ってみた】DANCEROIDスレ50 (606)
ニコニコ動画 評価・発掘・工作依頼総合スレ 4 (853)
【魚釣り】ニコ生釣り配信ってどうよ?3匹目【フィッシング】 (709)
【docomo】dビデオ・dアニメストア【dtab】 (444)
【】YouTubeモバイルを語れ【】その1 (219)
今賞賛をあびる優れた携帯動画サイトとは (223)
動画変換寺 (894)
IDにmosとか出るまでモスバーガー食うスレ3 (557)
第3回2ちゃんねる全板人気トーナメントinモス板 (204)
ニコニコ動画SoftBankに対応(11月4日から) (261)
【auの庭】月間300万パケット以上は速度規制か (202)
--log55.com------------------
チアリーダー役をやってほしい女性芸能人を挙げるスレ
すなぁバカあぶり出しw
【チア・JKに】アスペ君 vs すなぁ【萌える春夏】
チアガール・女子高生に萌えるスレ29
聖和大学チアガール部について
【北海道】ファイターズガール Part.11【日本ハム】
箱根駅伝
【立命名物】立命チア【PeeWeeS】