新C言語を作ろう
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2007/07/21(土) 18:27:03C言語に足りない、欲しい機能を追加して最終的には標準化しましょう。
いまここに新C言語作成委員会の発足を宣言します。
とりあえず必要と思われる機能は
・クラス
・テンプレート
などでしょうか?
0153デフォルトの名無しさん
2007/07/31(火) 23:53:30http://kerneltrap.org/node/11754
http://lkml.org/lkml/2007/7/11/362
それでもまだアセンブラ(*.S)な部分があるのがなんだかなぁだが。
0154デフォルトの名無しさん
2007/08/01(水) 00:06:470155デフォルトの名無しさん
2007/08/01(水) 00:09:570156デフォルトの名無しさん
2007/08/01(水) 00:19:190157デフォルトの名無しさん
2007/08/01(水) 00:42:400158デフォルトの名無しさん
2007/08/01(水) 07:06:380159デフォルトの名無しさん
2007/08/01(水) 21:49:59間違ってると言うなら、ソースつきで反論どうぞ。
バカ本はダメだよ。(w
>>152
Pascal と Lisp には標準ではハードを直接触る機能はないと思ったけど。
Oberon, Smalltalk は使ってことないからよくわからんが。
0160デフォルトの名無しさん
2007/08/01(水) 23:22:13OSのアセンブラコードを吐くプログラム書けばいいじゃん
0161デフォルトの名無しさん
2007/08/01(水) 23:27:30任意のアドレスへジャンプもしくは関数呼出などができる機能を
持っている必要があるという制約が生じるね。
0162デフォルトの名無しさん
2007/08/01(水) 23:35:31実行ファイル吐く(略
0163デフォルトの名無しさん
2007/08/01(水) 23:42:030164デフォルトの名無しさん
2007/08/01(水) 23:48:230165デフォルトの名無しさん
2007/08/01(水) 23:49:53ブートキャンプしか知りません。
0166デフォルトの名無しさん
2007/08/02(木) 15:00:59本云々じゃなくて、お前の人間性な
0167デフォルトの名無しさん
2007/08/04(土) 00:49:02OSのアセンブラコードってなんだ?
自分用語は、ご自身のブログだけにしといてくれ。
>>166
反論できないから、人格攻撃か。
わかりやすい奴だな。(w
0168デフォルトの名無しさん
2007/08/04(土) 01:00:32どんなのを想定してたんだろう、この子。
0169デフォルトの名無しさん
2007/08/04(土) 01:43:29脊髄反射で何となく汚い言葉を並べているだけでしょう
だいぶ前から会話が成立していない様ですし
0170デフォルトの名無しさん
2007/08/04(土) 06:58:50じゃあさ、お前1冊でも本書いてみろよ
俺様が添削してやるから
0171pp
2007/08/04(土) 22:15:25反論できないから、人格攻撃か。
わかりやすい奴だな。(w
# 夜中まで乙。
>>170
指摘されたぐらいでそんなに熱くなるな。
0172デフォルトの名無しさん
2007/08/04(土) 22:25:250173デフォルトの名無しさん
2007/08/04(土) 22:32:12それはさておき、C に機能を追加する話題ばかりだったけど、
C から取り除いた方が良いと思われる機能は無いのかな。
0174デフォルトの名無しさん
2007/08/05(日) 10:43:00> 典型的な厨房でした。
反論できないから、人格攻撃か。
わかりやすい奴だな。
> 簡単な技術の話も出来ないなら他所へ行ったら良いのにな。
で、おまえ等 (一人かも知れんが) のレスのどこに技術の話があるんだ?
反論したければ、単に >>129 の解釈に対する反例をあげれば済む話なのに
できないからうだうだ言ってるんだろ?
0175デフォルトの名無しさん
2007/08/05(日) 11:17:420176デフォルトの名無しさん
2007/08/05(日) 11:26:58>で、おまえ等 (一人かも知れんが) のレスのどこに技術の話があるんだ?
俺じゃなくてさ、>>159 の書いてる事が素人っぽかったからね。
「Oberon, Smalltalk は使ってことない」らしいけど、Pascal と Lisp も
殆ど知らないんだろうなと思って。
0177デフォルトの名無しさん
2007/08/05(日) 12:26:28へ〜、君はもっと凄いことについてレスしてるつもりだったんだ。
詳しく説明してくれるかな?
>>176
> Pascal と Lisp も殆ど知らないんだろうなと思って。
そう思うなら、どこか素人っぽいか指摘すればいいだけ。
指摘もできないから、「知らないんだろうな」とか言う技術的じゃ
ないことしか書けないんだろ?
# まさか、「OSのアセンブラコードを吐く」なんて言うわけわかめ
# のことを言ってた奴が絡んでるのかなぁ...。(w
0178デフォルトの名無しさん
2007/08/05(日) 12:54:100179デフォルトの名無しさん
2007/08/05(日) 12:57:020180デフォルトの名無しさん
2007/08/05(日) 12:59:300181デフォルトの名無しさん
2007/08/05(日) 13:02:52人によってリアルモードのことだったり割り込みのことだったりしそう。
#リンカスクリプトを言語に統合まだー?
0182デフォルトの名無しさん
2007/08/05(日) 13:08:050183160
2007/08/05(日) 13:15:35「OSの」は余計って事か。ごめんね。
書いたときは>>152以前は読んでなかったから、OSでも書くつもりなのかと思ってたよ。
>>161には話通じてるみたいだし、スルーされたと思って放置してた。
どのみちファイルに出力できる言語なら何でもできるだろ、
って事を>>148みたいな人へ言いたかったんだけど。
0184デフォルトの名無しさん
2007/08/05(日) 13:24:180185デフォルトの名無しさん
2007/08/05(日) 13:41:400186デフォルトの名無しさん
2007/08/05(日) 13:50:23「技術的に指摘して」って言ったらこの様ですか...。
まあ、>>185 が言う通り 夏 なんだろうな。
>>181
> "ハードに近い"の定義がされてないのに何この荒れよう。
まあ、最低限として任意のメモリの読み書きができないとダメだろうな。
て言うか、リアルモードとか割り込みなんて事まで言い出すと特定プロセサ
シリーズ専用の言語になるから「標準」でと言うのはないだろうな。
>>183
単に茶化しただけだ、気にしないくれ。
そもそも、>>160 の書き込み自体洒落 (=原理的には可能だけど、実施が
大変面倒なので実際的じゃないという意味) だろ?
て言うか、このスレ自体がネタスレだし...。
> どのみちファイルに出力できる言語なら何でもできるだろ、
>>161 が指摘してる通りそのファイルを実行する手段が必要。
標準の言語仕様としてその機能を持ってる言語ってそんなに多くないよ。
0187デフォルトの名無しさん
2007/08/05(日) 14:00:54餌欲しい?
0188デフォルトの名無しさん
2007/08/05(日) 14:09:42各arch毎に言語拡張すれば良くね?
0189デフォルトの名無しさん
2007/08/05(日) 14:37:07言語仕様に含まれてなくとも、大抵は処理系毎にFFIとかが整備されてるもんだよ。
C言語にしてもasmは標準ではないし、C言語で適当なバイト列を関数アドレスとして
キャストして実行できたりするのも処理系が「たまたま」許してるだけ。
そんな所を君がごちゃ混ぜに語っているのが、分かってないのでは
と言われる理由かと。
0190デフォルトの名無しさん
2007/08/05(日) 15:05:34>そもそも、>>160 の書き込み自体洒落 (=原理的には可能だけど、実施が
>大変面倒なので実際的じゃないという意味) だろ?
大変面倒というのは君の主観でしかないよね。
そういうのは一度作ってしまえばその環境で使いまわせるし、
やることも極めて単純な変換作業だよ。
エミュレータやコンパイラ作ったりする人なら普通に思いつく発想。
で、
>て言うか、このスレ自体がネタスレだし...。
このスレは仮にも「新C言語を作ろう」なんだから、その程度を、
大変面倒と言ってしまうレベルの人間の横槍は遠慮してもらいたい。
0191デフォルトの名無しさん
2007/08/05(日) 15:10:02ないわけではないよ>>48-61。
>>188
似たようなこととして、DがCPU毎にインラインアセンブリを定めていたはず。
0192デフォルトの名無しさん
2007/08/05(日) 15:16:30D言語のインラインアセンブラはx86しか(ry
gdcは他のarchの為にasm(gasの文字列);に対応してるけど。
0193>>187 かわいそう...
2007/08/05(日) 15:51:36そう、実用的には処理系毎の定義と、何らかの言語拡張がなされているのが普通。
特に、ハード周りとかファイル関連はアーキテクチャやシステム毎の差異が大きいので
標準の言語仕様では定義してない方が多い。
C言語は、PDP + Unix と言うある意味特定環境用の言語として作られたから生い立ちと
して他の言語に比べてそこら辺の定義が比較的されていたんだ。
>>189 の言うキャストなんかも、アーキテクチャが決まっていたから許されていたが、
8086 + DOS みたいにメモリモデルによっては関数へのポインタとデータへのポインタで
ビット幅が違うなんて言う変態的なアーキテクチャだと破綻するので言語仕様からはず
されただけ。
>>189
そういう突込みを避けるために、わざわざ゛>>159 に「標準では」って
言う言葉を入れてあるんだが。
> そんな所を君がごちゃ混ぜに語っている
具体的に指摘よろしく。
>>190
まあ、ちょっと落ち着け。
そういう仕組みを作るのが面倒じゃなくて、単に「ハードに触る」だけで、ファイル作っ
てそれを実行して (必要に応じて結果を) 得るって言うことが面倒だ言ってるんだけど、
理解できてる?
0194デフォルトの名無しさん
2007/08/05(日) 15:55:050195デフォルトの名無しさん
2007/08/05(日) 16:19:14処理系毎じゃなくてarch毎に拡張の標準を決めるべきでね?
0196デフォルトの名無しさん
2007/08/05(日) 17:22:27>理解できてる?
何を言ってるのかさっぱりわかりませんがその前に、
「君の主観でしかないよね」って言葉は理解してるのかな?
ともかく、何が面倒なのかを焦点に議論するのは無駄でしょう。
重要なのはどういった手法であれ、目的が達成できるかどうか。
よりベターな方法なんて後からいくらでも考えればいい。
>具体的に指摘よろしく。
自覚がないなら遠慮しておきます。
それこそ「面倒」なんで。
0197デフォルトの名無しさん
2007/08/05(日) 17:24:43(defun addn (n) #'(lambda (x) (+ x n)))
「Cではaddnはどうなるだろう?ちょっとすぐには書けないだろう。
もっとも読者はこんなふうに思うかもしれない。大体こんなことをしたいなどと考え
たりするだろうか、と。しかし、そう考えたりしないのは、プログラミング言語が、それで
できないようなことは、やりたいと思わないように利用者を仕向けているからである。
プログラムを書く言語で考えなければならないのだから、それで書けないことをやり
たいとは考えにくい。私が初めてプログラムを書き始めたころ、それはBasicで書いて
いたのだが、再帰を使いたいなどとは考えなかった。そんなものがあることも知らな
かったのだ。私はBasicで考えていたのだ。
(中略)
(Lispを学習していく)努力の報酬として、上級のC++プログラマがBasicでの
プログラミングに感じるようなやりにくさを、C++に対して感じるようになるだろう。」
0198デフォルトの名無しさん
2007/08/05(日) 18:11:01例えば、86系用だと io 命令を拡張の標準にするとか?
ちょっとおもしろいかもしれない。
>>196
> 何を言ってるのかさっぱりわかりませんが
ああ、理解できてないなら別にもういいよ。
別に君の意見に反対する気はないし、そういう人に何を言っても無駄だ
と言うことも知ってるから。
> 自覚がないなら遠慮しておきます。
> それこそ「面倒」なんで。
# 指摘できない言い訳を2行も書くのは面倒じゃないんだ...。(w
0199デフォルトの名無しさん
2007/08/05(日) 18:13:34と思ってるそこのキミ。それはつまりキミが馬鹿なんです。
0200デフォルトの名無しさん
2007/08/05(日) 18:17:02> > 自覚がないなら遠慮しておきます。
> > それこそ「面倒」なんで。
> # 指摘できない言い訳を2行も書くのは面倒じゃないんだ...。(w
>>196のこの部分は、
「ああ、理解できてないなら別にもういいよ。
別に君の意見に反対する気はないし、そういう人に何を言っても無駄だ
と言うことも知ってるから。」
という意味のことを、それよりは少し短く言ってるだけだと思うよ。
0201デフォルトの名無しさん
2007/08/05(日) 18:17:510202デフォルトの名無しさん
2007/08/05(日) 18:28:030203デフォルトの名無しさん
2007/08/05(日) 19:21:10はいはい、言い訳はもう結構です。
0204デフォルトの名無しさん
2007/08/05(日) 20:37:330205デフォルトの名無しさん
2007/08/05(日) 20:48:27だな。主観で話してるお前が一番痛い。
0206デフォルトの名無しさん
2007/08/05(日) 20:57:42一番は俺だからな。
0207デフォルトの名無しさん
2007/08/05(日) 21:10:310208デフォルトの名無しさん
2007/08/19(日) 18:24:44そうだな
0209デフォルトの名無しさん
2007/08/19(日) 19:23:200210デフォルトの名無しさん
2007/08/19(日) 19:32:53君もエントリーするかい
0211209
2007/08/19(日) 19:43:53一応下記の至らぬスレの主です。
おら!Nをオトメに見つけて++Nを得るムを作らん?!
http://pc11.2ch.net/test/read.cgi/tech/1187428876/l50
0212デフォルトの名無しさん
2007/08/19(日) 20:05:210213デフォルトの名無しさん
2007/08/19(日) 20:10:54糞スレ立てるな
0214209
2007/08/19(日) 20:21:58何も成果物を作れないかもしれませんが、
気長に見てやってください。
スレ違い及び売名行為失礼しました。
逝ってきます。
0215デフォルトの名無しさん
2007/08/20(月) 18:32:130216デフォルトの名無しさん
2007/08/25(土) 12:46:57スコープとはいわば開発者に脳内スタックの確保を一段
強要する機能であり、開発の邪魔である。
変数は全て設計者が関数一覧表とそれに付随する変数一覧表にて管理する。
ローカルだからと適当に変数を作り捨てるようなことをするから
ゴミ変数が増え、バグとなる。
・ポインタの廃止。ポインタは労多くして功少なしの典型機能。
・キーワードを全て大文字化する。小文字は小さく目に悪い。
0217デフォルトの名無しさん
2007/08/25(土) 12:48:110218デフォルトの名無しさん
2007/08/25(土) 15:13:41COBOL でも弄ってろ無能。
0219デフォルトの名無しさん
2007/08/26(日) 17:08:28要約するとガベージコレクションを付けろってことだな
0220デフォルトの名無しさん
2007/08/27(月) 02:45:42異論の余地がないほど同意
cなんかよりBASICのほうが1億光年優れてるよな
0221デフォルトの名無しさん
2007/08/27(月) 18:09:12>異論の余地がないほど同意
本人だからか?
0222デフォルトの名無しさん
2007/09/06(木) 17:28:11BASICはできてもCはできなかった
0223デフォルトの名無しさん
2007/09/06(木) 17:39:30でもプログラミングはやってなかった
つかPC自体が珍しい時代だった
0224デフォルトの名無しさん
2007/09/20(木) 10:00:55あ、あとエクスポート可能なテンプレートかジェネリックスもね。
はっきり言ってクラスはなくても何とかなる。thisコールが結構べんりっちゃーべんりだけど。
0225デフォルトの名無しさん
2007/09/20(木) 10:25:33ローカル変数は無いと再帰処理が出来なくて悲惨だぞ。その再帰も深くなるとばぐっちゃうけどね。
ポインタはローレベル叩くとき必要だけど、普段はあんまり恩恵ないな。イテレータにしても実用上は問題ないかもね。
キーワードは、色つきエディタ使えば解決。え!?もってないの???VCが無料だって言うのに。
0226デフォルトの名無しさん
2007/09/20(木) 11:41:51int i; とかをグローバルにする知り合いがいたんだが、
void g(void) {
for (i = 0; i < Y; i++) 何かする;
}
void f(void) {
for (i = 0; i < X; i++) g();
}
みたいなことやってバグってハマってたな
0227デフォルトの名無しさん
2007/09/20(木) 13:09:15異論の余地がないほど同意
cなんかよりBASICのほうが1億光年優れてるよな
0228デフォルトの名無しさん
2007/09/20(木) 13:22:000229デフォルトの名無しさん
2007/09/20(木) 14:06:230230デフォルトの名無しさん
2007/09/20(木) 15:20:030231デフォルトの名無しさん
2007/09/20(木) 22:53:59*N88互換BASICを使っている人・・・・
ttp://pc11.2ch.net/test/read.cgi/tech/1189476569/l50 の 24 参照
0232デフォルトの名無しさん
2007/09/21(金) 18:11:30任意で実装って感じでさ。
あれこそ、コンピュータグラフィックスだよ。
0233デフォルトの名無しさん
2007/09/23(日) 21:37:443次元に拡張して、タートルがグリグリ動く奴でヨロ。
0234デフォルトの名無しさん
2007/12/24(月) 02:30:36#include<game.h>
int main()
{
CreateGame(CG_SHOOTING)
return 0;
}
これでシューティングゲームができる言語を作ってみそ
0235デフォルトの名無しさん
2008/01/27(日) 17:24:03#iconfile iconfilename
と書くと作成される実行ファイルにiconfilenameで指定したアイコンファイルが関連付けられる機能
0236デフォルトの名無しさん
2008/01/28(月) 18:42:16while(1) { /* ループ1 */
while(1) { /* ループ2 */
break2;
}
}
0237デフォルトの名無しさん
2008/01/28(月) 18:45:050238デフォルトの名無しさん
2008/01/28(月) 19:09:53UWSCで使えるけど便利だよね。
あと、forループで規定回数で抜けるのと途中で抜けるのとをスイッチするオプションがあれば・・・
あ、普通にフラグとスイッチ使えばいっか。
0239デフォルトの名無しさん
2008/01/28(月) 21:36:08数字はやだ、ラベルにしてくれ。
Loop:
while(1) { /* ループ1 */
while(1) { /* ループ2 */
break Loop;
}
}
0240デフォルトの名無しさん
2008/01/28(月) 21:37:480241デフォルトの名無しさん
2008/01/28(月) 22:57:110242デフォルトの名無しさん
2008/01/29(火) 17:27:37まんまD言語な件。いや、Javaでもあったかな。
0243デフォルトの名無しさん
2008/02/17(日) 19:38:46switch(VersionComparison(argv[1], argv[2])) {
case 1:
printf("%sの方がバージョンが新しいです。\n", argv[1]);
break;
case 2:
printf("%sの方がバージョンが新しいです。\n", argv[2]);
break;
default:
printf("%s, %sのいずれもバージョン情報を含んでおりません。\n", argv[1], argv[2]);
break;
}
return 0;
}
0244デフォルトの名無しさん
2008/04/09(水) 20:32:13#include "Windows.h"
extern "C" __declspec (dllexport) int isosmode(void);
int _tmain() {
switch(isosmode()) {
csae 0:
MessageBox(NULL, "現在のモードは、アドバンスモードです。", "モード判定", MB_ICONINFORMATION);
break;
case 1:
MessageBox(NULL, "現在のモードは、セーフモードです。", "モード判定", MB_ICONINFORMATION);
break;
case 2:
MessageBox(NULL, "現在のモードは、デバックモードです。", "モード判定", MB_ICONINFORMATION);
break;
default:
MessageBox(NULL, "CHKMODE.DLLは存在しません。", "ファイルの欠落によるエラー", MB_STOP);
break;
}
MessageBox(NULL, "なんちゃって、isosmode()もCHKMODE.DLLも実際には存在しません。", "注意", MB_ICONINFORMATION);
return 0;
}
0245デフォルトの名無しさん
2008/04/09(水) 20:36:34紳士言語
0246デフォルトの名無しさん
2008/04/09(水) 21:05:21ここではスレ違いの内容だよ
そういう書き込みは“適当に作ったC言語の関数を貼っていくスレ”の方で。
0247デフォルトの名無しさん
2008/06/19(木) 18:33:34関数の引数を増やしてそれをローカル変数代りにすればOK。
216が関数の引数もなくせ、と言っているなら知らんが...。
0248デフォルトの名無しさん
2008/06/19(木) 21:27:03if + goto + goto だと思うが。
0249デフォルトの名無しさん
2008/06/19(木) 21:52:07大抵のコンパイラは
goto L1
L2:
...
if(...) goto L2
に展開するから、goto + if + goto が正しいな。
って言うか、5ヵ月近く前のレスにレスするほどの内容か?
0250>>249
2008/06/19(木) 21:53:13goto L1
L2:
...
L1:
if(...) goto L2
0251デフォルトの名無しさん
2008/06/20(金) 22:40:22どうしてもレスつけたかったんです、勘弁してください。
0252デフォルトの名無しさん
2008/07/24(木) 01:36:50やる気があるなら、予約語を全部排除して、
全部自前で定義できるようにしてくれ。
そういう仕様なら乗ってやる。
■ このスレッドは過去ログ倉庫に格納されています