1 :
デフォルトの名無しさん :
2010/03/18(木) 01:37:55 C/C++は高速だが過去のしがらみから文法が致命的に汚い。 C#の文法は洗練されているが中間コードやGCを前提としているため致命的に遅い。 LL系の言語さらに遅い。 そこで、C/C++に代わるOSも作れるような低級プログラミング言語を開発したい。 文法はCに似ている方が望ましいが、 低レベル記述、高パフォーマンス、可読性、簡潔さ、拡張性、学習の容易さ を担保出来るなら、どんな形式でも構わない。 プログラミングパラダイムについても、オブジェクト指向を備えることが望ましいが 生産性を高めることが出来るのであれば、他の方式が入っても構わない。
ガベージコレクションは遅くないよきみはC++がどうやってメモリ確保するか知ってるのかい
>>2 遅くないなら現在CやC++に含まれない理由って何なんだろう。
ハードリアルタイムだと GCは実用にならん
C のコードを吐く初期の C++ コンパイラ (トランスレータ) みたいなもんでも作れよ。
7 :
デフォルトの名無しさん :2010/03/18(木) 01:50:56
ということで、 GCの無い、過去のしがらみの無い、 高速で、低レベル記述ができる 生産性、可読性、簡潔さ、拡張性、学習の容易さに優れる 言語を作ろう。
Pascalの低レベル記述ってどうなのよ
10 :
デフォルトの名無しさん :2010/03/18(木) 01:57:30
C++を今の技術で1から作り直したらどうなるんだろうな。
別にD言語でいいだろ。 それとも構文が複雑すぎてコンパイルに時間掛かるのが嫌で言ってるのか? asmでもやってろクズ
D言語が完成するより ミッキーマウスの著作権が切れる方が早い
>>1 >C#の文法は洗練されているが
おまえは何を言っているんだ?
じゃあまずCの文法の汚いところを指摘して、改善案を出すところから始めようか? どこが汚いの?
マクロ
C++のプリプロセッサはC++コード本体のセマンティクスの解析が行われる前にトークンレベルで処理が実行される。 美しいと思わんかね。
キチガイが出たぞー
このスレッドは天才チンパンジー「アイちゃん」が 言語訓練のために立てたものです。 アイと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。 京都大学霊長類研究所
D言語でおk 終了
20 :
GV :2010/03/18(木) 10:33:23
いちいち;つけることがとっても汚い
21 :
デフォルトの名無しさん :2010/03/18(木) 11:12:57
じゃぁ()にしようぜ
高速性を考えていくとアセンブラに落ちつく
D C99 C++/CLI Erlang Go
>>1 悪いことは言わない。C/C++系言語の再発明はやめておくべき。
以前調べたことあったんで言うが、どういうわけかC/C++系の亜種は屍の山。
ざっと30...100以上あるんだが。呪いでもかかってんじゃないかってくらい(w
それでもやりたいってなら既存のライセンスの非常に寛大なC系インタプリタを
叩き台として紹介するけど?
>>1 Cは明らかに高級言語だろ
低級言語ってのは1文1命令に対応してるのをいうんだよ
・文法はC ・OOP ・テンプレートなし ・標準クラス装備(文字列やコレクションクラスなど) ・GCなし その他新しい機能不要 これで十分だろ。 どいつもこいつも色々とステップ飛ばしすぎなんだよ。 先ずはコレ。
>>27 それ、トランスレータの頃のC++と同じだな。
ハードが進化してるのにソフトまで速くしてどうすんだよ
>>27 (void*)でOOPすれば十分
と思えないなら継承とテンプレートは必須
背後に仮想関数テーブルが必要なものは、Cの用途には向かないと思う。 OOPよりも、Cで欠けている機能は、例外処理を簡潔に書ける構文。
longjmpが大暴れ
いまどきtemplateなしとかありえん
まじめに話する気ある奴いないみたいね
静的型なら、総称型の必要性には疑問を挟む余地は無いように思えるけど C++のtemplateのことを言っているのなら、それが必要かと言われると?だな
C#ってC++とかわんなくね?
>>37 記法以外で似ているところを探すのが難しいぐらいだ。
Cの亜種のような小さい言語なら大学生の実習でやるだろ。 1はまず適当に作って、こんなのはどう?ってみんなに評価して貰った方がはやいぞ。
40 :
デフォルトの名無しさん :2010/03/18(木) 22:23:47
>>24 C/C++系言語の再発明を目指しているわけではない。
過去のしがらみの無い、
高速で、低レベル記述ができる
生産性、可読性、簡潔さ、拡張性、学習の容易さに優れる言語
であれば、C/C++と似ている必要は全くない。
ヘッダーファイルが要らない。
いまどきの最適化技術の高さを考えたら、GCさえなかったら、Cとおんなじ くらいのパフォーマンス出せそう。
低級な処理に落とす段階で、C並の効率になるのなら、言語仕様は複雑でも構わないんじゃないか?
けれど、例えばHaskellみたいなのをかなり効率のいいアセンブラコードに変換なんてまず不可能ってことで言語仕様に制限がつくのであって、
言語仕様を制限することそのものには意義がない、ということは忘れちゃいけないな。
そういう意味では、プリプロセッサによるincludeは、あんまりいい処理とは言えないわけだ。
ヘッダファイルにいちいち
#ifndef FOO_H
#define FOO_H
〜
#endif
の定型句を書かせる必要はない。
あるいは、
>>41 のいうようにヘッダファイルそのものがいらないかもしれない。
プロトタイプ宣言だけソースファイルから抜き出すなんてこと、コンパイラにできるはず。
まあヘッダは明らかに古臭いと思うよ モダンな言語で、ヘッダなんて原始的コピペ機構を使ってるのC/C++ぐらいじゃないの
最新のプログラミングパラダイムを盛り込んでいながら、C並のパフォーマンスが出させる言語が欲しい。 最近の言語はパフォーマンスを度外視し過ぎ。安易にパフォーマンスを落とす機能を導入し過ぎ。 未だにC/C++以外では現実的にOS作れないわけで。 かと言って、C++は増築増築で言語仕様が巨大過ぎて生産性を下げているし。 そういう意味ではCが一番まともだが、せっかくプログラミング言語研究が進んでいるわけだから、Cに代わるもっと現代風の言語が出てきてもいいだろう。
いまどきのオサレ機能ってLispをはじめとする関数型言語由来のことが多くて GC前提のものが多いような気がするんだが 最新のプログラミングパラダイムって具体的には何が欲しいの
まあ関数リテラルや型推論ぐらいは普通にできるか がんがれ!
ヘッダと;は要らない子 あとコンパイルが速いのは絶対条件だろ
49 :
デフォルトの名無しさん :2010/03/19(金) 00:11:47
新言語の条件 (1)シンプルな言語仕様(言語仕様が小さいことで、プログラマーの学習不足によるヒューマンエラーが減る) (2)低レベル記述可能(OS、デバイスドライバーを作れる) (3)IDEによる開発支援可能(ソースをあちこち見なくても、ソースを覚えていなくても、プログラムを書ける) (4)多くのバグはツールが見つける
52 :
デフォルトの名無しさん :2010/03/19(金) 01:00:25
>>50 Cは良いと思うが、Cが出来てから長い時間が立っているわけで
最近の研究成果を活かせば、
C程度の言語仕様の大きさで、もっと良い言語ができるんじゃないか?
C1Xはそういう方向性ではないようだし。
>>40 生産性を高くするってことは、ある程度の高レベルなロジック記述も支援するってこと?
関数オブジェクトくらいはほしいよね。C の関数ポインタでもいいんだけど、構文がアレ
すぎる。
GC なしならクロージャは無理だろうけど (たぶん)、環境なしでもいいから関数オブジェ
クトを簡単に扱える仕組みはほしいなぁ。
と書きながら、扱い自体は C の関数ポインタでも簡単なのだから、構文さえなんとかす
りゃいいのかということに気づいた。
54 :
デフォルトの名無しさん :2010/03/19(金) 01:30:49
>>53 > 生産性を高くするってことは、ある程度の高レベルなロジック記述も支援するってこと?
Yesだろうね。出来るに越したことはない。
パフォーマンスを落とさない範囲で可能な限りできればいい。
> 関数オブジェクトくらいはほしいよね。C の関数ポインタでもいいんだけど、構文がアレ
> すぎる。
型安全な(とは違っても少なくともコンパイラが誤りを検出可能な)関数オブジェクト(に相当するもの)は欲しい
> と書きながら、扱い自体は C の関数ポインタでも簡単なのだから、構文さえなんとかす
> りゃいいのかということに気づいた。
関数ポインタは構文よりは安全性が問題かな。。
>>49 Cの仕様が複雑だとは思わんが、それでも理解不足によるヒューマンエラーは少なくないように見えるぞ。
56 :
デフォルトの名無しさん :2010/03/19(金) 01:59:25
だから、近年の研究成果を取り入れて、C程度のパフォーマンスで、Cよりもヒューマンエラーの少ない言語が欲しい。
PHP to C++仕えよ
Cに代わる低級言語ってことはポインタ触れるんだろうし GCも無いんだから、それでヒューマンエラー減らしたいつっても限界あるんでないの JVMやCLRの上の世界と違って、よく定義された綺麗な型とだけお付き合いしてればいい というわけにもいかんだろし
効率を上げるためには、安全性を犠牲にしないといけないこともあるよな。 例えば、いわゆるLLだと int a[2]; a[100]=0; のようなことすると例外なりエラーなりで止まってくれるけど、Cだとメモリ破壊につながるわけだ。 今回のように定数を直接書いてる場合とか、複雑ではあってもコンパイル時間で決定できるものは コンパイラがエラー出すこともできるけど、動的なものの場合は実行時にチェックするか、あるいはチェックしないで危険を冒すことが必要。 個人的には、配列の境界チェックはプログラマの責任にして動的チェックはしないようにしてほしいが、 メモリアロケーションの失敗とファイルオープンの失敗は自動チェックしてほしいかも。 そのへんの匙加減って、どうすればいいんだろう。 理想を杓子定規で当てはめた結果、誰も喜ばない仕様を作り出す過激派になったり、 毎度毎度細かい仕様で答えのない泥仕合になったりしない方法なんてあるのかなぁ。
vc++は勝手に配列チェックして例外出る リリースでも
>>60 そんなんされたら、高速化のためにループ中での条件分岐を減らすとかの努力が水の泡ですがな……
nullを
新しい言語を作ったとして、IDEへの対応は簡単なのかな? たとえばeclipseのプラグインをかくとか、どのくらいの難易度なんだろう。 そもそもそれで対応できるとか全然知らないけど。
もうプログラムで速度を追求する時代は終わったのだよ
>>63 言語仕様やコンパイラ作れる能力がある人には、退屈な単純作業にしか思えないくらいの低難易度。
>>64 それはあまりに視野が狭すぎないかい?
科学計算とか、動画エンコードとか、まだまだいくらでも速度を追求したいプログラムはある。
けれど、大体の部分では速度を追求する必要がない時代に来ているのは事実。
LLとの連携強化だったり、ヘビーな高級ライブラリをboostやstlのようなポジションで用意するのはいい判断かもしれない。
PHP to C++があればいい。 ライブラリ不足さえ解消されればC++に問題はない。 PHPから変換できて、上級者はC++をいじくるようにする。 Hiphop phpというのがあるがvc++では今は動かないようだ。
PHPは、言語としてだめでしょ
言語としてはちょっとと思うところはある。 しかし普及しているのでこれをメイン据えるのが良いと思う。 新規の言語開発するより低コスト。 仮に作ったところでPHP以下になる。 基本的には、C++のスクリプト板みたいな物だから少々手を加えればC++になる。
言語使用と性能は関係無いと デルファイの開発者が行ってた気がする。 パスカルは教育用と見なされていた。 しかしデルファイは、デルファイで書かれているらしい。
セミコロンがいらないとか言っている人ってどうすればいいと思っているのかな? 1. 別の記号にしたい 2. 一行1命令 3. 1ブロック1命令 4. 予約語が来たらなんでも命令の区切り 5. 言語に冗長性を持たせて、構文的に命令の切れ目がわかる
6. 一行に2命令以上書く時だけセミコロン要求
ここまでForth無し。 Forthそのものである必要は無いけど、低級でも良いから高速な言語というのならスタック指向がいいんじゃね?
>>58 > Cに代わる低級言語ってことはポインタ触れるんだろうし
> GCも無いんだから、それでヒューマンエラー減らしたいつっても限界あるんでないの
それはお前の思考の限界だろ。まあ俺もそうだが。
どこかの頭の良い人間が解決するかもしれないし、もしかしたら既に解決しているかもしれない。
それを期待したい。
>>70 そもそも、PHPでは速度以外の面でCの代わりはできないよ
78 :
デフォルトの名無しさん :2010/03/19(金) 14:40:48
要は、 目くそ鼻くその類似スクリプト言語ばかり安易に量産してないで これまでCが担ってきたOSやデバドラ開発の分野でも使える言語を 最新の言語研究成果を取り入れて新しく作れ ということだ。
>>77 Cの代わりがだめなら、プリプロセッサの代わりのcpphpをつくるんだ
<define id="NULL">0</define>
XMLが古臭くなるまで、これでしのげる
>>78 つかねぇ。漠然としすぎて、どうしたらいいか迷走していると思うんだが。
このままだと埒明かないから、まず言語名と言語族を決めて言語仕様書いたほうがいいんじゃないか?
とりあえず名前から。
このスレが立てられたのは3/18なので、とりあえず言語名のヒントになりそうなもの
Wikipedia(3/18) :
ttp://ja.wikipedia.org/wiki/3%E6%9C%8818%E6%97%A5 誕生花 : とさみずき、アネモネ、折鶴蘭、ハナミズキ、イワウチワ、フロックス、アスパラガス...など
誕生石 : アレキサンドライト、エマイユ、アクアマリン...など
2言語
82 :
デフォルトの名無しさん :2010/03/19(金) 19:34:25
言語名に「言語」と付くプログラミング言語はあまりないけどな
>>81 検索しにくい、発音しにくい、変なのはやめておいたほうがいいと思う。
ある意味でネーミングは駄洒落と連想ゲームなので、
>>80 の誕生花と
3月の旧暦(
ttp://ja.wikipedia.org/wiki/3%E6%9C%88 )を引っ掛けると、
3月 = 三月 = 花美月 = みづき → mizuki programming langage
とかなる。あとは接頭辞に適当なものを当てて
MInimum Z-layered Useful development Kit(最小Z層実用開発キット)
といった風になる(文法としては滅茶苦茶だけど)。
Zの意味は究極、最強、低級といったところかと。
Cをもっと拡張して、クラスの概念を取り入れたら、良い言語ができるんじゃないかな。
C++ Alternative 2ch-otaku Style
これ見よがしに日本人が作ったんだとアピールするために日本語名にするべき
これ見よがしに、ヘッダをXMLにする案をスルーしてませんか?
88 :
デフォルトの名無しさん :2010/03/19(金) 20:55:52
XMLならS式の方がいいな。
名前なんかよりコンセプトを考えようぜ。 スピード重視というなら手続き重視・スタック重視・静的動作になるけど、どうするのよ? >87 XMLはクソ。S式の方が100倍マシ。
言語と速度は関係無い。 C#やjavaやPHPですら、 最適化されたネイティブアセンブラに翻訳出来ればC言語に勝る。 コンパイラの性能次第。 言語使用はすでにあるやつで良いだろう。 php c# ruby バイソン java c++使いやすいやつを受け継げよ。
91 :
デフォルトの名無しさん :2010/03/19(金) 21:04:44
>>89 > スピード重視というなら手続き重視・スタック重視・静的動作になる
これは現在の最先端の人類の知識で最も確からしい帰結なの?
それとも単なる素人の妄想?
どっち?
共通言語を開発して、多言語に コンバートできる仕組みを作れば需要あるな。 出来るだけ簡易に記述が出来るなら。
93 :
デフォルトの名無しさん :2010/03/19(金) 21:06:52
>>90 > 最適化されたネイティブアセンブラに翻訳出来ればC言語に勝る。
それでは、今なぜやらないのか?
できないからだ。
コンパイルに時間掛かっちまうだろ
95 :
デフォルトの名無しさん :2010/03/19(金) 21:09:20
掛ければいいだろ。
手間かかるからな。 マイクロソフトでは、C#からネイティブexe作り出すコンパイラ作ってる気がする。 Hiphop for phpはC++のコードはき出す。
ネイティブよりも、JITコンパイルの方が速くなることも原理的にはある。 そもそも、Cに代わるものというところでは、速度意外に必要なことがあるだろ。
ネイティブexeができることと、Cと同等のパフォーマンスを出せることは全く別の話だろ。
安全性と生産性の向上
いまどきパフォーマンスのボトルネックになるのはDBアクセス、ファイルアクセス、通信等であって いずれも言語は関係ないな
101 :
89 :2010/03/19(金) 21:19:00
>91 素人なんで最新の情報は追えてないけど、 ・最新のCPUの動作は基本手続きだろ。関数型のCPUは見たことがないよ。 ・メモリ確保・解放でスタックよりも軽いのも知らないなあ。 ・動作時よりもソースコード時点でたくさんの情報があったほうが最適化しやすいだろ。 (もちろん、JITも併用した方がいいだろうけど) じゃね?
何か他言語をベースにすること自体には異論はないが、
それとは別に、他言語(できるだけ言語を限定することなく、広く)との連携のしやすさは重視してほしい。
>>90 言ってること自体は正しいかもしれんが、そんな素晴らしいコンパイラを作る方法が現状見つかっていないからさてどうしましょう?って言っている段階。
>>87 XMLにするとどんないいことがある?
そもそもヘッダ自体が必要かどうか微妙なのに。
>>100 DB、ファイルシステム、通信ドライバはC/C++で記述されてるだろ。
DB、ファイルアクセス、通信を使うような上位プログラムは
LLでもHaskellでもC#でも今時の烏合のRAD系言語を使えばいい。
104 :
デフォルトの名無しさん :2010/03/19(金) 21:26:46
>>100 そのボトルネックになるところはCで書かれてますよ^^
>>100 いつの時代も巨大ループや多重ループはボトルネックになる。
計算のオーダがたとえ多項式オーダでも2乗3乗となってくると、
1個1個の処理が少し軽くなるだけで高速化の成果を実感できるようになる。
>>89 スタック利用、動的な処理は最小限に抑えてコンパイル時実行できるものを増やすというのは、外せないよな。
関数型言語に関してはほとんど知らないんだけど、純粋関数と静的処理って極めて相性がいいんじゃないのか?
あと、クラッシュバンディクーってゲームの一部がLispでかかれてるってのは、そこそこ有名な話。
関数型言語で書いてコンパイラが手続き型に翻訳するってのは非現実的な話なのかなぁ?
エロい人教えて
>>102 XMLは具体的で現実的
古臭いとかいう先入観で敬遠される可能性が低い
もちろん、ヘッダを無くす素晴らしい方法が具体的にあるなら、そのほうが良い
そもそも、古臭くても構わないというなら、今のCのままでも良い
108 :
デフォルトの名無しさん :2010/03/19(金) 21:47:53
人間が手続き型で逐一こうしてこうしてと書くよりも、 関数型や論理型のようにある程度大雑把にこうしたいと指定してコンパイラに頑張ってもらった方が大抵は早くすることができるだろう。 ただ、大雑把な指定では致命的に遅いことが容易に指示できてしまうことが問題。 処理の99%を10000倍早くできても、残りの1%が1000倍遅くなったら、全体は10倍遅くなるからな。 (0.99 * T/10000 + 0.01 * T*1000 ≒ 10*T) そのあたりのバランスを上手く取って生産性とパフォーマンスを両立出来る言語が欲しいところだ。
>>108 俺は「低水準」が第一要求なのかと思ってたが
早い話が、ドライバやkernelのようなものが書けるということ
その方向性だと、また別物にならないか?
早い話が、少なくともメモリアドレスを隠蔽する程度に抽象度が高い言語では
ドライバは書けない
110 :
デフォルトの名無しさん :2010/03/19(金) 22:02:52
>>109 目的を絞ろう。まずは、
「最新のプログラミング言語研究成果を取り入れたドライバやkernelを掛ける言語」
でいいだろう。
>早い話が、少なくともメモリアドレスを隠蔽する程度に抽象度が高い言語では
>ドライバは書けない
これは現在の最先端の人類の知識で最も確からしい帰結なの?
通常は隠蔽されていて、必要なときに実アドレスを取り出せるようになっていればいいのでは。
もちろん、隠蔽せずに生産性の高い、安全性の高い記述をする手法があれば越したことはないが。
C++にいろいろと関数を標準でつけて、GUI作成も標準でつけて 面倒をなくせばOK。 C# PHP HSPの関数や簡単な記述法を持ち込めばいい。 C++ωにしておくか。
C++/CLI はどうだ
>>110 > 通常は隠蔽されていて、必要なときに実アドレスを取り出せるようになっていれば
> いいのでは。
.NETはまさにそういう仕様だが、ポインタはGC管理されているので、ロックないし
マーシャリングが発生する
低レベルなコードを扱うのだから、現存のCのobjやasmのコードと簡単に
協調できるようでなければならない
スレタイは「C/C++に代わる低級言語が開発したい」でしょ
それ以下で使われているのは現状アセンブリ言語しかないのだから、
C並に低級なことがC並に簡単にできるのでなければ、取って代われるはずは無いと
思うけど
>>111 ただでさえ複雑なC++をこれ以上肥え太らせるって正気か
大体、GUI作成標準って、組み込み用途はどうすんだ
>>112 それは簡単になっているとは言い難い。
それならc#使った方が良い。
STLとNETでかぶるってるしわかりにくい。
C++を正しいレールにのせた言語でいい
>>114 複雑と思う仕組みは使わなければすむ。C++をC言語として使うことも可能。
その複雑な仕組みで開発されたPHPやRubyも複雑か?
便利な機能を取り込んで不要な機能を使わなければすむ。
どんどん取り込んで、web、GUI、ゲームもこれ一本で済むようにする。 C++がサーバーで動く標準なり、他所でも同じコードがそのまま動くようにする。
120 :
デフォルトの名無しさん :2010/03/19(金) 22:25:18
>>113 > .NETはまさにそういう仕様だが、ポインタはGC管理されているので、ロックないし
> マーシャリングが発生する
だから、パフォーマンスの問題を解決できないのであればGCは使わない。
> 低レベルなコードを扱うのだから、現存のCのobjやasmのコードと簡単に
> 協調できるようでなければならない
そのとおり。そういうことができるような言語仕様にしよう。
> スレタイは「C/C++に代わる低級言語が開発したい」でしょ
> それ以下で使われているのは現状アセンブリ言語しかないのだから、
> C並に低級なことがC並に簡単にできるのでなければ、取って代われるはずは無いと
> 思うけど
だから、 そういうことができるような言語仕様にしよう。
そのときに、最新のプログラミング言語研究の成果を取り入れてCより生産性を上げたい。
GCもいれてオプションで切り替えられるようにして、インタプリタ動作も出来るようにする。 C++のコードのままでもそれは可能。
>>118 はらわた丸出しで腹捩れるほど笑ったwwwwww
123 :
デフォルトの名無しさん :2010/03/19(金) 22:28:19
>>117 「使わなければ済む」のであれば、constもassertもいらないんだよ。
何らかの強制的な制約がなければ必ず発生する。
C++は改良されてきているとは言えベースは30年以上前に作られた言語だからな。 この30年の間に開発された手法を使ってより良いスマートな言語が作られてもいい頃だとは思う。 Cなら尚更だ。
とりあえずC++からC互換性や歴史的制約を取り除いた言語をC/C++の委員会メンバーが 作成してISOに提案してくれればいいよ。言語名はCleanC++で。 問題は彼らにそんな金も時間もなく、かつC++はまだ進化半ばであることだ。
じゃあ我々には出来ることはありませんね
イメージとしてJavascript位の文法でカーネル書けるようになればいいのにな。
ム板のスーパーハカーがさくっと叩き台つくればいいやん。
c や c++ をスマートで記述性も高いと思わない人って居るの?
イメージとしてScheme位の文法でカーネルが掛けるようになって欲しい。
>>128 JavaScript は c より複雑じゃんwww
Javascriptには、ヘッダファイルがないし、マクロもない、シンプルだろ?
こいうのを税金使ってやればいいんじゃないの?
税金使って低水準Prolog作ってもいいよ。
>>131 つうか、そんなのはC++でカーネルが書けるのも一緒だが中間言語的役割を
果たすに過ぎないし、今でも作る気なら作れる。意味が無いだけでw
Scheme位の文法って、文法の規模のことだろ
文法の規模を単純化したいって意味で言ってるなら、 アセンブラを高級言語に近づけた方がいいかもなw
それならForthライクな言語だろ。concatenative languageかもしれないけど。
Objective-C は?
ObjectiveCは恐ろしい言語だぞ!w
Cycloneのruntimeを書き換えて手動メモリ管理できるunsafeモードを付け加えるとかじゃだめ?
>>138 結果的に既存の何かに似ているものになるのかもしれないが、
はじめから既存の何かから始めるアプローチはとるべきじゃない。
先ずは先入観を持たずに、一から新しい言語を作る事を考えるんだ。
>>143 その通り、だからCPU側からアプローチしようよw
高級言語からアプローチしても、OSを作れる(つうか問題なのはデバドラ)
レベルのものにはなるまい。ノイマン型が滅びるその日までw
145 :
デフォルトの名無しさん :2010/03/20(土) 03:02:54
>>144 どうぞ別スレで行ってください。応援します。
>>144 第N世代コンピューターでも作ってProlog++でも開発してろ。
147 :
143 :2010/03/20(土) 03:23:45
すまん飛びすぎたorz
144だ、もう酔いすぎだなw
PHPの文字列のなかに変数埋め込める機能は使えるな Cだと面倒なんだ
ここは中学2年生のスレか
この手の話って時々出るけど、結局Cにはかなわないわけですよ。 Cをやってると、確かにいろいろな欠点、たとえば、マクロの仕様が適当だとか、staticの用途が複数あるとか、 プロトタイプ宣言がめんどくさいとか、関数のデフォルトがグローバルだとか、が目に付いて、もっと洗練された 高速な言語は作れないものかと考えてしまいがちなんだけれど、その辺を直してもしょせんは「亜流C」が 出来上がるだけで、それまでのCに慣れたプログラマが乗り換えるほどの価値のあるものにはならない。 この話は、「バイオリンは音は素晴らしいけれど、演奏の習得が大変なので、新しい技術を取り入れた バイオリンを作ろう」っていう話に似ていて、結局こっちもうまくいかなくて(せいぜい、ピックアップをつけた エレキバイオリンがある程度)、400年前の仕様のままで演奏している。仕様変更してもたいした効果が ないので、放置ってわけだ。 LL言語なら速度を度外視して、配列のサイズチェックやら、継承やらなんやら好き勝手に盛り込めばいいけど、 それの真似をすればするほどCの哲学である、簡潔さ、高速さ、プログラマが書いたままに動くこと、から 遠ざかっていく。 というわけで結論:ムリ。
そしたらまず、なんでRubyでOSが書けないのかを具体的に理由を挙げてみたら?
OSがどのように起動するのか知らないんだろうな
152みたいなやつには、説明は難しい
大昔はTurboPascalでもブートセクタが書けたけどな
>>157 Turbo Pascalはポインタもあるので、C並みのことはできるんじゃないか
>>158 C並みっつうかIO制御もできたし、インラインアセンブラも書けたし衝撃だった。
「Pascalって凄い低級言語じゃねえか!」と勘違いするくらいw
>>153-154 ある程度わかった上で、書いている。
ただ、その低級言語とやらを作る上での、最小の仕様を見つけるためにはそれが必要だと思っただけだ。
あと、Rubyってのは一例であって、別にRubyじゃなくても何でもいい。そもそも俺Rubyつかえねーし。
例えば、インタプリタ言語じゃOSどうやって起動するんだよ、ってのがまずある。
当然、ネイティブコードにコンパイル可能ってことは最低条件になるわなぁ。
(コンピュータサイエンス的意味でのできるできないじゃなく、現実的に実装可能という意味で)
で、じゃあRubyがネイティブコードにコンパイル可能になったとすれば、それでOSができんのか?まだ不十分だろ?
だったら、あとは何が必要か?って話がしたいわけ。
OSないとRuby動かねぇwwwはい論破wwwなんて話はどうでもいい。
162 :
デフォルトの名無しさん :2010/03/20(土) 16:05:56
PL/Iなんてdぴだろう
>151, 161 だからforth……smalltalkもほとんどOSだよな。 自分だけの知識が世界の全てだと思っちゃいかんよ。 それにOS開発が主目的じゃないだろ。
164 :
デフォルトの名無しさん :2010/03/20(土) 17:21:22
いま、C/C++が無かったとして、 現在の最高のプログラミング言語設計者を集めて 「OSを作るから最先端の研究成果活かしてプログラミング言語作ってよ」って頼んだだら どういうプログライング言語を作るだろうか、って観点で考えてみるといい。 「XXがあるからいいじゃん」とか、「YYから乗り換えるほどの価値がどうのこうの」とかは、無意味。 そもそも前提が違う。そういうXX、YYが存在しない前提で考えたい。
そんなオレオレルール勝手につくられてもw Cが無いプログラミングの世界なんて想像不可能です
まずC/C++のいけ好かない点を列挙するとかは?
{} ; が醜い
Cの短所なら>151にいくつか挙げられてるが
「おれの考えた最強言語」みたいな妄想スレっていろいろあるけど 実物ができたためしがない。
関数が第1級オブジェクトじゃない
171 :
140 :2010/03/20(土) 18:07:25
Cの短所を挙げるより、低級言語として何が必要かを挙げる方が、いいんじゃね? 先入観なく考えうる最高の低級言語を考えればいいわけだから。
必要な物ならCに揃ってるんじゃないのか?
174 :
デフォルトの名無しさん :2010/03/20(土) 18:30:53
>>1 そのとおり。
そこで、それは何であるかを明らかにし、
最新のやり方でCよりも優れたやり方でそれを実現したい。
ところで、ここで「作りたい」と言ってる人間(
>>1 含めて)は、当然
CないしC++で最低限何か成果物出してる人なんだよね?
GC言語しか使えない人間がなんとかして難しいと感じてる言語を回避しようとしてる
スレではなくて
成果を出してる人間でも、成果を出してない人間でも、そんなのどちらでもいいよ。 C/C++に代わる低級言語を開発したい意志があれば、是非意見を述べて欲しい。
だから無理だっていってんだろ
無理な人間はあえて参加しなくてもいいのにね^^
じゃあ言い方を変えよう。 やれるもんならやってみろ。生暖かく見守っててやるよ。
低級言語というなら ◎メモリなどのH/Wへの高速アクセス手段 ◎軽量なフロー制御 ◎アトミック処理 ◎リアルタイム性 辺りは欲しいかねぇ。後半はC/C++にも無いけど。 他にはどんなのが必要かな?
181 :
デフォルトの名無しさん :2010/03/20(土) 19:49:31
このあたりを言語としてあまりオーバーヘッドなくうまく扱えるようになってると便利かな。 ・マルチスレッド ・割り込み処理 ・メモリ管理 ・物理アドレス ライブラリでの対応でもいいけど、その場合は、 もともと言語に備わっている機能とライブラリで提供される機能が区別なく使えるのが望ましい。
先ずは、構文糖一切なしのベースとなるプリミティブな言語仕様を定義したいね。 その上で、あとから定義した機能がもともと言語に備わっている機能のように扱えるといいかも。
まずはbrainfuckから始めろということね
brainfuckは低水準処理のため効率的な記述ができないから不十分だろう。 やろうと思えばできるというだけではなく、効率的にできることが重要だから。
>>184 効率的なって何言ってんだあんた
あんなもんで何一つ書けやしないよ
ためしにあれで電卓でもつくってみ。絶対つくれないと思うけど。
あの、brainf*ckはTM等価なんですけど……
だから書いてみろって 絶対書けないから
俺もデバドラ開発でCじゃない新しい言語使ってみたいよ。
奴隷は一生C使ってろwwww
一生使うならCよりもっと良い言語を使いたい。
Cと今、普通に使われている高級言語の大きな違いは、言語自体にランタイムが必要か必要でないかの違いがある 文字列型の演算、ヒープとGC、例外処理などは、ランタイムが必要
Cが出た当時は高級言語って位置づけだったような記憶が無くもない
>>194 一般的には低級言語はアセンブリ言語だけ。
Cは高級言語の中では低級よりなんで、低級と言ってるひとが
いてもいちいちつっこまないけど。
中級とか言ってる奴もいるけどなw
中級という表現は悪くないと思うが
いや、別にスイーツという表現も悪くないよww
フルーツ
>>193 便利にすると必然的にランタイムが必要になるってこと?
使っていない機能を細かくリンクしないようにできるなら、別にランタイムがあってもいいんじゃないの。 でも、ランタイムが肥大化しないようにこの機能を使わないようにしましょうとかウザイことになるのも嫌だな。。
>201 そんなことは無いよ ランタイムとして分割しておいた方がプログラムする側にとって都合がいいだけの話。
Cのマクロ削除してくれたらあとなんでもいいよ
>>193 の処理はぜんぜんランタイムと関係ないだろ。
つかランタイムの概念を根本的に勘違いしている
俺もヘッダーの;が要らないと思う
クラスのメンバ定義部分(?)の最後に付いてるウンコ
そもそも、ヒープが必要な言語を使ってOSのヒープを提供する部分は記述できない。 ヒープの提供までのところは、ヒープを使わないような構文に制限するとか、 OS内部で使用するための特製のヒープを使うというのは原理的にはあり得るが、 スマートではない。
言語仕様をコア部と周辺部に分けて、コア部でヒープの実装をして、周辺部でヒープを使えるようにすればいいんじゃないの。
>>212 それは、CとC++の関係と同じだね
むずかしそうだろ
いや、C++はC++で閉じてるだろ
言語を開発するだけではだめで、せめてLinux Kernelをその言語で書いて、 全てにおいて有用であることを実証しなければ、Cを置き換えることは無理
>>214 そう。
C++を使ったとたんに、たとえ外部の関数を全くつかわなくてもそれなりの大きさのランタイムが必要になる。
それがどのようになっているかを考えると、OSの記述ができる言語というものの条件が分かってくると思う。
>>215 まあ、それはその段階になったらやるから、今は言語仕様考えような。なっ。
ライブラリ使わない場合でもC++ってランタイムライブラリ必要なの?
必要
>>218 例えばnewを使っただけで内部関数を呼び出すコードになる。
ああ、そういう意味か。
new/deleteに関しては、 メモリ確保・解放を実際に行うoperator new関数とoperator delete関数を自分で定義すれば、 原理上、ランタイムへの依存は不要になる。
OSだってランタイムみたいなもん
ランタイムの有無は関係ない気がする
まあ、結局コンパイラをどう作るかって話しだろ。
へー
どう作るかの前に誰が作るの?
その前に何を作るかだよ。先ずは言語仕様だ。
言語仕様なんて適当に意見出しあってできるもんじゃないよ。
実装者は別としてもそれを集約してまとめる人が必要だと思うな。
仕様が実現可能か判断できる能力も必要。特に文法設計が一番大変だと思う。
>>1 にコンパイラを書く技術があるなら当然
>>1 がすべき。
>1はもういないだろ。 誰もまとめようとしていないんだし、とりあえずは与太話を続けようぜ。
集約してまとめるのは後でするから、今はまず意見出せよ。
結局Cに修練するんだよ
235 :
デフォルトの名無しさん :2010/03/21(日) 03:11:22
テンプレートは欲しいな。
>>235 ということは、OOPが必須になりますね
テンプレートはOOではない。
238 :
デフォルトの名無しさん :2010/03/21(日) 03:19:08
>>234 こんな進化が早い業界で40年前の言語が最適解なわけがない。
C99だとしても10年以上前だ。
現在の知識で一から言語設計すれば、Cよりもっと良い解が必ず存在する。
じゃあテンプレートいらね
もうちょっと賢いマクロが欲しいな。型安全で。
>>237 OOなしでテンプレートあってもあまりうれしくない。
テンプレートはOOとは別の総称プログラミングパラダイムの実装であるので テンプレートとOOの有無はあまり関係が無い
OSの中身は継承と仮想メソッドのオンパレードだから、OOは良くマッチすると思う。 で、例えばlinux kernelだとこれをC言語+キャスト+関数ポインタで実装しているから安全性が低くてかなり問題。 個人的には、これからは並列計算機の時代だしメッセージパッシングベースのオブジェクト指向言語でOSを 書いてみたい。 アドレスを直接操作する必要がある本当に低レベルな処理はOS全体の割合で見れば一部だから、それができることを メインの仕様にする必要はないと思う。 高級な機能を制限して、低級な機能を開放するコンパイルオプションでもあればいいんじゃない?
abs, labs, llabs, fabs, fabsf, fabslが一つの記述にまとまるってだけでも十分にテンプレートの意義がある。 同様に、関数の多重定義も認めてほしいかも。 型付けは、どうせ動的型付けやら何でも入る変数やらは不適だろうから、静的な強い型付けでいいよね。
>>243 それでいいんだったら、Cのインラインアセンブラみたいなノリで、既存コードに
__C{
...
}
でいいんじゃね?
246 :
デフォルトの名無しさん :2010/03/21(日) 10:33:45
既存がどうこうではなく、 いま、最高のプログラミング言語研究者が新たに一から新しい言語を作るとしたらどういう言語を開発するか という観点で考えて欲しい。
247 :
デフォルトの名無しさん :2010/03/21(日) 10:34:52
それならいま、最高のプログラミング言語研究者に聞けよ馬鹿かお前
お前には聞いてない
osの実装と言語の理想は水の油かな。 だからvmみたいなのが出てくる必要があるのかな。
>>246 またお前か
自分で考える気はないようだなw
251 :
デフォルトの名無しさん :2010/03/21(日) 11:01:06
>>249 (0)まっさら→(1)OSのサポートなしでコンパイラ実装→(2)OS実装→(3)OSのサポートありでコンパイラ実装→(4)アプリケーション実装
(1)(3)を両立できる言語仕様がいいね。
>>246 あなたのやっていることは既存言語という基礎を無視して新しい
言語作ろうとしているようなもの。どの分野でも先人の正負合わ
せた遺産から学ばずに無視すると失敗するよ。
それに永久脳内言語なんざ付き合うほうは迷惑なんで4/1までに
色々な言語調べて叩き台の言語仕様書または良質なベース言語を
用意しませう。
俺大学でコンパイラ研究してる院生だけど、システム開発目的でC言語相当の低機能な言語を新しく作る研究なんて見かけた事ないな。 トレンドは速度より安全性で、関数型言語とか強い型付き言語でOS書こうとする研究が多い。
それは言語を開発してるの?それとも既存の言語?だとしたらどの言語なの?
例えばOSの為のプログラミング言語の学会でPLOS(Programming Languages and Operating Systems)ってのがある。 新しく言語を作るって研究はほとんどないね。JavaとかMLとかHaskellとか既存言語を使ってる。 日本だとFail-Safe Cとか有名。 でもこれは別にC言語の代替言語に需要がないといういう意味ではないよ。 CやC++と同レベルの物を作るってんじゃ研究ネタにならないから誰もやらないってだけ。
日本の雑魚研究者が何してるかなんて興味ねえ
と、雑魚以下のプランクトンが申しておりますw
ム板にはその雑魚すらいません
cへのトランスレータが流行る訳
OSを作りたいという需要について
誰もやってないから面白いんじゃないの? 研究者としてはw
263 :
デフォルトの名無しさん :2010/03/21(日) 19:56:51
おそらく未踏で出てくるぞ。で、詐欺のような結果をだして逃げ切るはずww
俺大学でコンパイラ研究してる院生だけど、プリキュアは初代以外認めないな
おまえら本当に口だけだなあ…… 草案でもいいから、なにか出してみろよ
アイディアあるんだったら今作ってる俺言語に盛り込むよ。 面倒臭い思いしてまで草案なんて作るわけないだろ。
Cにさしたる欠点がないから出てこないよ
C(笑)
>>254 他人がやってないと安心できない研究者ってダメだろw
Cの再発明はそれ以下だけどな。
271 :
デフォルトの名無しさん :2010/03/21(日) 22:39:45
ということで、LispやRubyやJavaの再発明ばかりしていないで、 最新の言語研究の成果を取り入れたCに代わる低級言語を開発しよう。
D言語との差別化は?
273 :
デフォルトの名無しさん :2010/03/21(日) 23:07:05
既存の何かと違う何かを作るのではない。 最新の言語研究の成果を取り入れた新しい低級言語を作るのだ。 既存言語との差は、言語仕様ができてからdiffをとれば分かる。
だからお前の言う最新の言語研究の成果って具体的に何さ?論文持ってこいよ。
最新の言語研究の成果について知らないなら、このスレに参加しなくていいですよ^^
要はバカばっか
277 :
デフォルトの名無しさん :2010/03/21(日) 23:48:51
どういう境遇にいればこんなざまで生きてこれるのか興味が
最新の結果なんか、そいつらが実験的なプログラミング言語をつくってるだろ 実用を目指すなら、Matureなものから取捨選択だろ
っていうか、実際作るつもりのやつっているのか。
言語仕様ができたら作るだろ。
>>1 はスレ立てた時点で開発とコミュニティ育成が始まっているという認識無さすぎ。
スレ立てる前に言語仕様草案を作っておいて、さらに議論進めながら
協力者募るって一切やってない時点で空中分解している。
>>275 「私は何もできません。中二病に羅漢したいです。だれかやってください。他力本願(はぁと)」
っつうくだらない自己弁明はうざいから、お前の言う最新の計算機言語学関連論文の
リソースちゃんと出してくれる? そうしないと一向に進まないんだが。
キモイ
C相当の機能に、強力なマクロ(コンパイル時処理)とクラスと名前空間があればいい。
×羅漢(らかん) ○罹患(りかん)
ヘッダーファイルが要らない
他人のマクロがうざい
今から新しく作るのにマクロかよ
型安全なマクロ
おれjava2cppつくったよ。 俺専用なんでいろんな縛りあるけど実用してる。
機能のトランスレートだけならどうにでもなる。 が、単にVMで動作していたものが関数呼び出しに変わるだけでは全く意味はない。 必要なのは実用的にオーバーヘッドなく低レベルの処理を記述できることだ。
cppネイティブな記述に変換してるし速度的なメリットもあると思うけどな。 コードがシンプルになる&どちらのプラットホームでも使えることを目的としてるし。
>>83 langageって何語?
英単語では知らないけど、ドイツ語とかラテン語とかかな。
グーグルさんに「もしかして・・・」って指摘されないし。
ひとつの記述から生成される実行プログラムは原理的には同じような性能しか持ち得ない。 一方が他方より性能が優れるのであれば、他方が単に馬鹿なだけだ。
発想力が足りないね
テンプレートが神速でコンパイルできる言語を開発して下さい コンパイル時間短縮のためにメタ関数の遅延実行とか 考慮するのが面倒なんです
>>1 C/C++に代わる言語のコンパイラは、先ずはCで書くの?
コンパイル時間ために言語仕様を妥協することには反対。 コンパイルオプションでヘボイバイナリを高速に吐いたり、高速・コンパクトなバイナリをじっくり生成したり、選べるならいい。
Dは、みなの希望を満たしているね
302 :
デフォルトの名無しさん :2010/03/22(月) 02:08:59
Dは違う。
言語名
Linuxカーネルだって最初は小さいコードだったんだ。 どこかの一人の天才が先ず始めて、それからみんなでよってたかって作ればうまくいくよ。
小さいコードでもその段階で「いける」って思わせるレベルのものなんだよな
2ch発の言語が誕生するか見てるがまるで駄目だな。全くできそうな気配もないw
お前、ワクワクし過ぎw
結局どんな改良がしたいの?
310 :
デフォルトの名無しさん :2010/03/22(月) 02:31:14
言語仕様に組み込みの機能(forとかifとかあれば)と全く同じように扱える、my_forとかmy_ifとかを独自に定義できるといいな。
311 :
デフォルトの名無しさん :2010/03/22(月) 02:31:58
>>309 改良じゃない。
最新の言語研究の成果を取り入れた新しい低級言語を作るのだ。
>>311 言葉遊びはいい。Cでできないなにを目的に新しい言語作りたいの?
313 :
デフォルトの名無しさん :2010/03/22(月) 02:34:48
効率良くプログラミングをしたいんだろ。 Cがあるのに、C++、C#、Java、F#、Haskell、OCaml、Ruby、Pythonが出てきているのと同じことだ。
効率よくって具体的になんだよ。 C++じゃだめなの?Javaじゃだめなの? どこがだめだから違う言語がほしいの?
蓮舫は来なくていいよ。
答えられないと仕分けされるよ
↓このヒトが言語仕様をまとめます
いらない
319 :
デフォルトの名無しさん :2010/03/22(月) 02:48:30
Cが無かったとして、 最高の研究者を集めてOS開発用のプログラミング言語を作らせたらどんな言語を作るだろうか という思考実験としても興味がある。
このスレざっと見たけど具体的なこというやつほとんどいないな。
結局Cに収斂するよ
>>1 いわく
低レベル記述、高パフォーマンス、可読性、簡潔さ、拡張性、学習の容易さ
とOOを保ちながら文法を整理するといってるみたいだが
文法の汚さって具体的にどこ?C++の部分?
つーか、Cに不満はあっても、膨大な資産を捨てて新大陸作って移住しよう、ってほど 不満なCプログラマはほとんどいないだろ。 Cが全然使えません、って人なら新大陸欲しいのかもしれないけど。そんな奴が低水準 に触るのはぶっちゃけ無理だしスクリプト系で我慢しろと。重い安全装置付いてっから。
セミコロンが死ぬほど嫌いならトランスレータ作ればいいよ それこそPythonあたりで簡単に作れるよ そのセミコロン排除言語を使いこなすには、Cを使いこなす能力が必要だけどな あと、改行で続けたい時はバックスラッシュな あと、普通のCを読み書きしようとすると死ぬ、ってのも覚悟な
文法が汚いってだけならホントにどうでもいいな
同じ事を何回繰り返せば気が済むんだろう 環境に依存しないアセンブラが理想、それはCであり、究極的にはJavaなんだよ それ以上もそれ以下も無い。車輪の再発明はやめろ
まずは、C のポインタで実現している機能・効率と、 Haskell 並みに強く型付けされた言語の安全性を両立したいなあ。
329 :
179 :2010/03/22(月) 07:00:03
な、何も進まないだろ。
>>319 のバカが同じこと何度も(すくなくとも4度は)書いてるだけで。
Cの牙城がいまだに崩れないのはそれなりに理由があるんだよ。
Dでいいでしょ Cの資源も使えるし
Dって全然知らないけど何なの。 C#はCに見た目だけ似てるLL言語だってのは知ってるけど、そんなようなもん? JAVAもそんなようなもんだし。 もしそうならCの代わりなんてとても務められないじゃん。
想像で何を言っとるんだwww ネイティブコンパイルなマルチパラダイム言語だよ
説明になってないな。 おまえは「プログラムできないやつが適当に話を合わせるスレ」に帰れよ。
>C/C++は高速だが過去のしがらみから文法が致命的に汚い。 >C#の文法は洗練されているが中間コードやGCを前提としているため致命的に遅い。 >LL系の言語さらに遅い。 Dは中間コードを吐かずネイティブコンパイルするので高速。 GCは備えてるが、malloc を使う事もできるので、GCの速度が気になるなら malloc を使えばいい。 >そこで、C/C++に代わるOSも作れるような低級プログラミング言語を開発したい。 GCさえ使わなければOSを作る事も可能。 >文法はCに似ている方が望ましいが、 >低レベル記述、高パフォーマンス、可読性、簡潔さ、拡張性、学習の容易さ >を担保出来るなら、どんな形式でも構わない。 文法はCにある程度似ている。 C++は文法がコンパイラの作成の容易さを考えて作られてないため 構文解析が非常に大変で、コンパイルも遅いが、 Dはコンパイラの作成の容易さも考えて作られているため、 コンパイラも作りやすいし、コンパイルが高速になる。 インラインアセンブラも使えて、ネイティブコンパイルなのでパフォーマンスも高く、 (敢えて複雑な事をしなければ)可読性も高く簡潔で、 Cの資源も利用できるし、現代的な各種言語仕様を取り入れており、拡張性も高い。 やれる事が多いので、学習の容易さに関しては難はあるかもしれない。 >プログラミングパラダイムについても、オブジェクト指向を備えることが望ましいが >生産性を高めることが出来るのであれば、他の方式が入っても構わない。 OOP、テンプレート、mix-in、プロパティ、GC、高度な条件コンパイル、契約、 連想配列、遅延評価、ローカル関数、ラムダ式、クロージャなど、 伝統的な方式から現代的な方式までかたっぱしから取り入れられている。 欠点は言語仕様が安定しないこと。これに尽きる。 古いソースは今のコンパイラでは大抵コンパイルできない。 逆に言うと、言語仕様が安定しさえすれば普及するかもしんない。
なんか全然まとまらないから、言語仕様作るとこまで自分が仕切ってみても良いですか?
作るならDよりいいものにしてよね
>>335 言語仕様があっても、バイナリを生成するコンパイラが出来なければ、まさしく絵に書いた餅で終わるわけだが
コンパイラを作るにはCPUの詳細な知識が必須でしょ?そんなやついるの?
Cのソースにコンパイルできればそれでいいよ
作れるけどこんなバカバカしい話には乗れん
むしろ絵に書いた餅のうちが楽しいんだぞ 味を想像する余地があって
動画、サウンド、2D/3D描画とかのライブラリも全部作り直しになるのか? 移植するにしても、Cと似てない構文なら大変そうだし、Cからの単純移植ならそれは新言語の特性を生かさないという意味では
APIの呼び出しはそのままにしておけ 特に帰ることもないだろう
Cのライブラリをそのまま使えればいい話だろ
344 :
335 :2010/03/22(月) 09:15:11
自分もコンパイラは作れますが、まとめ役だけに徹します。 すごく面白い発想の言語なら作りたい人が現れるかもしれません。 とりあえず ・手続き型+OO+テンプレートのマルチパラダイム ・バイトコード無し・VM無し・GC無し という意見が多そうですが、ここは固定でいいですか?
多重継承out mix-in in で
PHPでいいよ これを改良しろよ ガベージコレクションがあるか無いかは言語の文法とは別な気はするが。 PHPをGCなしでコンパイル使用とすれば出来る C言語をGCありのスクリプトにも出来る。
PHPみたいな糞言語をどうしろと
ヒロポンとかいうOS作っていたやつのOSはどうなった?一度も動かしたことがない。 ある程度のシェアとれる見込みはあったのか。起動だけ出来れば良かったのか。
テンプレートなんか許可したらコンパイラ作る手間が爆発的に増加するぞ
(テンプレートを何だと思ってるんだろう)
C C++ D-- D なんだこれ
353 :
355 :2010/03/22(月) 10:31:36
>>349 手間はとりあえず無視しますか。技術的に可能ならOKということで。
>>351 このままだと劣化C++になりそうですね。つまらないですね。
VMの有無に関して意見ないですか?
自分は今時ネイティブコンパイルとか古臭いと思っているのですが、みなさんどう思いますか?
おいおい、低級プログラミング言語を作るんだろ? ネイティブコンパイル一択だろ
劣化C++ですらねーな
C++にそれなりにとって変わられてんのに 結局Cにはかなわないと結論づけてる文に どれだけの価値があるのか
>>354 そもそもC言語ですら、低水準言語の定義には当てはまらないじゃないですか。
インラインアセンブリを使わないと書けない処理とかあるわけですから。
ネイティブコンパイルでも良いと思うんですが、OSが書けりゃいいんだし、
安全性や高速化という観点で検討してみてもいいかとは思います。
ただの問題提起です。
C++で書かれたOSってなんかあるの?
OSの話なのか
ずーっとOSの話してるだろアホかお前
pascalで書かれたOSならあるな
VMの話とかされちゃ OSの話とは思わない罠
InfernoとLimboの劣化再発明を議論しているスレはここですか?
手続き型にするとして、駆動レコードとかどうする? サブルーチン一択にする?コルーチンもOKにする?それともForthみたいにユーザーが駆動レコードを弄れるようにする? 新しいフレームを作らない手続きとかも欲しいなぁ。 というかForthやろうぜ。
Ring0の命令を扱うための構文とかあったほうがいいのだろうか ライブラリで十分か
機種依存コードのIFDEFをすっきり書けるようにしてほしい C++のclassとは別の枠組みで実装の特殊化ができる 後は、エンディアンやアラインメント指定のコンパイラ標準サポートとか
>機種依存コード・エンディアン D言語のversion構文で十分 エンディアンによるversion分岐も標準でサポート >アライメント D言語のalign属性で十分
D言語ではダメな理由は?
いろいろついてて重そうだな。 ゲーム機や組み込み機などの省資源では足かせになりそうだ。
>>370 そうか、そういうのはDから輸入すればいいな
ただしエンディアンについてはversionで分けるだけでなく
同一記述から、指定したエンディアン用のコードが生成できる必要があると思うが
そういうのもDは可能?
enbeded Dでいいんじゃね
>>373 流石にそういうのはないかなあ
まあそういうクラスを作れば可能だろうけど
376 :
335 :2010/03/22(月) 11:41:39
自分はD言語で十分に思います。 スレの内容的にツッコミどころあるとすれば 最新の言語研究成果を使いたい(?) → D言語は成熟した・古い技術しか使っていない 超高速にしたい → D言語は高速化に重点を置いた言語仕様ではない。最適化が効かない。 くらいでしょうか。
やっぱりD--だなw
最新技術って例えばどういうもの?
Dは仕様を提案すると 入れてくれることもあるで
380 :
335 :2010/03/22(月) 11:49:12
>>378 例えば、JITや自動並列化などでしょうか?技術自体は古いですが、まだ広まっていはいないですね。
高速化以外だと、モデル検査による安全性の検証とかですかね。
JITはネイティブコンパイラには全くの無意味では・・・ 自動並列化は面白いが、基本的にOSあってのものだよね モデル検査とか一般的なプログラムで適用可能なんだろうか? 安全性に関してはDの契約が現実的な解な気がする
383 :
335 :2010/03/22(月) 12:08:11
>>381 後者の場合、例えば
デバイスドライバなどのOSのモジュールが満たすべき要件を記述したファイルを用意しておいて、
ユーザのプログラムがそれを満たしているかコンパイル時に検査することで、安全性の高いOS開発ができる
といった使い方が提案がされています。
JITの場合は
OSの最下層にJITを組み込んだランタイムを用意して、OS本体やユーザアプリケーションはバイトコードの形式にし、
それをJITコンパイルして実行
という形が考えられます。高速化は期待できますね。
でもこれは、言語設計に制約は課さないから今考えなくてもいいかも知れません。
自動並列化の場合は言語設計が重要です。C・C++・Dの様な言語では困難な技術です。
ヒープや並列処理は、OSがあるというのが前提なので、そういうのを言語自体にとりこむのは、目的にかなっていない。
385 :
335 :2010/03/22(月) 12:48:57
別にブートローダとかメモリマネージャとかを書く専用言語を作りたいわけじゃないじゃないですか。 低レベルな処理を記述できる言語機能を持たせればいいのでは?
コンパイラ自体が未知の(これから作る)OSの仕様に依存してどうすんのよと
387 :
335 :2010/03/22(月) 12:59:59
並列化サポートのある言語で直列コードにコンパイルしても別にいいじゃないですか。 JITサポートのある言語をネイティブコードに(ry GCとかとなれば話は別ですけれども。
簡易な記述でハードウェアリソースを使い倒せて 既存のコードやライブラリが流用できるなら OSごと入れ替える価値はあるなぁ ネットワーク上の別マシンのリソースもローカルのコアも意識せずに扱えるとか んで、リソース配分はJITでとか、夢が広がりまくりですな
このスレでJITを持ち出すなんて ただ技術的に新しいことやりたいって自己満足に過ぎないわ
>>344 ちょっと前に流行ったカンスーガタとかを含めるのは難しいかな。
391 :
デフォルトの名無しさん :2010/03/22(月) 19:19:44
文字列リテラルに直接文字列クラスのメソッドを適用できるようにして欲しい
いらね
393 :
デフォルトの名無しさん :2010/03/22(月) 19:50:22
便利で高速なライブラリでも開発した方が余程役立つだろ
394 :
デフォルトの名無しさん :2010/03/22(月) 19:53:55
便利で高速なライブラリを開発できる言語仕様ができればいいと思う。
理想言語スレなので役立つかどうかなんて正直どうでもいいのよ
D言語が有名になればいいだけみたいだな
397 :
デフォルトの名無しさん :2010/03/22(月) 19:57:24
>>396 仕様が安定すれば、もう少し有名になるんじゃないか?
いや最近のD言語まわりの事情を知らんのだけれど
399 :
デフォルトの名無しさん :2010/03/22(月) 20:04:05
D厨ウゼー
クロージャー欲しい
クロージャならD言語にあるで
あんたらの求めてるモンD言語に全てありまっせ
とりあえず片っ端からつっこみまくったからな
そしてゴミ溜め状態になるんですねわかります
腐臭がする
クロージャってGCない環境でも実装できるの?
407 :
デフォルトの名無しさん :2010/03/22(月) 20:13:36
コアの言語仕様は小さくして、拡張性を高めた方がいい
片っ端から仕様を詰め込んではいるが 構文解析が楽になるよう言語仕様を決めてるから コンパイラを作るのはC++に比べて格段に楽らしい
何でもかんでも入れると結局使えない言語になるから、
>>407 の言うように言語仕様は小さくて拡張性の高い言語にするのがいいだろうな。
コアを小さくする必要はどこにもない 進化に付いていけない奴はこのバスから降りるしかない
小さいからコアなんだろ、アホww
昭和脳がITを窮屈にする
413 :
デフォルトの名無しさん :2010/03/22(月) 20:25:29
何をコアと呼ぶかは議論があると思うが、言語仕様を階層化しておくのは良いやり方だと思う
小さいコアならCで十分なような
>>407 ってLiXXとかLuXとかあの想像する
要するにカス
416 :
デフォルトの名無しさん :2010/03/22(月) 20:33:45
>>414 十分とかそう言うのは関係なくて、
いま1から言語を作れといったらCにならないだろ。
40年前ならCになった。
じゃあ、今ならどうなるの?って話。
ネイティブ生成が古いってのは、Googleの誰ぞが言ってるようなランタイム最適化 優位論に近いんかな? 正直あれはそんなうまく行くとは思わないんだけどな。Crusoe的な直線番長になる だけだと思うが。立ち上がりは確実に悪いし、立ち上がりで作業が終わってしまう。 動的にやる分のコストもタダじゃない。MTで振り分ける手もあるかもしれないが、 MTならば並列化手法との比較優位が見えないと微妙。 不透明な動的コストが果たして低水準処理と相性がいいのかどうか。不透明な動的 コストといえばGCを思い出すが、原理的にはあれよりは扱いやすいかもしれないが。 そもそも低水準を触る理由は、速さが欲しいだけなのか、生じゃないと困るのか。 後者ならVMは論外。というか、VM路線がどうもうまく行かなくて後退してるのが 最近の流れだと思うが。VMと相性良さそうな携帯電話ですら。 つーかVMでいいならScalaでいいんじゃねーの。JavaVMはVMとしちゃ相当速いし。
418 :
デフォルトの名無しさん :2010/03/22(月) 20:37:48
「OS/VMを作るための低水準言語を考えよう」って言えばいいのかもな。
じゃあ今ならどうなるの? →Dになります
キモイ
今ならわざわざ作らない
それならCにできないけど低級言語に欲しい機能を挙げてみようぜ。 ・Lispなみに弄くれるマクロ - テンプレート - 正規化された構文(S式とか) ・Forthなみに弄くれる駆動レコード - コルーチン - 強制インライン展開(レコードを新しく作らないルーチン) - 駆動レコードへのアクセス ・実行制御 - 高度な並列処理(トランザクションとか) - アトミック操作 - リアルタイム操作 こんなもんかね? 他にどんなの欲しい?
423 :
デフォルトの名無しさん :2010/03/22(月) 20:51:04
>>422 >・Lispなみに弄くれるマクロ
これいいなぁ(゚A゚;)ゴクリ
並列化しやすいデータ構造とかループ構文とかくれ
諸刃の剣だけどな
>>346 CGありのCは需要がありそうだけど、
deleteだかfreeだかやらないといけないPHPなんてだれも使わなそう。
427 :
デフォルトの名無しさん :2010/03/22(月) 21:00:08
> なんか
>>1 が言語の開発の何たるかを知らん臭い。
それはスレタイの時点で既に
429 :
デフォルトの名無しさん :2010/03/22(月) 21:05:35
変数はレキシカルスコープでお願いします。
430 :
デフォルトの名無しさん :2010/03/22(月) 21:08:34
>>422 ・マルチスレッド
機能としてはライブラリでの提供でいいけど、構文としても備えていて欲しいな。
>>422 トランスレータ形式での実装限定になるかもしれないがインラインアセンブリは当然としてインラインC/C++欲しいところです。
これによりライブラリラッパーが書きやすくなり、既存の資産を僅かな修正で活用できるかと。
さらに標準型(predefined-type)は少なく可読性に優れた文法のほうがいいですね。
D(ry
C/C++使えばいいだろ じつに馬鹿だな君は
全然知らないんだけどさ、GOってどうなの?
>>335 さんは今頃頑張ってる頃か。何にせよ具体的なものが出てきたら盛り上がるだろ。
436 :
335 :2010/03/22(月) 22:53:32
>>435 今帰ってきた処で何も具体的な物は作ってません(--;
自分の分かる範囲で意見を書きます。
>>389 新しい事考えないと自分のモチベーションが維持できないので・・。確かに自己満足です。
>>390 手続き型言語に関数オブジェクトを追加という意味なら容易です。
関数型言語にするという意味なら、型システムの健全性(コンパイル可能ならプログラムは正しい)を保つのが大変そうです。でも面白そうですね。
>>406 ダイナミックスコープならGC無しでも可能だと思います。
レキシカルスコープなら、ヒープに確保した自由変数を解放する必要があります。GCがあった方が楽ではあるでしょう。
>>409 小さい仕様のコアを実装して、強力なメタプログラミング機能をつけるという感じでしょうか。
>>417 適材適所の一言に付きます。個人的にJITを推す理由を書きます。
- OS等の整数系プログラムの場合はAOTでは不可能な分岐除去が劇的に効く
- キャッシュ最適化はJITが遙かに優位
- ランタイムをOS組み込みにするならば、起動オーバヘッドは削減出来る。
- GCCがLLVMを取り入れたように、むしろ今のトレンドなのでは(自信ない)
>>422 LISPマクロいいですね。Forth面白いですね。
トランザクションは低級言語では難しそうですね。VM作ってSTMを実装ということになると思いますが、一部のプログラムを覗いて激しく遅いという噂です。
>>424 データ構造・ループ構文ももちろんですが、ポインタをどうにかする必要がありますね。
437 :
409 :2010/03/22(月) 23:12:31
>>436 >小さい仕様のコアを実装して、強力なメタプログラミング機能をつけるという感じでしょうか。
そうだねー。
それと、”標準ライブラリ”が必要だろうから、それを見据えたメタプログラミング機能かな。
>>436 繰り返しの話になってる気がするんだが、
「速度が欲しいんじゃなくて、低水準をほとんど生で触りたい」っつー需要については
守備範囲外だから引き続きC/C++を使っててください、ってことでいいのね?
その場合、低水準に触れるメリットは全く無く、C/C++に匹敵する速度、だけが売りに
なる訳だけど、そうするとScala辺りでいいんじゃないの、ってのはどうなのよ。
あと、VMの起動が重いなんて話じゃなく、アプリの中身のコードの立ち上がりが重い。
トレンドについては、実験ネタとして流行ってるが、どれも実験してるだけに見える。
まぁ、成功の見込みがそもそも無いと思うから、好きに実験すればいい気もする。
つーかこのネタについては建設的意見を全く持ち合わせてないから、この辺にしとく。
一応頑張れ。
>>319 最高の研究者を集めてCPUを作らせたらどんなCPUを作るだろうか
という思考実験にはなぜ興味がないのだろうか
CPUに興味がないのと同様に、言語にも興味がなくなるように仕向けることは
できないだろうか
440 :
335 :2010/03/22(月) 23:38:01
>>438 JITは言語バックエンドの話で、バックエンドは場合に応じて選択可能ですから「速度」と「低水準」を両立する事は可能だと思います。
「低水準を生で触る」という需要も満たせるように考えましょう。
というか、今JITの有無にこだわっても言語仕様には影響ないから意味なかったですね。すいません。
>>439 >>319 は私ではありません。
441 :
デフォルトの名無しさん :2010/03/22(月) 23:42:41
>>439 > 最高の研究者を集めてCPUを作らせたらどんなCPUを作るだろうか
> という思考実験にはなぜ興味がないのだろうか
興味あるけど、スレ違いだから別のスレッドでやってね^^
応援するよ^^
442 :
デフォルトの名無しさん :2010/03/22(月) 23:47:00
「低水準を生で触る」を今風のやり方で出来るといいな。
既存の〜があるからそっち使えばいいって正論だけど、日本発のオープンの言語を作ってやろうって 気概を持った人が少ないよ。いつから日本人はこんなに自信を失ってしまったんだ。 ガイジンが作ったものに飼い慣らされるな! 俺?気概も自信もあるわけないじゃないですか(^q^)
| \ ノ´⌒ヽ,, / γ⌒´ ヽ, \ // ""⌒⌒\ ) / i / ⌒ ⌒ ヽ ) \ !゙ (・ )` ´( ・) i/ / | (__人_) | \ `ー' / <トラスト・ミー /ノ⌒) 、、、、ヽ ______ ∈ 彡彡 } ________ ~`ー┬―┬――" ``` ``` 殺伐としたスレにポッポちゃんが現れ2get!!
445 :
デフォルトの名無しさん :2010/03/23(火) 01:31:14
日本発はどうでもいいけど、
>>422 を備えた低級言語は使ってみたいな。
>>443 作っても意味の無い物を作ろうとする気概なら無くていい
447 :
335 :2010/03/23(火) 02:01:18
「低水準を生で触る」に関してですが、その為の言語機能を標準として組み込むべきか、拡張仕様とするかについて意見ないですか? 例えばポインタ型変数は標準として提供すべきでしょうか?
提供すべき
449 :
335 :2010/03/23(火) 02:05:42
具体的に根拠を是非
根拠:Cにポインタがあるから
451 :
デフォルトの名無しさん :2010/03/23(火) 02:22:39
>>447 「低水準を生で触る」ときパフォーマンスも要求されることが多いだろうから、
拡張仕様とすることによるオーバヘッド(実行時間が増える、記述の複雑になるなど)がない(or許容出来る程度に小さい)なら、拡張仕様でいいと思う。
そうでないなら、標準として提供すべきだろうね。
452 :
335 :2010/03/23(火) 02:23:28
普段からポインタ演算や整数値からのキャスト、アドレス取得等を出来るようにしておくのか、 拡張機能として提供して普段は制限するのかという話です。
453 :
デフォルトの名無しさん :2010/03/23(火) 02:25:58
Cがどうであるかは、どうでもいいと思う。
454 :
335 :2010/03/23(火) 02:26:02
>>451 拡張にする場合、普段は禁止しておいてコンパイルオプションかなんかで部分的に許可するという形になるかと思います。
455 :
デフォルトの名無しさん :2010/03/23(火) 02:29:25
>>454 コンパイルオプションでON/OFFするのは美しくないので、制限するにしてもソース中で解除出来た方がいいんじゃないかなー。
コンパイラがワーニング出すのはアリだと思うけど。
「低水準を生で触る」機能は拡張機能で、拡張機能を使う宣言はソース中で行う、というのに1票
457 :
デフォルトの名無しさん :2010/03/23(火) 02:33:55
隠蔽しすぎて敷居が高くなるのが懸念されるけど、、
C/C++でいいような気がする
Javaから入ってPython ,Ruby ,R,C# ときたけど C/C++は本当に必要に迫られるまで触りたくない
460 :
デフォルトの名無しさん :2010/03/23(火) 04:05:37
もし本気で誰かが言語を作ったとして、 文法覚えて使おうと本気で思ってる人居るの? どう考えても集団オナヌーだと思うけどな。 C言語のココが気に入らねーって話なら解る。 あと俺様の希望は、低機能で良いから数KByteのRAMでも動く マイコン用のC言語インタプリタ。SilentC最高。
C、C++、C#のすべてを覚えれば代わりの言語なんて作る必要はない
>>460 普通の言語は類似品が乱立し競争にさらされ努力しています。
しかしC言語には競争相手がいません。C言語は努力が足りません。C言語は甘え。
なのでC言語が気に入らねーです。
C言語を拡張した言語ならいくらでもあるし、 CプリプロセッサもC言語へのトランスレータの一種
Cではいけない根拠が薄弱過ぎ 最強を批判したところで最強にはなれんのだぞ 計画倒れどころか計画すらフワフワしてて論外だし どうしてもと言うのなら、とりあえずその理想の言語っつーやつを開発して持ってこいよ
まぐれで最強になったっぽい所が気に入らねーんだろうな。 偶然ではいけない、必然でないといけない、っていうのは宗教に近いが、 本人達は宗教だとは思っていないだろう。
お前らは何マジになってんのと言われるまで自覚できないのか?
俺らは常時本気なんだよ。
”作ったとしたら”とか”作ったとしても”とか、んな事はどうでもいいんだよ。 3億当たったらどうするみたいな話してる時に、 まず当ててみろとか、詳細な使途を書けとか、 コミュ障害でもなけりゃそんな水差さないだろ普通。
>>470 そんな途方もないことなわけ?w
やっぱC/C++はすげーな
回り見てもコミュ障害しかいませんwww
このスレの、どこが有意義なのかコミュ障害の人に教えてやれよ
有意義じゃなければならないって言う前提が既に自己中心的だね
つまりこのスレは無駄以外の何物でもないってことだな
いまさら確認するまで気づかなかったのかよ
みんな気付いてるよ。Cに代わる言語なんてないってね 馬鹿がC批判して偉そうにしてるだけ 逆にいえば、Cを批判して優越感に浸ると言う意味では、有意義かもしれないねw
どうしてそう有意義さを見出そうと努力するのかな〜? 無駄な物、無駄な時間、無駄話があってもいいと思うのだけどw 神経質にやってるとハゲるよ
合理性のないコードは汚いです。 無意味なものは存在してはならない。
じゃあ
>>470 は何に水を差されたくなかったわけ
無駄ならいいじゃん。煽りだって無駄だろ?
その考え方がコミュ障害なんだけど自覚できないでしょ? 言っても分からないだろうからとっとと黙っとけよw
コミュ障害と言って話を終わらせる方がよっぽどコミュ障害だろwww 「無駄な話してんのにツッコミいれんな!」ってかw 糞スレを正論で荒らされて発狂とかレベル低すぎ
で、最新のオサレな言語仕様で、マイコンのレジスタアクセスするとか泥臭いことできるの?
最新のオサレな言語が作られた理由が、そういう需要を満たすためならあるいは
こんなに伸びてるのに何も進まないスレ x86マクロアセンブラに、まるで新言語みたいな物量のマクロを定義すれば完成 で、以降はマクロアセンブラ製品の選定と、実際のマクロ内容の案出し あと、その実際にマクロで記述した際に何か気づきがあればそれを列挙して、 そこから言語案出発でどうよ
いいこと考えた .NETのバイトコードのコンパイラを作るんだ
>>486 C++/CLIは、それなりに要望を満たしてるよ。
汚いといわれるC++の拡張であることと、MS製なんでアンチがわくという問題があるけどな。
>>486 関数呼び出しが大量に並ぶだけですね
>>485 マクロ名:STACKMAN
アドレス位置と長さを記録してるテーブルがあって、
主に関数呼び出し時のポインタPUSH/POPと引数の受け渡し、やローカル一時領域の確保に使う
またその際の記録(いわゆるポインタのポインタみたいな簡単な管理)をする
マクロ名:MEMORYMAN
仮想領域の確保を行うもっとも基本のマクロ。STACKMANもこれを使っている
アドレスのポインタ(レジスタに直入れする値)とサイズを持っていて、再確保の管理をする定型処理
マクロ名:PROCMAN
なんらかの引数と戻り値のポインタをレジスタに渡す為のポインタを管理する
ルーチンの呼び出し、プロシージャコールの原初的な実装
一番簡単な基礎がまずこれで‥ あとI/O関係はDOS/V関係の約束や仕様調べないとわかんね
>>459 機会があればSoftintegration(国内代理店はラクネシー)が開発した
CインタプリタとしてChというのがあるから触ってみたら?
無償版あり。
>>484 直接的なハードウェアアクセス用ライブラリがあるなら大抵の言語では可能。
>>485 マクロでは保守面倒そう...。初期段階ではC以外のスクリプト言語を使って
foobar -> Cトランスレータとして実装したほうがいいと思う。
あと俺も今やっているFLOSS翻訳終わっていたら、
仕様調停役担当してもいいんですが事情と物量が邪魔して中断不可能な仕様。
490 :
デフォルトの名無しさん :2010/03/23(火) 23:35:18
デバドラ屋だって、オサレ言語使いたい!
じゃD言語使えば?
492 :
デフォルトの名無しさん :2010/03/24(水) 00:15:52
D厨ウゼー
Dはオサレじゃないし
>>439 その結果できたのが、ItaniumやらCrusoeやら。そいつらがどうなったかは、ご存知の通り。
ポインタ型自体やポインタ関連の関数類は別モジュールに置く程度のことはしてもいいだろうけど、 構文中のキーワードで文法自体を制御するってのはいささか気持ち悪さを感じるなぁ。 それにC/C++でも、ポインタは使わざるをえないから使ってるだけで、うっかり間違って使っちゃったってのはあんまりない気がする。 C++の参照のようにポインタを覆い隠す存在も用意していること、それを利用し大抵の操作はポインタなしで行えることは必要。 (Cのように、ポインタどうでもいいのにポインタを使わざるをえない場面というのは避けたい。もう、ポインタ使うのはポインタ用モジュールにまとめちゃっていいかも) ポインタをどう隠そうと、その背後にメモリとメモリアドレスがあることは避けようがないことだし、 LLとかだとポインタを覆い隠して「同値性と同一性」とか「変更可能な型と変更不能な型」とかいろいろ頑張ってるけど Cやってる人から見たら、ようはポインタなんだけど言語からポインタを消すために無理してるようにしか見えない。 高級言語ではそれでもポインタを覆い隠すことに意味があるんだけど、低級言語ではそんなことする意味はない。
アドレスの抽象化ってポインタ変数が最良なのかな。 他のやり方はないのかな。
物に名前をつける以上の抽象化は人間には無理だろw
そもそもケースによってはメモリマップドIOだろうが、外部IOだろうが絶対アドレスをアクセスできるからこその 低級言語ではないのか?そこは「何らかの言語によるライブラリ」に任せるってのなら主題自体があまり意味が無い気が…
>>498 意味ないに決まってんだろ。
このスレ見て他にどう思えるんだよ。
なんか語り口が乱暴でスマンけど。
このスレは現実逃避のためだけにある
だれも言わないからいっとく DMR, Ken Thompson, Brian Kernighanらは神 おまいらヒゲが足らねえんだよ
502 :
デフォルトの名無しさん :2010/03/24(水) 07:40:52
>>498 絶対アドレスへのアクセスをポインターよりももっと良いやり方があれば採用したい、ということだろう。
ハードウェアが現在のアドレスモデルを採用している以上、これがどうにかならないと無理だな LISPマシン再来?
>>501 ICI言語の隠しページである
> Hey Kids! "Use ICI. It's good for your hair."
(やあボウヤ! ICIを使おう。こいつは髪(ヒゲ?)にいい(育毛剤ではなくカッコヨクなる)ぜ")
ttp://atrn.org/ かよ。
Cの最大の利点&欠点は自由に動き回れるポインタに尽きる ポインタ演算排したgoのアプローチは面白いんだがGCがネックだな
アドレス叩く能力が要らないならOCamlとかScalaとか既に優れた言語がある
新言語なんて八方塞だろ。凡人が考えることなんて既に余裕で実行されてるわな
トレンド(笑)な方面は特にな
>>505 ポインタの扱いを厳格化したものとして既にCycloneがあり、
C -> Cyclone移植ガイドも用意されている。無いのは日本語マニュアルだけか。やってるけど。
またCトランスレータの実装を持つEuphoriaにはポインタは無いが
低レベルメモリーアクセス向けの組み込み関数で用意されている。
これにより共有ライブラリおよび低レベル操作を可能としており。
(少なくともライブラリのユーザーレベルでは)ポインタを意識する必要は無い
さらに関数ポインタと似た機能はルーチンIDとして実装されている。
新言語とか言う前に既存のしかもマイナー言語に勝てない仕様では
どうなんだか。
じゃあそれらのマイナー言語を広めるだけで目的達成じゃね?
ライブラリによるポインタ操作でもいいというなら、ほとんどすべての言語でポインタを扱うことができる。
結局、低レベルに触りたい奴なら、Cをちょっと頑張って使いこなした方がいい 個人的にはアセンブラよりむしろCの方が理解しにくかったが、どっちにしろそう難しくはない 低レベルに触れなくてもいいなら、何度も言われてるが、いくらでも高速で便利な言語はある
そしてこのスレは意外な ─ ある意味順当な ─ 幕切れ迎えるのであった 完
C
C最強を確認するためだけのスレであった
517 :
デフォルトの名無しさん :2010/03/25(木) 00:36:47
言語仕様どうこうより、優れたライブラリ、開発環境の方が100倍重要で、
>>1 はその辺を致命的に勘違いしてる。
「低レベル記述、高パフォーマンス、可読性、簡潔さ、拡張性、学習の容易さ」
そんなもの開発効率と関係ないし、使う動機にならない。
GoやOCamlのような良さげな言語がいっこうに流行らないのもそんな理由でしょ。
だって C/C++ がさっぱりわからないし怖いから GC言語しか触ったことない自分にも簡単に理解出来て、 それでいて使ってて胸が張れるような、別の言語を新たに作ればいいって、 甘えんぼで怠惰な中学生みたいに話摩り替えただけのスレだもの
Cのどこが怖いんだ 携帯の料金体系みたいな歪んだサービス精神で開発された言語のほうが怖いだろ
まあ特定のOSに特化したものはだいたいそうだな
Dでいいじゃない
つうか、IO制御が書けるくらいの奴ならポインタの概念自体難しいとか思わないだろうし、 わかってない奴が無理難題言ってるだけにしか聞こえない。 たぶん彼らの理想がかなっても、その言語を使ってまともなものが作れるとは思えないw
Dを知らないやつが、C++のアンチテーゼをほしがったんだろ
Dはダメだろ あと20年は完成しない
そもそもDの仕様がさっさと安定すればこんなことには・・・
Eを新規開発して半年で完成されて、C、Dのシェアを 奪い取る勢いにする。
528 :
デフォルトの名無しさん :2010/03/25(木) 07:31:53
英語は不規則変化が多いからシンプルな言語を作りましょう、 つって今さら言っても誰もついてきてくれないのと一緒。 一番有名なエスペラントでさえ愛好者レベルでしか普及してないだろ。 プログラムの世界でも、 言語の一貫性なんかよりも、今ある資源や人口の方が重要。 言語は宗教でも学問でもないからな。 以前の言語でできないことができるようになった、ならともかく、 少しやりかたを変えてスマートにできるようになりました、ぐらいじゃ誰も移行しない。
もうあるんだろうと思うけど、 状態遷移図をストレートかつ簡潔にコード に落とし込めるような言語は欲しいな あと真逆になるけどルールベースのアクションをストレートかつ以下略
>>518 優れたライブラリを効率良く書くためには言語仕様も大事なわけで
前の方読んでないけどDはGCがあるからダメなんじゃないの?
>>509 Ken Thompson/Googleが作ったってのがポイントなんじゃw
どんなに優れていても話題にもならんのはダメ
自然言語と一緒だよ
goはnaclがらみで増えるかもしれん
GC切れたんだw 詳しくないから知らなかったw てかGC切ってまともに動くの?
Objective-Cの作者がC++が流行ったのは AT&Tだからだいってたな
C++ はかなり早い時期に Microsoft と Apple が公式開発環境で採用したよね Apple のなんて AT&T 謹製 cfront だった。
>>529 そういうのはDSLとして実装したらいい
機械的にやりたいなら言語じゃないけど
yacc/bisonなんかでオートマトンでどうよ
Objective-Cはあのキモい文法をまずなんとかしろと言いたい
ぶっちゃけObjective-Cは重いのが敗因だろ。 重いと負けることが分かってるから、C++は何が何でもゼロオーバーヘッドを守ろう とし続けてる訳だし。まぁ最近は例外機構のオーバーヘッドは避けられなくなりつつ あるが。RTTIは今でも基本オフでおkの世界だけど。 マシンパワーが余りつつあるから重さは気にしなくてもいい、ってのはあくまでもPC の事務用途の話で、鯖だのゲームだの携帯だの、今でも必死な方面は多い。そういう ところでは実行速度が出るかが足切り基準。開発速度の選り好みはその後の話。
Objective-Cが重い?
動的だからな
糞言語と知れ渡ってるPHPが勝ち組なのも軽いからだな
軽さは要らないから圧倒的に手軽にしてくれ、という需要はLLが満たしてる
だから、軽い言語を求めるという点では
>>1 は間違っていない
その他が間違いだらけなだけで
PHPのどこが軽い。
>>539 ぶっちゃけC++は糞フレームワークと使う奴らがヘボ
Cはランタイム云々って話があったが
リセットベクタからアセンブラ数行程度で動き始める言語は他にはない
どういう理由でCが使われているかということと、それに矛盾のないものしか機能として追加できないということは理解しておかないと。
>>422 の Lisp みたいなマクロって、要は言語を構成する要素をデータとして
扱えればいいんだよね。そいで、それをコンパイル時に評価できて、プログラ
ムとして生成すると。
そう考えると、仮に S 式を捨てたとしてもそこまで夢の機能ってわけでもない
気がするんだけど、どうだろ。S 式じゃないとなるとお手軽さは失われそうだ
けども。
Webサーバのグルー言語としちゃ断然軽いが、Apacheモジュールに比べたら非常に重い
>547 ・引数を評価しないでそのまま関数内に展開 ・関数の中ではあくまで一つの要素として扱われる という扱いができればS式に拘らなくてもOKじゃね? 遅延評価でけっこうカバーできるだろうけど、上手く作りこめば効率などで有利になれるんじゃない? 例えば引数(適用前の関数)の中身をコンパイラが理解して最適化するとか。
>>545 CPUにもよるがうまく組めばRAMがまだ使えない状況でも動作するしなw
551 :
デフォルトの名無しさん :2010/03/26(金) 06:50:14
俺は結局、Mcrosoftの意向だと思うな。 C言語に「//」で始まるコメントを許しちまうとか、 char str[10][10]={”123”,”abc”,0}こんな初期化もMicrosoft拡張だったか… unsigned shortをWORDとか、defineで凌げると思ってたらLONGLONGがfloatと別物だったり。 VisualBasicなんか完全オリジナルな訳だが、ソレしか知らんオッサンには 自分がなんで他言語のプログラマに蔑まされるか理解不能だわな。 Mcrosoftが高効率のバイナリーを吐くVisualBasic作ったらソレが標準になりかねん。
いやそれはない
VB>>>>>>>>>>>>>>>>>>>>D>>>超えられない壁>>>>>>>>>>>>>>>>>>>>その他のマイナー言語 が現実
バカじゃね。COBOLだよCOBOL。
C++使ってようがC#だろうがVBだろうがなんでもいいけど MSの世界しかしらねえ奴の方が よほど蔑まされてることに気づけよ
COBOL>>>>>VB>>>>>>>>>>>>>>>>>>>無収入の壁>>>>>>>>>>>>>>>>>>>>D他マイナー言語
LONGLONGがfloatってなに
時折、無知や知ったかが現れるのも中二スレの特徴なり
>>551 //はBCPL時代の仕様を勝手にサポートするコンパイラが多かっただけ
初期化の発祥は知らん
WORDやLONGLONGは言語標準じゃなくただのWindows標準ヘッダのマクロじゃね
とりあえずお前がMS以外の世界を全く知らないことはよく分かる
いつの時代だよwww LONGLONGAGO
562 :
デフォルトの名無しさん :2010/03/27(土) 13:17:13
GC無しのLispでいいんじゃね。 超高速だぞ。
BitC is a new systems programming language. It seeks to combine the flexibility, safety, and richness of Standard ML or Haskell with the low-level expressiveness of C.
F#が来るにしても10年後の話だ どうでもいい
Cが最強だと納得して巣に帰りました
OCamlは、プロトタイプにはすでによくつかわれているから、すぐ来るんじゃないかと。
とりあえず、関数ベースのシステムコール設計はやめてgotoベースのシステムコールに設計し直して欲しい。
なんで
関数呼び出しは遅いから。
push popすんなよ遅いんだよ。ジャンプ命令でシステムコールする新しいOS作れ
昔のメインフレーム
今のUnixやWindowsなどのOSはC言語で扱うために設計されているから システムコールが関数呼び出しなのはしょうがないんだよね。 別にC言語にこだわらないならジャンプ命令でいいんだよ。
最低でもリターンアドレスは詰む必要あるだろ その際popは必要ないが espをpush/popするかはコンパイラ次第 普通は必要なければpush/popしない
577 :
デフォルトの名無しさん :2010/03/28(日) 01:30:10
>>563 チラ見しかしてないが、かなり良い感じがする。
関数型でポインタとか泥臭いな だがそこがいい
おまえら頭悪いな 全部mainでやりゃいんだよ
システムコールはtrapだろ
連投してみる
>>576 risc cpuはコールするときレジスタに戻りアドレスを入れる
つーか386のコールゲートも変な仕組みだった気がするが忘れた
つまりCが最強C#が至高と言う事で宜しいか
C++/CLIは、Cの範囲からC#の範囲までカバーしている。
それはソース上の話じゃないか。実質C++/CLIは、どちらかと言えばほぼC#
それのほぼC++版がD言語
だから、デジタルマーズのD言語は流行らないんだって・・・いまどき
C++をわずかに変化させただけの言語を今更利用しようと思う理由がない。 よほどの理由がない限り、多少の改善程度ではユーザーは移動しないんだよ。
ありゃわずかじゃないだろ 膨大に変化してる
C++のコードを何%縮められる?
縮むとか縮まないとかそういう問題じゃないだろ
>>592 そういう問題だと思うんだけど。
俺に言わせてみれば、セミナー屋が
「この機能で大幅にバグを減らせます」
と言っていることの99.9%がウソか大げさ。
バグが潜む原因のほとんどは設計とアルゴリズムにあると思うね。
C++→D程度なら設計を変えるほどの大幅な仕様変更ではないし、
そもそもアルゴリズムは言語とは無関係。
>>593 アルゴリズムのバグ。コード化で入り込むバグ。バグが発生しやすいような設計。
がきりわけられていないんじゃないか。
バグは言語と関係ないとう部分は多いが、脆弱性は大いに関係ある。
バグを減らせるとか関係ない 便利な機能が色々増えてるけど それが「コードが縮む」と言う事に繋がるとは限らないということ 例えばC89ではマクロを使っていたのをC++ではinlineに変更したとして、 これは便利にはなっているけどコードはむしろ長くなるでしょ
言語的に原理的に発生しなくなるバグとかもあるしね GC言語でのメモリリークとか VBだとなぜか参照されていると見なされて似た現象が発生することもあるが・・・
>>595 > C89ではマクロを使っていたのをC++ではinline
コード量は長くも短くもならないと思うよ。
CからC++に利用者が移動した理由は、 上位互換性とオブジェクト指向の導入でしょ。 inlineが決定的な理由じゃないよ。
>>597 >コード量は長くも短くもならないと思うよ。
戻り値や引数に型つけたり { } つけたりするでしょ
inlineにする程度の長さなら、マクロ引数に ( ) をつける影響より大きくなる
場合によってはreturnもだな
500行が1000行になるわけではなし、そんな些細なことを大ごとに語るなよ。
C++からDに移行する最も大きい理由はなんですか?
C++で書かれたコードを同じアルゴリズムでHaskellのコードを記述したらコード量が10分の1になった、 という事例ならあるんだけどね。 それぐらいのメリットがないと誰も移行を考えたりはしない。
Haskellは難しいから普通のプログラマー向きじゃない
1行が多分3〜4行になるけどね
BoostのspiritとかMPLとか、言語内言語みたいなのがあるじゃない。 ああいうのをもっと綺麗な形でサポートしてほしいな。
>>605 クイックソートのことなら、Haskellのは配列の要素入れ替えじゃなくて新しい配列を作って連結してるだけだろ。
それってSTLコンテナとか使ったらC++でも同じ方法ではできるようにならないの?
Haskellほど短くは書けないだろうけど、もっと少なくはなると思う。
>>609 haskellのクイックソートって、デモンストレーションで、
実用じゃ使えないしな。
そういえば、全く言語ごとの最適化とか考えずにベンチ書いて「Java最速でしたよ」 とかアホなこと書いた外人が理詰めでフルボッコされてたな
「Java最強でしたよ」なら真理なのにな
速度の話は、コードの良し悪し、向き不向きまで考えると、本当に難しい。大体の基準はあっても、個々にはケースバイケースとしか言いようがない。 ただ、言えることは ・高級言語では、アセンブラでの最速コードよりも速いコードは書けない(よくて同等。多くの場合はより落ちる) ・Cはアセンブラとほぼ同等な高級言語と言える ・C++はCとの互換性より、原理上はCと同等かもしくはより速いコードが書けるが「C++らしい」書き方をするにはCより遅くなる覚悟が必要 ・JavaのようなVMを利用する言語、インタプリタ型言語のような非ネイティブな言語で、VMやインタプリタがネイティブな言語で書かれている場合 そのネイティブな言語で書き直せば、非ネイティブな言語で書いた場合と同等かそれ以上の速度で動作するコードを書ける ・VMやインタプリタが、非ネイティブな言語で書かれていたとしても、それが実際に動作する処理系である以上は元を辿ればネイティブな言語にたどり着く。 よって、やはり同等以上の速度でコードが書けるネイティブな言語は存在する ・ただし、最速のコードが「存在する」とは、書くことの大変さ、書ける人間が存在するかを一切無視しての話である ・例えば、下手にアセンブラ使うよりもCで書いてコンパイラの最適化に任せた方が結果的に速いコードができることが多い ・同様に、下手にCを使うよりもJavaやLLで書いた方が速くなることだってありうる ・けど、LLよりも遅いCコード書いちゃう人はさすがにちょっと残念
アセンブラでの最速コードは理論的最高値だから 同等だったら最高で文句の付けようが無い状態じゃん >よくて同等
つうかx86コードをマイクロコードに変換して実行するとか、投機実行をする現在のプロセッサにおいて、 アセンブラで書けば速いなんて脳が20年前で止まってるとは言えるが、Javaで書いてもCより速くなる なんてのは絶対無い。同じ仕様を同じロジックで書けばね。静的であるか動的であるかはそれくらい違う。
Javaよりも遅いCコード書いちゃう人はさすがにちょっと残念ってことで
>>613 >・JavaのようなVMを利用する言語、… VMやインタプリタがネイティブな言語で
> 書かれている場合
そもそもVMやインタプリタがネイディブで無い言語で書かれてることってあるのか。
(実用的な処理系で)
「javaのVMがネイティブな言語で書かれてるから」って理由で javaもネイティブな言語並みにスピード出せるっておかしいだろ。
なんか話がスレタイから全速力で遠ざかってないかw
必要ないってとこに収束しつつあるだけだよw
言語の純粋な仕様・性能よりも、どこが作ったかが運命の分かれ道
>>1 が自分でつくるつもりもなくてスレを立てたんなら、
最初から雑談スレになる運命。
>>613 このての議論って
>・同様に、下手にCを使うよりもJavaやLLで書いた方が速くなることだってありうる
仮定を前提としてるけど、ひとつでも実例を示したことがあるのかって思うぞ。
>>623 そもそも、あるPGがループソートをCで書き、他の言語では別のPGがクイックで書くとか、
そういう前提だから意味が無いw
>>623 十数年前、Javaがではじめたころは、実行時にコードの実行状態を
見て動的に最適化できるから、Javaのほうが速くなる可能性があるって
話があったけど、いまだに「Javaで書いたwebサーバーのほうがapacheより
速いぜ」みたいな話って聞かないしな。
JavaはGCで使ってるメモリが整理されて局所的になるからキャッシュがヒットし易くなる「可能性がある」とかいってたな。 そこにいたるまで膨大なGCのオーバーヘッドがあるわけだし。パフォーマンスは最悪値を保証しなければならないんで可能性なんて無意味だし。
>・同様に、下手にCを使うよりもJavaやLLで書いた方が速くなることだってありうる この言い様って、まるで 「1+1は2とは限らない」 みたいな、小5病的な台詞
>>627 そういう本読んだことがあるけど、水1リットルとアルコール1リットルを混ぜると2リットルより小さくなるって理屈だったな。
それは式の立て方が間違ってる。質量で計算しろと。
アルコールがいつの間にか減ってたんじゃないの?それ
たったの70グラムの砂糖を食べたらなぜか500グラム体重が増える不思議
Cより書いた方が”実行時間が”速くなるというのは詭弁だろうが、生産性を考えるとOOP言語の方が良いし 汎用性を考えるとVMを利用する言語が良い。アルゴリズムにも言えるけど、速さが全てなのかって話
vmはエコじゃねえな
>>631 VM で動くブラウザやらIMEやらを使い
動画のコーデックも Java でokとか
そういう人以外がその発言するのは偽善
正直に、バカしか使えないような貧乏な
客が殆どなんだから LL にも価値あるだろ
と言え
>>633 偽善じゃねーよ。環境に依存しないことがどれほどの意味を持ってるのか分かってんの?
なんでもいいんだが、スレ違いだろって話。 OSやVMやGCやLLを書ける低レベルな言語について考えるスレなんだから。
だからCより優れたものはあり得ないって結論が出ただろ。Cが最適 Cやアセンブラの弱点である汎用性はVMによって完成した。これだけの話なんだよ
CとJavaを速度で比べる場合、Cでヒープを使うときはGCを使い、配列を使うときにはバウンドチェックしているコードでないと意味がない。
Cとjavaを速度で比べるとか、正気かよ。それともただの初心者か。 比較にならないことは原理的にもすぐわかるし、Eclipseの殺人的な重さを見てみろよ。
>>631 速さが全てだろ。
汎用性だ何だってのはゴミプログラマが自分の無能さを隠すための言い訳だよ。
Cで書いたって、コア部分は共通にして、機種依存部分のみ分けることで多機種開発は可能になる。
Cがよくわからないゴミプログラマには無理だがなw
アルゴリズムは見た目の分かり易さが優先されることが往々にしてあるが。 悪意をもってしか文章を書けないなら他所でやればいいのに 正当性を欠いてるよ
>>638 この人は、Eclipseと何を比べたのだろうか。
NetBeansもJavaで書かれてるよね。Eclipseより速いとか聞いたんだがどうなんだろう
新しい言語でなくていいだろ。 C#のコンパイラでネイティブコードを出力できるのを作れば。
* Cでダメな理由は何か * C++でダメな理由は何か * Dでダメな理由は何か これらの質問に多くの人が納得できる十分な答えがなければ、たぶん新しい言語はいらない
>>643 CLIからネイティブへのコンバーターはあるからあるも同じ。
ILGeneratorクラスがあるので、VMを完全になくすことはできない。
>>615 まぁ落ち着け。アセンブラで書けば一番速いのは事実だ。
何しろ、マイクロアーキへの最適化だろうがランタイム動的最適化だろうが、書く気に
なればアセンブラで書ける。労力が馬鹿馬鹿しいだけだ。
>>614 だから、そう書いてるんじゃん。
>>616 「理論上の最速コード」においてCがアセンブラを越えられないのは今でも変わらない。
それに「下手にアセンブラ使うよりもCで書いてコンパイラの最適化に任せた方が結果的に速いコードができることが多い」
と書いている。
>Javaで書いてもCより速くなるなんてのは絶対無い。
>>611 参照。
厳密な意味では、同じ仕様を同じロジックで、というのは大変難しいと思うが。
>>617 広く使われている処理系では、知らない。
一応、jruby, jython, groovyみたいなのもあるらしい。
>>618 え?そんな理由で出せるの?それはおかしい。
どんなにうまく書いても、ネイティブな言語を越えることはできないと書いてるだけ。
同等のスピードが出せるのは、一旦VMを作って中間コードを処理していくのがCで書いても最速な処理だった場合のみだな。
そんなコードあるとはとても思えないが、ないと言いきる自信はなかったから、同等以下という表現に止めた。
>>623 >>611 >>624 それが真理。けど、最速コードなんていうどこにあるのか分からないものを追い求めるのが実質不可能なのだから、
簡単に使えるものの中で一番マシなのを選ぶことになる。
>>627 プログラマなら、1+1が1になったり0になったりする場合を知っているはずだが。
理論上の話をするなら、アセンブラで最適化するよりも、中間コードをJITで最適化する方が速いコードができる。
>>648 今時のマトモなプログラマならプロファイラ
使ってフィードバック最適化するだろうから、
そういうケースは実に稀だと思う。
その理論って、アセンブラは醜いCISCで、VMは美しいスタックマシン という設定なんだろうな
>>647 お前仕事してないだろ
そしてなんでお前が全レスする必要があるの?
>プログラマなら、1+1が1になったり0になったりする場合を知っているはずだが。
プログラマだったら文意くらい読み取れよ。
>プログラマだったら文意くらい読み取れよ。
「CよりJavaの方が速い場合もありうる」 なんて、本来ならば相当に前提や条件が "狭まらないと起こりえない話" を
例すら出さずに簡単に断言してしまうなんて、プログラマの感覚からするとありえない。
よって、「おまえ仕事してないだろ」 と仮定した。
また、細かい前提などはわからないけど、簡単な言葉で意表をつきたかった、っていう気持ちは、
何も知らない夢見がちな小学生くらいの子に時折見られる事なので、端的に例えて現した。
こういう事ですね。
>>647 は残念な子だとわかった。
>>644 仕方ないことだがCはSecureではない。Human Errorに弱い。人間工学上は問題が多い。
歴史的経緯からSyntax/Statementが混乱している。C++は最初は良かったが巨大になりすぎた。
DとかGoはキラーアプリ次第。
さらにECERE SDK(eC)[
ttp://www.ecere.com/]は技術水準は高いが全般的に未完成 。
しかし、上記の欠点はツールや時間が解決する問題であって現代の問題は入門書。
基礎しか考慮していない本のほうが多い。ほとんどの場合は次に読む本べきの便覧を載せていない気がする。
前から思っていたが
>>1 の要求はEuphoria 4.0b3以降[
ttp://oe.cowgar.com/ ]で十分だろ。
これ以上に簡単で習得しやすく文法や構文の不自然さが少ない言語なんかあまり無いけどな。
BSDライセンスなんだし。必要eucを改造して生成コードの品質改善するなりGC無効化機能付ければいい。
もっとも、学生さんなら普通に生活しつつ言語開発に
3年くらい無駄にして失敗しても人生リカバリーできるから、やるならやっとけと。
(OSや言語といった規模の大きいものは若気の至りがないと進捗が遅い)
汎用性ならCが一番だよ ほぼどんな環境でも動くし。 あと最近はコンパイラの最適化より 早いasm書けるやつは少ないな パイプラインと実行ユニット意識して書くのはめんどい
つか、理論的にはどんな言語も大同小異 自然言語と同じでマイナーなのはダメ 誰もエスペラントなんて使わん
CPUの構造なんて多種多様で昔みたいに単純じゃなくなってるから、 もはやコンパイラの方が遥かに優秀だよ。
そもそもアセンブラでCPUを最大限まで活用できるプログラムが書けるほどの熟練者なら 世界最強のコンパイラを作れるよw 俺らより遥かに熟練した奴がコンパイラ作ってるんだから、そのコンパイラを使った方がいいに決まってる。
高性能な低レベル言語を作りたいなら、まずはアセンブラでのプログラミングを極めて、 さらに論文などを読んでいろんな人が考えた最適化法を学ばないといけない。 そんな積み重ね無しに既存のCコンパイラを超える低級言語を作ろうなんて片腹痛い。 Cコンパイラですら一人で作るには限界があるっていうのにね。 動くものを作るだけなら簡単。最速を目指すならその10000倍の努力が必要。
10000じゃすまないんじゃないか 熟練じゃ超えれない才能の壁がある ぽっと出じゃ20年前のfortranすら超えれないなw
まぁ、このスレでできる事といったら、いい感じの文法を考えて、Cへのトランスレータを作ることだね。 最適化はCコンパイラに任せればいいさ。
なんか違うなあ Cは速さへの執着を捨てて勝ち組になったのに Cの速さに追いつくことしか考えてないやつが多すぎる
>>664 アセンブラではプログラマの能力的に最速記述は現実的に不可能だし、
最新のCPUは全部C言語に最適化して設計されているし、
現状最速の低級言語は間違いなくC言語だという前提で話してるんだけどな。
そしてCコンパイラ並に最適化されたコンパイラを作るとなると相当な努力が必要だから、
最適化はCコンパイラに任せて、我々は文法を考えることに力を注ぐべきだと言っているわけね。
665の最初の4行は読まなくていいと言っているわけね
突っ込みどころ満載だなw まあでも現状Cは高級アセンブラとしての地位を確立したし これ以上も以下もいらんだろ C++の末裔は同じ立ち位置には立てないな
669 :
665 :2010/03/29(月) 15:28:22
>>668 どうぞ、突っ込んでください。
ツッコミ大歓迎。
昔々国産でbaseとかいうアセンブラがあったな ifでキャリーフラグとか見れた
なんだこのスレ馬鹿しか居ねぇ
とりあえずyaccとかでなんか作って遊んでみたらいい
自分が何をやっているのか頭にするする入ってくるスパゲッティをかける言語作ってくださいよ
>>665 の理由でcは不動だし、
c++はc形式で書けちゃうし、c++ゴリゴリも出来るし、ちょうど良い間でも書けるし…
足りない部分は経年によるノウハウと自作・自社・サードハーティーなどのライブラリもあるし……
困ったね。
スレ違いだが センスは一年もたたずに開いてくる ないヤツは経験でカバーしかないが 高見には登れないんだよな
>>669 SIMD でマトモなコードを吐くコンパイラがないから、
速度が必要なトコではまだまだアセンブラが使われてるよ。
>>679 SIMDはライブラリで利用できると思う。
普通は特定のCPU向きの機能を使うためのCライブラリが用意されていることがほとんどだから インラインアセンブラを使うケースはほとんどなくなってきたね。
なんでアセンブラの話が出てくるの? おじいちゃんしかいないのここ?
C/C++でアセンブラを使うのは普通
アセンブラに逃げるのは思考の放棄に他ならないのである。
とりあえず、静的なネイティブコンパイラよりも、 実行時中間コードコンパイラの方が速そうな気がする例。 本当かどうか知らない。 ためしてない。 for (int i = 0 ; i < 1000000000 ; i++) { switch (ユーザ入力値) { case 50: a[i] *= b[i] ; case 70: a[i] &= b[i] ; case 110: a[i] |= b[i] ; case 130: a[i] ^= b[i] ; case 170: a[i] += b[i] ; default: a[i] -= b[i] ; } }
>>685 アセンブラが逃げ道だとか本気で言ってるのか
そんなに狙ったロジックを実装するのが簡単だとでも思ってるのか
>>686 ちゃんと最適化をするJITなら相当速くなるだろうね。Tracing JITとLoop unrollingとか。
そりゃコンパイルなりコーディングなりしているときよりも、 JITの方が使える情報が多いから、理論的には中間コードをJITでコンパイルする方がアセンブラよりも速いコードになる。
>>686 極端にランタイム最適化が有利なコードは、サンプルとしてならいくらでも書けるはず。
ただ、実アプリで実行時間に影響するような事例としてどれだけ出てくるか、というのが
問題で、それが言語の需要に直結するし、実用性そのものにも繋がる。
少なくとも、最適化処理を回す負荷を上回るだけの利得があって、それが体感されるほど
の時間スケールになっていないといけない。最適化が効いてくるまでは単純に遅い。結局、
差し引きで利得があるアプリはかなりレアかと思われ。
去年は関数型言語が流行った気がするが 今年は中間コードか
コンパイルタイムの最適化でカバーできない部分がどの程度あるのかだな Javaアプリとかぶっちゃけ「起動以外も」糞重いんだし、ほとんどランタイムの 最適化は効いてないんじゃね? 結局、コードモーフィングと同じ結論になるんじゃないかと思うんだが
心配しなくてもあと10年はJavaが第一線で使われ続けるよ
Javaの心配してる奴なんかいた?
一所懸命叩いてる奴ならいるな
VMがネイティブより遅いって話をするとJava叩きにされるのかw まぁPARROTとかもいつ出てくるんだって感じだし、Rubyとかも微妙なままだしな
Javaは消えるなとは言わない、サーバサイドで頑張っていればいいと思う。 デスクトップ分野でだめなのはもう明らかだし、 あとはこれ以上携帯や組込分野に出しゃばってくれなければいいのだが。
Parrotと書かないとまずいか PARROTじゃハイファのランタイム最適化みたいだし
Webサーバーで動いているものなら起動時間が長いといっても無視できる。
前にも勘違いしてる奴がいたけど、遅いと言ってるのは起動時間の話じゃないからよく読め
まぁ起動時間の遅さは一番目立ちやすいけどな Javaアプリは起動した後も普通に重い
いつの時代の話だよ 糞PC乙 とツッコまれるぞ
モバイル系はしがらみの少ない分、純粋に性能で勝負できるからVM系が勝ち残るかも しれないと思ったんだが、結局C++だのObjective-Cだのに完全に食われたな。
言語のパフォーマンスの話をしている時にPC性能の話にすり替える奴 と逆に突っ込まれるんじゃね
H.264のHD動画のデコーダをJavaで書かれてネットブックで再生してても気にならない ような人ならあるいは
いずれにしても、CとJavaのどちらで開発しようかと迷うことはまずない。
>>703 RIMとGoogleとMicrosoft+ガラケーがVM
NokiaとAppleがネイティブ
ま、なんだかんだCPUは速くなるし 今時java位いんじゃね ネイティブコードキャッシュすれば起動もはやくなるのに
いつjavaはwindowsサービスで動くようになるの?
WindowsのシェアがLinuxと逆転したら
>>709 オープンソースになったんだから、お前がやればいい
Javaはウンコ過ぎる 少しはJavaScriptを見習え
714 :
デフォルトの名無しさん :2010/03/30(火) 02:26:58
JavaScriptのx86ネイティブコンパイラってないの? gccでコンパイルできればいいのに。
phpとかperlとかのカスクリプト言語はjavascriptに統一されるべき
速度出す為に縛りが出てくることを理解できない奴は帰れよ
javascript?それはない
pyhonでいいんじゃね
ますますスレタイと離れて行くなw goでいんじゃね
だからスレタイの話はとっくに終わってんだよ
C++は、まだまだ仕様を含ませてから、 もう後、30年ぐらいしてから一から新しく作り直せばいいよ
いやーソフトもハードも汚くてもいいから下位互換性がある言語の 方が寿命が長い傾向があるw x86しかりC/C++しかりだ このままC++はより一層文法を汚くしながらしぶとく生き残るだろうw
Cはあと30年はなくならない。C++は他の言語へシフトしていく。
やっぱシンプルイズペストなんだよな
いくらなんでもCは非力すぎ
Cが非力とかどんだけタコなんだよw
やはり職人によるパンチカードが一番ですね。
パンチカード世代ってどの辺り?
あん?紙テープだろ
カード枚数限られてる中、ミスるとどんどんカードが減っていくつらさ分からんだろ
バグで無限ループしてプリントアウトした紙が10cm超えて涙目になった経験ある人
そのパンチカードは水玉パンツになりたかったのかよ。
あん?トグルスイッチでアドレスとデータラインセットしてストローブだろ
Cコンパイラがはくコードと同等のコードがはける C#コンパイラをはやく出すんだ
お前が出せ。出すんだ!
Cはもっとスリムにしていくべき
Cのマクロをもっと強力に・・・
>>735 Cコンパイラと同等な結果がほしいなら
なんでCで書かないんだ
簡単な話じゃないか
GLSLやHLSLが「高級」って呼ばれてるのに、おまいらときたらw
めんどくさいからマネージドに向けて最適化したハード作れば良いよ
>>738 HTMLをもっと強力にしたPHPのようなものか
「俺は理解できないから、おまえが来ればいい」 って話か。めんどくさいなんて嘘
>>742 昔metahtmlつのがあったな
lispのカッコを<>にしたようなヤツ
実行可能なhtml
pythonの中にschemeっぽい()を見かけたんだが、あれは何なんだ
PHPはメタプログラミングの幻想をぶち壊す
そもそもメタプログラミングが幻想なのかも知れない
>>747 コンパイル時間がめちゃめちゃ延びるけど、手書きよりはるかに楽で正確
メタプログラミングってメタボプログラミングの略ですか?
ははっワロス
Ultimate フレームワークとか超○○ツクールとかの劣化版。 メカプログラミングのなまりw
一理ある
クラスの自称人気者が集まるスレはここですか
コンパイラより速く 同じasmコードが吐けるようになったらいいべ
EclipseってJavaでできてるけど、結構快適だよな。 数少ない成功事例なのか。
>>755 ハァ?
超絶糞重いわプラグインはバグだらけだわの糞環境じゃねぇか
あんな糞を有難がるのは経済活動できてないクソニートだけだっつの
あれじゃ投資した時間の回収すらできねぇよ
>>757 誰が有難いなんて話をしたよ
Cコンパイラだってトランスレータなんだから、Cの拡張としての言語内言語を定義した方が効率的だと思う
この手のC言語関連のしょっぱい議論を見てると、マシンコードでコンピュータが走る 単純な流れを知ってるか否かだけで次元の壁があるよな、とつくづく実感させられる
この手のの内容をくわしく書けばいいんじゃないかな
Objective-Cは、OSも書けるCよりも便利な言語として設計されている。 その方向で成功しているとは言い難いが。
C++でできることがすべてできた上で何ができればいいのだ?
「できるけどしてほしくないこと」をわかりやすく表現できればいい なにもしないprivateメソッドとかがわかりにくい
今やマシン語ですら高級言語じゃないの
じゃあ何が低級言語なんだ VHDLか?
機械語でかけざん、割り算まで出来ちゃう現代のCPU
C++は互換性を強く意識してでかくなりすぎた C++にやらせたくない事をコーディング規約としてまとめた物を作ったとしたら、 価値はないだろうか?
769 :
58 :2010/03/31(水) 14:36:01
記述力が高くてわかりやすい数式の記法ってのがあれば 数学はカンタンになるのか?
>>769 微分積分の記号がない状態で微分積分の問題を取り扱うのが難しかったように、記述力が高い記号は数学を簡単にする助けになる
微積の記号(インテグラル記号とか)はニュートンがほぼ今の原型を作ってるから最初からあるってことだぞ
ニュートンじゃなくライプニッツな
イギリスは独自の微分積分の記号を使ってたから 大陸より発達が遅れたんだよな
ニュートンもライプニッツもイギリス人なんだが、そうなの?
ライプニッツはドイツ人かと思われ
はっきりとは言わなくても、実は数学に疎い人たちが多いって事だけはわかった
あと、
>>769 は数学アレルギーで覚える気も無いって事もわかった
同じように、きっとJavaやC#のような単純なルールの言語なら覚えられるけど、
C/C++のようなあれもこれも可能な言語は覚えられない連中が多く、
そしてそれを認めるのが恥ずかしいって思ってる人たちが多いのもわかった。
以下、ひまわりスレ
プライムのことをダッシュって読む人いるよね
微分積分の概念は、関孝和も同水準に達していたけど、記号がないので発展しなかった面がある
プライムよりダッシュだべ 英論文でプライムを初めて見たとき何のことだかしばらくわからんかった
数学の教授が、日本人があんまりダッシュダッシュと言うからダッシュが普及し始めた とか冗談言ってたな
CC'=Σ(the prime denoting transpose) 主要な転置表記
K'(ξ)=w, where prime denotes differentiation with respect to ξ. 素数はξの違いを表す
>>776 覚えられないから簡単にしろって云う人への批判として
769 を書いたつもりなんだけど、難し過ぎましたか。
cにあれ付けてこれ外してってよりも、javaにポインタつけて後どうしようか? の方がスムーズに話が進む気がするんだけど。
>>783 「こういうつもりで書いたんだ」 で済まさず一言余分に付け加えるあたり、
プライドの高さが垣間見えるようです。
>>777 俺ミノムシって呼んでる
'←みのむし
"←ダブルみのむし
`←反対のみのむし
俺の会社でもみんなみのむしって呼んでいるぞ
>>787 当たり前じゃん。
ミノムシは世界共通だぜ。
>>787-790 おい、誰だ ミノムシ流行らせようとしてるやつw
俺も明日から使おうかな。
スレから適当にピックアップしたけど途中で面倒になった。 適当に足しとして。 C/C++に無いけど欲しい機能 ○欲しい ・アトミック処理 ・リアルタイム性 ・Lispなみに弄くれる型安全なマクロ ・Forthなみに弄くれる駆動レコード - 駆動レコードへのアクセス - 実行制御 - 強制インライン展開(レコードを新しく作らないルーチン) ・マトモなクロージャ ・マルチスレッド対応/自動並列化/トランザクション ・割り込み処理 ○微妙 ・GC ・多重継承の代わりにmix-in ・コルーチン ・契約プログラミング
C/C++に有るけど要らない機能はなんだよ
>>792 スレ違いな事してんじゃねぇ
ここはミノムシを語るスレだ
Cのマクロは今の視点ではいらないな。
inlineがLispのマクロに相当するんじゃないの
>>794 ある意味ネタスレだしな。これ以上の議論は期待できないね。
まあ、もっとも必要なら別スレとして
新言語Polka-dot(仮称)とか、C言語クローン総合スレ等の
新規スレとWiki立てるけど?
具体的な低級言語に求める機能のアイデアは誰も語らないの?
プログラミング初心者なんですが、GCが邪魔になるコードの例を教えてもらえませんか? ゲームとか通信とか言われてもピンと来ないです。
Lispのマクロは2回評価するのだ
801 :
792 :2010/03/31(水) 20:44:42
>798 俺が語ってるだろ。 他にc/c++では実装できない/言語の助けの無い機能があったら挙げてくれ。
C/C++の拡張が前提なわけ?
0と1だけでプログラムをかける低級言語、01を作ろう
>>799 GCが邪魔になるってのは、その処理そのものが害になると言うより、
しなくてもいいところでも走る(=GC管理の為の処理や、開放など)から、
あえて言うなら邪魔だという話。 てか邪魔って言うより、常にそれありきじゃなくてOn/Offしたいって感じ
ヘッダがいらない
じゃあヘッダ自動生成のCのIDE作る
>>804 > しなくてもいいところでも走る
はい、その点は理解しているのですが、
GCが走ると処理がわずかに中断されて、それが気になるほどの悪影響を与えるケースを
実証できるコードはどんなものか興味がありまして・・・
>>808 だから悪影響を与える実証コードが云々じゃなくて、
無くてもいいものなら無い方がいいって話。
例えば関数一つ呼んで、何かの戻り値を得るとかの処理があった時、中に作られる自動変数やら何やら、
あるいはクラスをnewして得たなにやらを、自分で管理出来た方が都合がいいだろ?って話だよ
>>808 FPSゲームなんかで交戦中には余計なことして画面がガクンとなるのはやめて欲しいから、
どうにもならない場面でだけGCするように作って、後は戦闘中以外の処理もたついてもいい場面でGCしたい。
なんてのは普通にあるんでないの?
>>810 でもゲームでは入力や通信やらで非同期に余計な処理が結構いろいろあるので
GCが起きるぐらい些細な事なのではないか、と素人ながら思ったのですが・・・
>>811 入力は全然問題ない。
動作を脅かすとんでもない入力なんてない。
通信はしらない。
フルタイムで通信してるようなゲームはその些細なことをそれなりに気にして作ってるんじゃないの。
だいたい通信量ってそんなめちゃくちゃな量はないと思う。
そりゃ素人以下だな
>>812 確かに通信料は少なそうですね。
実際グリグリ動くFPSでも100kbps程度だったりして驚きます。
う〜ん、では質問を変えますが、ゲーム中にGCが起こったとして何ミリ秒ぐらいゲームがストップしますか?
>>813 決して皆さんを侮辱しているわけではありませんので、怒らないで聞いてください。
単なる素人の疑問ですから。
>>814 何が言いたいのかわからんが、認識できるレベルで止まる重くなるプログラムしか作れない言語なら問題があると言えないか?
作る側は良くてもやる方は甘くいこと言ってくれないぞ。
100kbpsもあるのかFPSは 結構あんのな
>>815 確かに問題ありますよね。
しかし、本当に言語に問題があるのかどうか皆さんの話を聞いているだけではピンと来ないので
そのケースを再現したプログラムなどがあれば理解もしやすいのですが・・・
リンクだけでも結構です
>>814 そんなのはプラットフォーム次第。
たとえばヒープの少ない古い携帯電話なんかで、断片化の起きやすいコードを書いてれば秒レベルで止まる。
たとえばだな ルータを考えてみなよ こっちの都合考えずに パケットがガンガンくるでしょ gcで0.1秒とか中断したら パケット落ちちゃうかもでしょ? 動画のカメラのキャプチャが 1/30秒で画像送ってきたとする 途中でgcが走ったら画像おちるでしょ? 計測機が一定周期でモニタしてるとして 周期が乱れたらまずいでしょ? gc避けたいのはそういう相手に合わせないといけない用途 人が使うものは時間短いなら普通大丈夫だが ゲームや動画、音声なんかはシビアだね
>>817 最初から信じる気ないだろ?
自分で大量のオブジェクトnewしまくるコードでも書いてみたら?
困らないなら話題にもならないよ。
ゴミ回収のタイミングって、アルゴリズムがわかってればだいたい分かるんじゃないかな。 それにプログラミング側のテクニックでゴミが出にくいプログラミングも可能だと思うけど。
gcは書き方や処理でだいぶ頻度が変わるが 不可抗力やエラーでもないのに データが落ちたり抜けたりは 設計上許されないわな
>>820 まさにそういうプログラミングするから大幅にGCに負荷がかかるんだよなぁ。
GCといっても言語ごとに違うだろ。 ちなみにluaだとGCの動作で2倍くらい速度変わる。 実例として、EU3(市販ゲーム)でGCの調整パッチで 動作速度1.5倍くらい変わった。
GCしたいときにGC関数実行すれば回収してくれるような仕様だったらどう?
>>821 ま、普通シビアな分野では
メモリなんて動的に取らんがねw
最初に確保したら後は増え減りもしないw
それはそれでGCが必要なときにGCされない危険が伴う。
>>820 私が信じていないのは、
>>821 さんの仰るように、
プログラマーがGCの挙動を理解していないがために
GCへの負荷がかかりすぎてしまうプログラムを書いてしまって
いるのではないかということなんです。
>>825 dojaがそうだけど、命令してもメモリがあまり使われてなかったらやらないとかいうし。
>>826 そうそう。
絶対回収されないようにずっと保持して、そこを使いまわすのが普通のスタイル。
newしまくるのは下の下のプログラマのやることじゃないの。
そもそもGCってのは自分でメモリのマネージできないようなアフォグラマの為のものだからね。 負荷の多いコーディングしてしまうのも仕方がないのさ。
820だけど、バカにされてるみたいで嫌だからいうけど俺はそんなコードは書かないぞ。 例で言っただけなんだからっ
833 :
素人 :2010/04/01(木) 00:08:04
>>830 ではそういうプログラミングスタイルならば
GCありの言語でもリアルタイムな用途でつかえるということでしょうか?
>>833 JavaみたいにGCありの言語で組み込みプログラミングする例だってあるんだから、
やってる人はいるんだよ。
>>828 つまり、自分で結論出てるじゃないか
GCと言う便利な物があるからと言って、それにすべてを任せたら
まともに動作しない環境がある。昨今のデスクトップPCみたいに
恵まれている環境ばかりじゃないからね。
自分の結論に同意して欲しいだけなら知恵袋にでも書いておけよ。
PerlとかHaskellのゲームなら聞いたことがあるが 楽をするためではなくて、むしろ逆のような気がする
838 :
素人 :2010/04/01(木) 00:21:06
>>836 いろいろお騒がせしてすみませんでした。
そういやmonadiusで暫くプレイしてるとどんどん遅くなるって作者が言ってたな。 あれもgcのせいなのかね。
>>840 原因が分からない(分かりにくい)のはデメリットだよな。
少なくともCなら原因がどこにあるのかコードを見れば分かるんだけど、 Haskellみたいな遅延評価の言語はGCの挙動がわからん。
>>834 組み込みにはリアルタイムのものと非リアルタイムのものがある。
リアルタイムのシステムには処理時間の最悪値が保障できないGCは使えない。
スレタイは超高速と謳ってる以上リアルタイムが最低条件だろ。
リアルタイム性が要求される環境でGCあり言語が使えるかどうかって話しだけど 選択可能だとしても、好んで選択する人はあまり居ないと思う。 それだけシビアな環境だとまずはスループットが要求されるわけで、Cやasmが 選択できるなら、そっちを選ぶんじゃないかな。つまりGC単体で処理系を判断 する事はまず無くて、現状のGC搭載言語より、総合してC、asmの方が向いていると 判断する事の方が多いと思うわけだ。 ちなみに「シビアな環境」とはどういう環境かと言うと、 * ヒープは何バイトまで利用します * スタックは何バイトまで利用します * どんな事があってもこの処理は何ナノセカンドで戻ります と言う事を、仕様として明確にして、責任を持たなければならない環境の事なんで GCが入り込む余地はほとんど無いかも知れない。
組み込み用処理系のGCならヒープどれだけ使うかは設定できるんじゃない? Cとかアセンブラとかでやるときはプロファイラとにらめっこしながら試行錯誤するけど・・・ どっちも大して変わらんか。
846 :
素人 :2010/04/01(木) 00:49:26
組み込みなどのシビアな環境に詳しい方にお聞きしますが、 C言語でプログラミングしていて、 こういう機能があったらこういうシーンでもっと楽ができるのに! と思う事があったら教えてください。
脳に直接繋いで頭で考えるだけで実装されるデバイスがあれば良いのに
>>846 ヒープを使わない短い文字列クラス、とか。
でもC++があれば、こういう必要な機能は必要に応じて何でも作れるしな。
>>844 で箇条書きした3つの要件を満たしているかどうかが
コンパイル時に分かれば、ムチャクチャうれしいね
必要な機能のキーワードで検索すると即使えるフリーなライブラリが自動で組み込まれる IDE直結型の検索エンジンが欲しいな。
>>849 そこで形式的仕様記述言語での設計ですよ。
ここは本当に物事を進める能力絶無な底辺キーパンチャしかいねぇな 事を起こすならまず最初にやるべき事をやれ 名前を付けろ
じゃあ言語の名前つけます 「kuma-」 これでいいですか
現役時代はハードパンチャーって云われたよ
はいじゃないが
はいじゃないが
おし、じゃあまずはkuma-の言語仕様をBNFで書いてみることからはじめよう
↓どうぞ
クマって呼ばれてたものがあった気がするがなんだっけ
名付けに失敗したプロジェクトは99%失敗するから 初期段階に名前で存分に悩むのは経済的に正しい
ああ、AMDのCPUか。Kuma
名無し言語 ↓ 0x7C言語 ↓ |言語
>853 どうせなら kummer- だろ。 名前以前にコンセプトをどうにかしようぜ。
>>866 名無しなのに簡単に特定されたら困るだろ?
俺的にpythonみたく{}を除去したい^^
出た当初はC#もググれなかったんだが、今じゃ普通に出るな
C# とか、.NETとか、MSは意図してググれなくしたように思えて仕方がない
お前らが金出してGoogle アドワーズに表示するようにすればおk
じゃあ|で検索結果出るようになったら俺らの勝ちだな
873 :
デフォルトの名無しさん :2010/04/01(木) 01:33:29
{}がある方がブロックが明確でいいが強要はいやだな 組み込みやリアルタイムでもそこまでメモリシビアじゃないのも多いよ 特に32bit RISCの奴。 でも時間に関しては結構シビアだったりするな。 ただそういうのでも全てが時間制限あるわけじゃないし 単純にスループットならGCありでも稼げるしね。 GCが記述で決めれるなら静的に解析も出来るし 高プライオリティなのはNon GC, どうでもいい処理はGCありとか出来る
じゃあ、手動でメモリ解放する手段も提供されていて、 かつGCしたいときにGC命令を実行すればGCしてくれるようにするのはどうだろう。
875 :
デフォルトの名無しさん :2010/04/01(木) 01:48:35
問題ってのは言語が勝手に動的なメモリを解放・確保することなんよな でもそれがメリットでもある GC除外の宣言を変数にできたらどうだろ
>>873 > {}がある方がブロックが明確でいいが強要はいやだな
python使うまではインデントブロックが強要されるのは気持ち悪いと思っていたけど、
実際に使ってみると案外メリットばかり感じるようになるんだよね。
{}のブロックだとどこからどこまでがブロックなのか、非常に視認性が悪い。
もちろんemacsなどのエディタでは自動でインデントしてくれるが、し忘れることもあって、
例えば多重ifなどで範囲を間違って読んでしまうこともある。
877 :
876 :2010/04/01(木) 01:52:01
ほんとに、こういう使い勝手の問題は実際に使ってみないと分からないんだけどね。。 プログラミング言語は道具なだけに。
>>876 視認性に関してはエディタに強く依存すると思う。
インデント強制は保守の面から悪くないとは思うけど。
ところで関数は
public static int hoge(int aaa,String bbb = null){}
なの?
public static function(aaa:int, bbb:String = null):int{}
の方がなんとなく好きなんだけど。
880 :
デフォルトの名無しさん :2010/04/01(木) 02:12:29
ML流の引数を()で閉じないタイプが好きなんだけど、マシン語に落とす時に問題ある?
1. 速度、移植性はC 2. その他(構文、ライブラリ)はPython がベスト
>>882 >1. 速度、移植性はC
>2. その他(構文、ライブラリ)はPython
2はインデントブロックに関しては賛成
ライブラリはjava流が簡単な気がする。
>>882 Cがよくわからないからpython風に書きたいです、って言ってるだけじゃん
Cがよくわからないからpython風に書きたいです
習得しやすさはどうでもいい 強力で高速で普及してればいいから、C++で全く困らない
つーか一定以上難しくないと職を失うだろ
golangには先手を取られたが、必ず追いついて見せる(キリッ
Pythonって書き方おかしいから嫌い
>>888 書き方なんて簡単な方がいいよ
問題は何をどう書くかだから
それで職失うってのはそもそも不毛な仕事で不要な人間だわw
いかにも難しくて一見して意味がわからない言語じゃないと 経営者が「俺でも分かる」と思い込んじゃって給料減らされるから。
英語が分からないから、COBOLが分からないやつ
そんな無能な経営者も不要だなw
簡単ってなんなの C/C++が普及しているのはC/C++が簡単だから?
>>895 LinuxやWindowsがC言語で作られているので、システムコールがC言語の関数ベースだから。
>>895 歴史。実用的で無駄の少ないコードがこのコンパイラ言語のおかげでずいぶん楽になったね、
って言う歴史
>>875 CycloneはGCではなくregion based memory managementだな。
つか今のメモリー管理システムのトレンドってなんだろうな。
年表あればいいんだが。
>>892 無能な経営者は淘汰されるから心配しなくてもいい。
むしろバグ・ケアレスミス・保守や記述の冗長性が減れば
開発者の健康面で良いし、安全性や生産性があがるんで、
そっちのほうが重要だな。
それでプログラマの自殺減ったり開発がしやすくなればいいと思う。
>>875 その手の手法は既に C++/CLR で出来るな
新しいものなんて何も必要なかったんだ
それならポインタがあるC#だってできるぞ。
>>898 馬鹿め
無能な経営者は毎年途切れる事無く補充されるってことを知らんのか
>>902 大丈夫、この不況でだいぶ消毒されたから。
C++/CLIはもはやJavaのパクリではない点が新しい
まあ無能なエンジニアはもっと生産されてるがなw
>>900 MSの作ったモノは。。。(ry
といいたいが、仕様見てみた。こんなもんかね。
>>905 この不況で無能なエンジニアは就職できないんですよ。
だから少なくとも今年の新卒エンジニアは無能じゃない。
就職できたら有能ってのはチト早合点
なんかもう… パフォーマンス必要な所だけCかasmで書いて、 あとはなんでもいいやー、な気分になってきてしまいました。 結局、今と変わらん。
>>908 そのパフォーマンス必要な所を書く言語を作ろうと言っているわけで。
なかなか伸びが速いが次スレか?
それともネタスレなので終了か?
次スレなら今の段階でスレ内容をまとめて
>>2 とかに貼るアレが必要だな。
Cが最高って結論で終了で良いけど
高機能な言語の便利な機能が、どのようなしくみで実現されているかを知れば、Cにそれらの機能がないのはなぜかが分かると思うのだが。
リストもGCもないcamlとかどう?
パフォーマンスが必要な部分なんて本当に小規模になるはずだし ならCでよくね? 完
OSのことを忘れているだろ。
>>912 次スレ作るならfc2 Wiki借りてくるが?ただし末尾のハイフン使えないサービスだから
そのままURLにするのは無理。次のうち一つ選んでくれ。
kuma-minus, kumamin, kumamens, kumaminkind, mrbear, mrkuma
言語名は、|言語だろ?
C with Classesでいいよ
オブジェクト指向機能はつけた方がいいのか? stackless Cとかどう?
Cにクラスはいらない
全然参加する気はないが、検索しやすい名前にしてくれ。
>>919 欲しい機能を追加していくとC++になっちゃうな。
オブジェクト指向の代わりにCSP機能つけたらどうだろう。 golangみたいに並列で動くとリアルタイム性が失われるので、 手動でタスクを切り替えられるようなコマンドを用意するとか。
>>924 プリエンプティブなマルチスレッドにすればリアルタイム性は確保できる
プリミティブでPriority Inversion Safeなmutexと
シンプルなセマフォとメッセージがあればOKじゃね
手動での実行権放棄もありで。
。。。。言語にRTOS機能組み込みだなw
まずは、すぐに、確実に出来る事からやってみないか。 現状カーネルやドライバ等を記述できる言語で実用的なのは、asm, C, C++って所だけど、 この中で一番機能豊富なのはC++である事は言うまでもない。にも関わらずC++が使いにくい という印象があるのは、言語仕様が大きく、その割りに標準ライブラリが貧弱だから。 で…、 1. C++で使わない事にする機能をリストアップする 2. 標準ライブラリとして利用すべきライブラリをリストアップする つまりコーディング規約を作ってみると言う話しだ。
まずはclassがいらねえな
それはstructで十分だから?
CSPさえできればオブジェクト指向も理論的に実装可能
これ以上質問されると言語教室になっちまう。 3時間1万円くらいなら教えるけど。 そんなどーでもいいこと気にしてないで言語を一通り覚えて、 なんか実用的なソフトを一つ開発すれば、データの扱いなんたるかだいたいわかるよ。 今の段階じゃ無理。
盛大に誤爆した
www
クラスとテンプレートは要るけどポリモルフィズム なんて要らないから vtbl は無くてもいいな。
インターフェースは多重継承したいね。 実装を伴うクラスは、継承できなくてもいいかも知れない。
インターフェイスとか要るなら C++ 使えばいいじゃん。 高級マクロとしてのクラスとテンプレートで十分。 でも実装の継承はもちろん要る。 異論はあるだろうけど。 とかバカ書いてて思ったけど、proxy パターンとか delegation というか メッセージの forwarding を簡潔にやれる文法あると良いな
マルチスレッドを低級言語の言語体系に組み込むのは無意味。
何スレ使ったってCが最強っていう結論で終わるに決まってるのに
>>937 今後はハイエンドの組み込みからシンメトリカルなマルチコア化が進んでいくだろうから
無意味とも言えないな
>>939 どうやってスレッドの管理をしているのかを考えてみよう。
結局、低水準を触ったことの無い奴が「仕組みよく分かんないけどCと同じ速度が欲しい」 と言ってるだけなのが良く分かる流れだな
Cと同じ速度のJavaが欲しい
>>942 いいじゃん、それで言語ができちゃったら面白いじゃん。
コンパイラの勉強から始めましょう
Cコンパイラなら作ったことあるよ。 激遅だけど。
激遅でもいいじゃない。マシンスペックが高ければ
>>943 とあるシンプルな言語があって、それに諸々の管理機構を取り付け、
全てをクラスとして表現し、プログラマがメモリ管理などを気にせずコーディングできる様な
そんな新しい言語をつくりました。それがあなたの得意なそれです。
単純なことをやらす分には、JavaもCも速度は変わらん。
>>940 言語に組み込んであるのがポイントなんだよ
むしろ、言語に組み込まずに、後から実装して、 あたかも最初から言語に組み込まれていたかのように見えるような仕様を考えてみようよ。
ぶっちゃけ何でもいいからアセンブラ一つくらいは触れる奴じゃないと、低水準向けの 言語設計なんて話題では感覚が違いすぎて雑音にしかならない だが、触れる奴ならCで大して困らない
だからスレ立てた奴が何にも分かってなかったって結論がかなり最初に出ただろ馬鹿
じゃあCの方言つくろうぜ
どうやって言語実装するのか先に考えようぜ。 全部アセンブラで作ろう。 すると低級言語作るのに悪くないし、馬鹿よけにもなるので変な話題が入ってこない。
>>956 移植性悪いじゃん。
馬鹿除けならHaskellで作ろうぜ。
>>956 馬鹿除けはFAQ読みな!の一言で片付けるからいいがアセンブリだと?
つかBDS Cかよ。
実装の汎用性求めるなら初期段階はスクリプト言語上に実装するのもあり。
実装は、汎用性もあるJavaでいいんじゃないか。
名前すらまともに決まらないほど誰も何もやる気が無いって事だな さっさとこの糞スレ埋めて仕事に戻れよ
このスレッドは天才チンパンジー「アイちゃん」が 言語訓練のために立てたものでした。 アイと研究員とのやり取りに利用するスレッドに書き込まれた、 関係者各位の皆様、ご協力ありがとうございました。 京都大学霊長類研究所
エンディングバージョン初めて見たw
なんだもう終わりか
アイちゃん、勝手に次スレ立てるなよ。
>>965 ただのネタスレで話も同じ事の繰り返し=進展しようが無いのに
なんでパート化させてんだ
ネタ雑談スレ立てたいならせめて違うアイデアにしろよ
>>967 アイちゃんの訓練のために立ててるんだよ
test
さっさと埋めろ、アイちゃん
埋めるって言っても、連投すると規制がかかるだろ? 何人かで強力しないと。 990とかギリギリになってから、次のスレたてれば良かったんだよ。
次からは是非そうしてくれ。ume支援
というか次がある気で居るのかw 1200レス消費しても何から決めるかすら決まってねえのにw
蒼樹うめ
じゃあ何から決めるか、先ずはそれを決めようじゃありませんか
何から決めるかを決める前に物事を決める為の手順を決めなければ始まらないだろ
埋め
爪
久米
もうやめろよこんな糞スレ
うまい棒
はらへった