1read 100read
2011年10月1期プログラム新しいプログラム言語作る〜4カ年計画
TOP カテ一覧 スレ一覧 削除依頼 ▼
・ 次のスレ
データベースプログラミング全般スレ Objective-C [ObjC part:6]; Excel VBA 質問スレ Part22 【初心者歓迎】C/C++室 Ver.77【環境依存OK】
新しいプログラム言語作る〜4カ年計画
1 :11/07/28 〜 最終レス :12/01/11 1年の準備期間を経てプロジェクト本格始動だ
2 : まず K これたぶん使われてないだろ K言語
3 : K言語 http://www.jaist.ac.jp/~k-chinen/pg/springos/kuroyuri/
4 : じゃあW
5 : このスレッドは天才pンジー「アイちゃん」が 言語訓練のために立てたものです。 アイと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。 京都大学霊長類研究所
6 : ギコBASIC しぃ言語
7 : 何向けに特化したものを作るんだ。 全般に使えますを謳ってるのはScalaだっけか。
8 : つーかプログラミング言語だろ。 そういう細かいところがダメだから >>1 の計画はいつもダメなんだよ
9 : >>8 ごめん
10 : >>7 は?普及してる言語のほとんどは汎用言語だろ
11 : 1年も準備期間があって、どんな言語作るのか >>1 にまとまってない。 そういうところがダメだから >>1 の計画はいつもダメなんだよ
12 : これから1年準備期間ってことじゃね? とりあえずCはサポートよろしく
13 : brain fuckの進化したやつかと思った
14 : おまえらファウラーのDSL本読んだ? まあ翻訳でるらしいし、それからでもいいかもしれんが。
15 : 日本語で直感的にできるのにしよう
16 : >>15 >>1 が詳細を何も語ってない以上なんともいえないが 日本語で直感的にできるとか、そういう浅はかな思いつきがもしうまくいくとしても、 せいぜい教育用のおもちゃのプログラミング言語だけだ。
17 : 「何を」日本語で直感的にできるのを求めているのかが問題 極端な話、変数Aと数値10を束縛する意味の計算を 日本語で直感的にできるようにしたって、ほとんど意味が無い それどころか煩わしさが増え、逆に非直感的にもなりかねない >>15 は何がしたいのか?
18 : >>17 束縛なんて言ってもたぶん >>15 にはわかんないでしょう。 代入と言わないと。(厳密には違うのは知ってるけどね。) で、次の2つを比較して、 i) a = 10 ii) a に 10 を代入 ホントに ii) のが直感的かってね。
19 : >>15 ぴゅう太の日本語ベーシックか…
20 : とりあえずこれから2ヶ月程度は適当になんか書いてください 意見とか批判とかアドバイスとか
21 : >>20 二ヶ月www それにしても四ヵ年計画って長いな
22 : >>21 この板自体が過疎だし スレの存在が知れ渡るための時間を考慮して2ヶ月
23 : >>20 新言語に対する君自身の意見を言わないと、 意見も批判もアドバイスもしようがない
24 : >>23 アホ
25 : >>20 まずもって現時点で明確になっている >>1 のしたいことが「新しいプログラミング言語を作る」だけで、 意見とか批判とかアドバイスとかそんなもん出てくるわけないだろ、っていう批判しか無い。 >>1 のしたいことが本当に前述のとおりだったら、とりあえず世の中にあるプログラミング言語について、 それらがどういう問題を解決するために作られたか片っ端から調べる。そうして、自分にとってどういうことが 問題になっていて、既存のものでは解決できない(あるいは難しい)ことがはっきりしてきたら、 その段階で初めて自分の作りたいものの輪郭をはっきりさせる。つーか、その段階でスレ立てろ。 >>1 はそういう過程を経てないから、前述のような状態なんじゃないのか。 もう前段のことがはっきりしてるなら早く要件を出せ、としか言えない。細かい仕様はともかくとして、 ある程度の要件をはっきりさせないと、コミュニティで協力を得るのは難しい。
26 : >>25 アホ
27 : >>26 ==>>1 ==馬鹿
28 : >>16 >>18 scratchですね 分かります 直感的で初学者には純粋にロジックだけ考えれば良いのが利点だけど、マウス操作だけってのもかえって不便 一皮、いや、二皮くらいむければVB6並には使えそうだけどねぇ。。。
29 : 1が作りたいこと書かないと横からきた他人がC++ジェネレータラングレッジ作ろうよと言い出す
30 : >>18 漢字Talk時代のMacOS付属のAppleScriptは、日本語で記述できたんだよな〜 実際に日本語で描いてみたが、メチャクチャ分かり難かったw
31 : >>1 は開発レポジトリ借りてきたら? github, sourceforge, bitbucket色々あるだろ? それと、ライセンス・利用者層・解決したい問題を提示してもらわないと 協力できないし参考となるリソースやツールを提示できないよ。 あと志がなくてはトイ言語、良くてs-lang, pikeのような普及しないが 高性能なもので終わってしまうよ。作るのは大変だけど普及させるのはさらに大変だな。 どうしても決められないなら使いたいライブラリ提示するのもいいんじゃないか?
32 : まだ諦めてないか/生きているか?上げ>>1 コードエディタやドキュメンテーションツールは既存の物を流用できるからいいとして 初期段階から汎用デバッガやよく使われるライブラリのインタフェースは 必ず用意しておいたほうがいい。無数に存在するがデバッガとライブラリの 無い言語なんて作っても実用にならないから注意な。 もっとも単純に日本語でプログラミングしたりビジュアルプログラミングやりたいだけなら Mahmoud Fayed 氏のプロジェクトへ参加するか流用・改良するといいぜ。 ttp://sourceforge.net/users/msfclipper
33 : コードデザインはjavaをベースに DIとかORマッパーを組み込んだのがいんじゃないか ランタイムは三つに分類できる ・マルチメディア・クライアントサイド(C++、ネイティブ)、 ・サーバーサイド(Java、c#、 仮想マシン系)、 ・設定ファイルや起動スクリプトに向いてる(perl、コンパイル不要・単純系)
34 : >>1 はコード書いたことのない、あるいは5〜10万行くらいのソースコードを いじった経験ない?であれば、いくつかパブリックドメインのプログラミング言語を 探してくるから、そいつのコードを皆で読んだり質問・意見を交換するところから始めるのがいいよ。 もっとも、やるなら用意する。やらないなら、覚悟がないということで、 きっぱりあきらめたほうがいい。
35 : >>33 ハイブリッドもあり。 最初にインタプリタ → 次にLLVMやその他に対応した トランスレータとやっていけば理屈では全て網羅できる。
36 : 関数系で構文云々の神学論争は他所でたくさんやってるからなぁ
37 : やるんだったらコンパイラコンパイラから作れよ ヘタレならこれでもよんでろ http://kmaebashi.com/programmer/devlang/book/index.html
38 : コンパイラコンパイラを作るコンパイラはどうするの?
39 : >>37 教育用コンパイラ作るわけではないのだから時間の無駄だし、 経験上そういうことをやっているとプロジェクトはあっけなく頓挫するヨ。
40 : [ 基本案 2011/09/03 版 ] 一応投げてみるテスト。 言語形態 - 組み込みインタプリタ・またはソースコード・トランスレータ 公式動作環境 Windows, Linux, BSD 開発ツール Mercurial(BitBucket), Natural Docs, txt2tags, gdb, MinGW, UniversalIndentGUI, Highlight, wkhtmltopdf, CodeLite, AnyEdit など 対応予定ライブラリ SWIG, DynCall, Qt, Gtk, Pango, Cairo, G3D, ClanLib, SDL, Chipmunk など。 追記 - ライブラリは未だ適当 - プロジェクト内の一般ドキュメントは txt2tags で統一
41 : プロジェクト名あるいは言語名の連想 - 7月28日 発売などで検索。 - 大人の科学 vol.28 の発売日(2010年07月28日) : 二挺天符式和時計(にちょうてんぷしきわどけい) → 二挺拳銃式言語(にちょうけんじゅうしきげんご) → 機関銃=タイプライター? → 名銃から取る? - みずがめ座δ南流星群の極大 - 誕生花 : 虫取撫子 (むしとりなでしこ) : ttp://ffj.jp/hana/s0728.htm - ナニワ?ナゴヤ? → 大阪・シャチホコ → 日常坂本さん (猫と魚) ...。 - アトラス デビルサバイバー2 発売日 : ttp://blog.esuteru.com/archives/4090733.html などいろいろあるがな。
42 : グループ名とかタイトル名を最初に熟考してしまい、 それだけで力尽きる人って居ますよね 私も以前そうでした
43 : 普通に言語作ってもおもしろくないから、bat拡張言語でどう? 基本的な構文はbatファイル(DOSコマンド) それをUnixのシェル並みに機能を充実させてマルチプラットフォームで動作するものにする もちろん対話動作あり 目標は ・batファイルをより便利に ・batファイルをLinuxやmacやスマホで
44 : >>34 2chにコード掲載するとライセンス衝突するからPastebinなどの外部サイト。 その上で読みたいものを決めるにしたほうがよさそう。 >>42 それは、よくある死亡フラグですね。名前はあとで考えますか。 >>43 その用途だと既に WinBatchEh はある。延長線上にはSEED7、BASIC、HSPなども。 さらに Open Object Rexx(oorexx) はC/C++でラッパー書いて拡張でき外部コマンドを 実行できるからバッチの代替になるよ。 もっともREXXベースというのもありだろうね。
45 : やるならさっさと決めるか。俺は >>1 ではないが、やはり最初から引っ張るやつがいないと進まないねえ。 何度、無関心と他力本願の悲劇、失敗すれば叩くだけ叩いて反省しないを繰り返せばいいんだか。 そんなの疲れたよパトラッシュ。 さて、このまま続けても、いいかげんグダグダなので、仕切りなおして計画案を出し合いませう。 締め切りは >>41 のゲームがらみで Steins;Gate 8BIT の発売予定日(2011年10月28日)にする。 - 必要書類は企画書、プロジェクト運用ガイド(ツール)、プレゼン用スライド、 言語仕様ドラフト、その他必要に応じて添付。 - ライセンスは CC-BY-SA 3.0 または 以降にすることに同意してください。 - 計画案を採用してもオープンソースでの公開・特許などを起こさないことに同意してください。 - フォント、各種素材のライセンスに注意する。 - ファイル形式は jpg, png, pdf, Open Office - scribd または自身のブログなどへ投稿して、このスレへリンクを張る。これで応募完了。 締め切りの変更は認めない(するとグダグダになるだけ)。
46 : 本人が逃走して廃墟になるの?
47 : >>46 >>1 が出てこない時点で既にそうなっているような。ということは、 既に>>1 にとって問題を解決できるものが見つかったとみなしてスレ終了okでは? もっとも俺は締め切りまでに簡単な資料を仕上げておくよ。
48 : 基本独りでしか開発したことないくらいのプログラマだけど、 仕様書出来たら混ぜてもらおう うずうず
49 : 一応メモしておくと新規プログラミング言語の開発方針を大別すると大体こういう感じだな。 A. リスクの高い最先端分野向けの研究および実用言語の開発。AR, DNA, AI, 人工生命(A-Life), グリッド, ロボットなど。 B. あらゆる言語を無視して完全フルスクラッチで組む。例えば Elena, Ecere SDK, Zinc, あるいはForth系言語 C. 複数の既存の言語をベースとして開発する。例: hoge の不満の対応策として haga のコードを hoge へ移植するの繰り返し。 D. あまり知られていない既存の言語・資料を自国向けにローカライズして改良する。 A, B は5〜10年以上の長期戦かつハイリスク (なのに死にたがる切腹マニアが絶えない)、 C, D は早ければ1年の短期戦だがローリスク (地味でダサイが信用第一鍛冶屋の職人気質) どっちも失うものも得るものはあるし、普及するかしないかは様々な要因が絡む。
50 : それよか、javascriptをclassベースのオブジェクト指向にしてくれ 誰も注目してないだろうpikeぐらいが好み gwtはjavaが嫌いだからダメポ
51 : c++ライクなスクリプトがあれば最強なんだがな もちろん環境依存を減らして他OSでも動くことを前提に作ること
52 : つAngelScript
53 : javascriptに変換される オブジェクト指向言語が需要ありそうかなと思う。 javaとかc#から変換すると向いてない部分もあるし。
54 : javascriptはオブジェクト指向言語ですけど。
55 : >>53 むしろ関数型言語をjavaScriptに変換の方が向いてたりしてな
56 : >>50 意外と高機能だが何故かマイナー JavaScript風言語 haXe(ヘックス) はどうですか? ttp://haxe.org/doc/intro http://hibari.2ch.net/test/read.cgi/tech/1238847817/l50 >>51 そういうのは実在はする...のだが、名前が思い出せない。
57 : >>53 それの手のものは完成・未完成問わず既に色々ある。 Clue: an ANSI C compiler targeting high level languages ttp://cluecc.sourceforge.net/ jsc (c# to javascript) ttp://jsc.sourceforge.net/ Script# ttp://projects.nikhilk.net/ScriptSharp mandreel ttp://www.mandreel.com/ emscripten ttps://github.com/kripken/emscripten/wiki
58 : >>53 altJS compile-to-JavaScript language list ttp://altjs.org/
59 : 流行ってないということは需要がないのだろか それともみんなajax(サーバーに投げる)にしてしまうだけで クライアントサイドで実行されるjavascriptロジックを生成できないのだろか
60 : 時代が追いついていない・あってない、実装やライブラリなど整備・実績不足。 これが一番の原因だと思うが熱心に面白さを伝えたり行動・発想力のある人物や集団の不在では? あまり知られてないようですが ROS + Javascript でロボットプログラミングできるよ。 ちゃんとした人がいたら、ほかの hoge → Javascirpt トランスレート言語普及し始めるのでは?
61 : 普及して欲しいね
62 : >>51 Tero's C++ Scripting - cppt ttp://myy.helia.fi/~karte/cppt.html このままだと機能不足。要改造。
63 : 参考にするために、ざっと Qore 0.8.0 : ttp://qore.org/ の言語リファレンス 読んでいるが、Perl に影響を受けているっぽいのと正規表現の扱い以外は割と普通。 Agena : ttp://agena.sourceforge.net/ も試したが、明瞭さ、実行環境の手軽さ、 ドキュメントのわかりやすさ以外は、ずば抜けているわけではないね。そこそこ 整理されているので参考にするには良いかと思う。 論外は、サイバネティクス指向言語CYBOP : ttp://cybop.berlios.de/ やりたいことはわかるが、どうしてこうなった。
64 : 新しい言語なんて作ったってどうせパラダイムの堂々めぐり。 スパイラル的に進化するとかいう馬鹿がいるだろが。 その言語にしかできない事ってあるのかよ。 あったら、ちょびっと便利くらいなものだろ。 実用的な言語ほど破たんしてしまうし。
65 : アセンブラライクな言語を作ろう。 今の言語はキーワードがいちいち長いうえに 字下げなんかもあるもんだから、 とにかく異常に一行が長い。 行の右端を読む頃には左端が頭から消えていて 何度も左から読み直すハメになる。 こんなことでは生産性が落ちるばかり。 アセンブラのシンプルな構文体系を採用し、それでいて CPUやOSに依存しない言語を作ろうではないか。
66 : そんなの新言語を作らなくても、例えば Haskell を覚えればいいよ > とにかく異常に一行が長い。 > 行の右端を読む頃には左端が頭から消えていて > 何度も左から読み直すハメになる。 こんなことはまず起こらない キーワードなんてほとんど無いし 字下げが一行を長くする要因にはならない 構文体系も非常にシンプルで、書きやすく、読みやすい つまり、アセンブラライクな言語を作る理由にならない ただ単に言ってみただけだろ? あるいは、そんなのがあったら面白いなくらいの思いだろ?
67 : シンプルがいいならSKI combinator calculusでも使ってろよ
68 : >>66 ちょっと見てきたけどものすごく面倒そうな言語じゃないか。 こんなの覚えてられないよ。 俺はアセンブラしかわからないんだから。 とにかく、アセンブラこそが最も優れたシンプルな言語。 CPUに依存するのが唯一のネックだったわけで。 構文体系だけ借りてきて命令をCPUレベルではなく 高級言語用のものに置き換えれば、老若男女が使える 至高の言語となろう。
69 : いまどきアセンブラ至上主義とか 組み込みで食ってる人でも滅多にいないのに
70 : >>68 今までアセンブラしか使わずに何を作ってきたの? ゲームとか数値計算シミュレーションとか? > 構文体系だけ借りてきて命令をCPUレベルではなく > 高級言語用のものに置き換えれば、 ちょっと意味がよく分からないんだけど、 例えばどういう感じのプログラミングになるの? 擬似コードでいいから、適当に書いてみてよ こういうアセンブラが、こう書けたらいいよね、って感じで
71 : >>68 C-- 改良すればいいんじゃない? ttp://en.wikipedia.org/wiki/C-- ttp://c--sphinx.narod.ru/indexe.htm ttp://www.goosee.com/cmm/ ttp://sourceforge.net/projects/c--/
72 : >>64 無駄といいたいのはわかるが、その批判を続けた結果として 現状どうなったのかわかると思うんだけど。 >>71 追加 (C--の説明) ttp://wiki.osdev.org/C_MinusMinus
73 : >>72 で、どうなったい? 3行以内で述べよ。
74 : >>70 端的に言えば、フリーフォーマットを廃止し ラベル・命令・オペランドの3つのフィールドのみにした高級言語。 ラベルは1ケタめ、命令は10ケタめ、オペランドは19ケタめから書く。 ラベルと命令の長さは最大8文字までとする。 オペランドが複数ある場合はカンマで区切る。 a=10; は MOVE 10,A if ( a == 0 ) { b = 1: } else { b =2; } は TST A, =0 : MOVE 1,B : MOVE 2,B for ( i = 1; i < 10; i++) は MOVE 1,I WHILE I, <10 : ADD 1,I : NOP こんなもんか。 条件判断後のコロンは、本来は真偽による分岐先を示すシステム特殊ラベル EQ: とNE: なのだが、その順番である限りはコロンのみで可とする。 ブロック構文の範囲終了は空行で判断する。 NOPは何もしない命令。このケースでは書かなくても正常に動作するのだが 記述漏れか否かの区別が他人には付かないのでNOP推奨。
75 : GOTO推奨のスパゲティ製造機ですかそうですか
76 : >>74 > ラベルは1ケタめ、命令は10ケタめ、オペランドは19ケタめから書く。 > ブロック構文の範囲終了は空行で判断する。 ネストした if や for はそうとう読み難くなると思うが、大丈夫か 例えばそれでさ、行列を入力して転置行列を返すプログラムを書くとすると、 それだけでもう俺なら発狂ものなんだが、お前は楽勝なのか
77 : GOTOを推奨し構造化を否定するという事は、関数やプロシージャを使わず、コールスタックを使わずジャンプする事だから、 ヒープオーバーフロー系のエクスプロ糸に対しては強いのではないか? gotoのみではアレなのでサブルーチン位は実装しても良いだろう。 >>74 同じアセンブラの発想ならHLA(High Level Assembly)という言語があるよ。 if文やwhile文は高級言語風を用い、命令はニーモニックというアセンブラのコードを書く。
78 : >>77 サブルーチンを実装するとなると、戻ってくるための仕組みが必要だ そして、サブルーチン内でサブルーチンを呼べるようにすると、 戻ってくるための仕組みとして必然的にスタック構造を使わざるを得ない メモリ領域を超非効率的に使っていいのなら必ずしもスタック構造は要らんが
79 : >>例えばそれでさ、行列を入力して転置行列を返す それならベクトル構文を用意すればどうだろう? 恐らくGPU的な用途と言語の整合性を保つ際に必要であろう。 スカラー量としてレジスタ操作のようなオペランドが存在するなら、 抽象的なベクトル量のレジスタ操作があってもいい。
80 : >>78 通常プログラム実行イメージにはコードセグメントとデータセグメントがある。 データセグメントがコードセグメント領域にアクセスすれば、バスエラーやアクセスエラーが生じるはず。 x86にはスタックセグメントもあったはず。
81 : >>75 このどこにGOTOが出てきているのかとw それにGOTOほど流れを掴みやすい制御構造はないぞ。 >>76 それは少し思うな。ブロック構文内のネストの 視認性については改良の余地ありだろう。 けど字下げだけは勘弁してくれ。 俺は字下げでウネウネとウェーブしたソースを見ると 吐き気がしてくるんだ。 >>77 見てきたけど、HLAは完全なアセンブラだな。 これは高級言語風アセンブラじゃなくて アセンブラ風の構文を取り入れた高級言語なんだ。 レジスタやメモリレベルの操作はしない。
82 : >>79 俺が例として転置行列を挙げたのは、 分岐やループがネストした場合の表現力の弱さを指摘したかったから
83 : インタプリタだと実現できるかもしれないけれど、コンパイラを作る段階になれば レジスタやメモリ等は意識しないといけないよ。 C風な高級言語でないからyacc/rexxは使えないだろうから、直接コードジェネレータを 作る事になるだろう。
84 : cmm使って手抜きすればいいよ
85 : >>81 加えて言えば、もしこの抽象的なアセンブリ風の高級言語に並列性を追加するなら、 VLIW的な構文を用いても良いかもしれない。 Add 1,I/Add 1,J/Add 1,K/Add 1,L という構文であったとしてそれぞれが異なるコアで実行されるように処理系で実装する。 スレッドを使わないならば命令レベルでの並列性の記述は必須だろう。
86 : ソースをXML形式で扱う手もあるな。 こうするとXMLエディタで各ブロックをアウトラインとして扱える。 少なくとも改行によるブロックよりはいいが専用エディタ必要なのが難点かな。
87 : とにかく一行書き捨てに特化したやつがいい。 しかも左右に行ったり来たりしなくて済み、どんどん駄文書くように だらだら書いていって動く奴
88 : >>87 VBScript とか HSP を一行書き捨てスタイルで書けばいいだろ それでは何が不満なのか具体的に言ってくれ
89 : golf専用言語とか新たに作らずに探せばいくらでもあるからな
90 : 開発環境に頼りまくる前提だとなにか新しい事できる?
91 : truly syntax/semantic-aware editingとか達成できたら割と凄い事になる
92 : プログラミング言語の仕様設計は難しい。関数は dot notation で整理できる。 語順は「型名 識別子」か「識別子 型名」くらいしかないから別にいい。 しかし予約済みキーワードは長すぎても短すぎても打ちづらくても リズム取りづらくてもダメ。なにか良いお手本は見つからないものだねぇ。
93 : >>83 リソース限られていないなら組み込みインタプリタにするのも手だな。 >>86 一行で書ける代わりに全て定数で制御構文すら放棄してスタックに がんがん積んでいく型推論、GC搭載言語というすぐる認識ではないよね?
94 : すべてが関数だとか、オブジェクトだ、文字列だとか、尖った言語にしようぜ。 どーせ、流行らないんだし。
95 : 言語設計者は需要・評価・他者からの理解の有無は気にしないほうがいい。 おまえがユーザーだす。まず、おまえがやりたいように設計すればいいさ。 人気の言語を作るには ---Being Popular--- ttp://practical-scheme.net/trans/being-popular-j.html
96 : Anchor - Advanced Negative Compilation Heuristic Ontological Refactorer ttp://anch.org/anchor.html 言語でないが、丸括弧、波括弧、セミコロンを自動補完する汎用プリプロセッサ。 ようするに、C, C++, Java, PHP, C#, D など波括弧でブロックを表現する言語で Python やLuaなどのオフサイドルールを使用でき、さらに打鍵数を減らすことができる。 ブロックの記法で悩んでいるのであれば、こういうのをサポートするのもいい。 こいつの逆はあれば探しておくよ。
97 : Google MapReduce 見てて思ったんだけどさ 一人だとかなりめんどくさいけど 多人数開発に向いてるとかできないかな
98 : >>39 Pika : ttp://www.pika-lang.org/ クラス、ジェネレーター対応など一般的なもの、zlib/png 以外ではなあ。 現状では5年前から開発中であり、現状はハック、学習用、治具用途向けかと。 >>97 大規模分散型並列処理か。そこまでやる気のあるのが2chに残っているかな。 それに俺としては2chで何か開発するというのは不向きな気がするよ。
99 : フロントエンドだけつくって残りはLLVMに丸投げ
100read 1read
1read 100read
TOP カテ一覧 スレ一覧 削除依頼 ▲
・ 次のスレ
データベースプログラミング全般スレ Objective-C [ObjC part:6]; Excel VBA 質問スレ Part22 【初心者歓迎】C/C++室 Ver.77【環境依存OK】