【超高速】C/C++に代わる低級言語を開発したい 5

このエントリーをはてなブックマークに追加
934デフォルトの名無しさん:2010/05/16(日) 17:38:13
なるほど。コンパイラ作る側ではめんどくなるし
つわなくていい人は関係ないけど、CPUにも機能があるから
言語仕様に入るべきってのは正論だと思います。
ライブラリで提供するとしたらライブラリで提供されていても
関数だけではなく演算子も使えるようになっていて欲しい。
関数だけで書け言われても、嫌だわ。
935デフォルトの名無しさん:2010/05/16(日) 19:27:49
任意N進はいらないんじゃね
BCDにしても必須てほど使われないしね
Decimal/Complexとかはあっても悪くない程度じゃないか
936デフォルトの名無しさん:2010/05/16(日) 19:47:49
ところで、新言語のVirtual Machineをどう実装するかお前らは考えたことはあるか?
937デフォルトの名無しさん:2010/05/16(日) 19:49:38
何のためにVMが必要なの?
938デフォルトの名無しさん:2010/05/16(日) 19:53:12
MMX・SIMD・SSEも使いたい
939デフォルトの名無しさん:2010/05/16(日) 19:55:36
いまどきの新言語はVM実装があたりまえ

PerlもC#もVMを実装
OS非依存目指すならそれくらいかないと
940デフォルトの名無しさん:2010/05/16(日) 19:59:09
そのPerlやC#が嫌だからこのスレがあるわけで
941デフォルトの名無しさん:2010/05/16(日) 20:29:41
高水準言語ならともかく、低水準言語にVMはないわ。
ていうかVMを実装するための言語。
942デフォルトの名無しさん:2010/05/16(日) 21:05:34
「低水準でも」使える言語なのでVMがあるのかどうかは関係ない。

それでもVM前提とか無いわ。
943デフォルトの名無しさん:2010/05/16(日) 21:21:17
>>939
で、何のためにVMが必要なの?
944デフォルトの名無しさん:2010/05/16(日) 21:36:58
Java, C#でさえ仕様上はVM必須というわけではないのに。
945デフォルトの名無しさん:2010/05/16(日) 21:40:30
共通の中間コードに一度変換した後に
その中間コードを各CPUにコンパイルするようにすれば
複数のCPUに対応したコンパイラが作成可能だ。
そこで共通の中間コードがネイティブで動く仮想マシンが必要になる。
946デフォルトの名無しさん:2010/05/16(日) 21:43:34
何で中間コードをそのまま動かそうとしてるんだよw

中間コードをさらに各CPUのネイティブコードにコンパイルするんだろ?
各CPUのネイティブコードとして動かせばそれでいいだろ
947デフォルトの名無しさん:2010/05/16(日) 21:54:36
基本レジスタ渡しな
レジスタは最低スタック用とフレーム用に2本かな
printfみたいな可変長引数はどうしようもないが
948デフォルトの名無しさん:2010/05/16(日) 21:55:15
C#のJITコンパイラは実際SSE2ありと無しでは吐くコードが違うからな
ぐぐってみ
949デフォルトの名無しさん:2010/05/16(日) 21:55:42
で?
950デフォルトの名無しさん:2010/05/16(日) 22:00:27
中間コードを考えるということは仮想的なマシンを考えるのと同義だ。
でも実装って書いてるな。むむぅ。
動的にコードを変更した最適化が可能だったりコードを小さく出来たり、
セキュリティ的にサンドボックスが作れるので
ネットワークでの配信が容易になったりするとか。
951デフォルトの名無しさん:2010/05/16(日) 22:00:32
LLVMでいいやん
952デフォルトの名無しさん:2010/05/16(日) 22:06:38
ネイティブコードを吐くコンパイラも、内部で中間コードにあたるものを生成していることを知らないらしい。
953デフォルトの名無しさん:2010/05/16(日) 22:06:41
ビットシフトを適当に使って書けば
最適化でビットローテート命令に使ってくれるかもしれないけど
言語側でビットローテート用の演算子がほしい
954デフォルトの名無しさん:2010/05/16(日) 22:15:04
>>953
どんな記号な演算子?
>>> <<< は算術ありなしとかだったから>>>> <<<<とか?
長いから >-> <-< とか?

955デフォルトの名無しさん:2010/05/16(日) 22:38:43
>rol>
>ror>
956デフォルトの名無しさん:2010/05/16(日) 22:59:00
頻繁に使うものじゃないし、ror()とかrol()とかの関数でいいんじゃないの?
957デフォルトの名無しさん:2010/05/16(日) 23:02:01
大抵はキャリーと組み合わせるから
キャリービットを扱う方法も欲しい
958デフォルトの名無しさん:2010/05/16(日) 23:07:32
またアホな話になってきたな
959デフォルトの名無しさん:2010/05/16(日) 23:11:16
(int a, bool carry) = a >ror> 3;
あるいは
(int a, bool carry) = ror(a, 3);
というかんじで使えるといいと。
960デフォルトの名無しさん:2010/05/16(日) 23:15:23
a >ror> 3
だと、 a > ror > 3 と区別がつかないのでいまいちじゃない?
記号のみの組み合わせにするとか、``でくくって`ror`にするとか
ror だけにするのがいいと思うよ。
961デフォルトの名無しさん:2010/05/16(日) 23:24:12
次スレ

【超高速】C/C++に代わる低級言語を開発したい 6
http://pc12.2ch.net/test/read.cgi/tech/1274015781/
962デフォルトの名無しさん:2010/05/16(日) 23:27:07
<@ >@
だな
顔文字か作れる言語にしようぜ
963デフォルトの名無しさん:2010/05/17(月) 02:00:37
とりあえずschemeでプロトタイプでも作るか
964デフォルトの名無しさん:2010/05/17(月) 02:18:18
期待してる
965デフォルトの名無しさん:2010/05/17(月) 07:08:34
S式の呪縛に囚われてはCに変わることは出来ないぞ
966デフォルトの名無しさん:2010/05/17(月) 07:27:01
反発も半端じゃないけどガンバレ!
967デフォルトの名無しさん:2010/05/17(月) 13:02:37
ああまだ5が残ってたのか

6に書いたけどニーモニック云々
968デフォルトの名無しさん:2010/05/18(火) 01:09:26
このスレの目指す言語はgolangじゃないかという気がする
並列処理組み込んでるし、ガベコレもあるし
969デフォルトの名無しさん:2010/05/18(火) 02:45:25
俺もそんな気がする
どうせ作らないだろ
970デフォルトの名無しさん:2010/05/18(火) 03:23:16
やっぱgoだよな
ガベコレ無しのgoが理想的なんだがな
971デフォルトの名無しさん:2010/05/18(火) 03:24:50
あとはWiring程度すら使いこなせねえレベルのもいるな
低レベルってのが俺からしたらドバイタワーの頂上みたいに見える話が多いし
972デフォルトの名無しさん:2010/05/20(木) 23:35:02
LISP民族とかLL民族がここぞとばかりに、
自分たちの言語に入ってる機能をねじ込もうとしているからな。
973デフォルトの名無しさん:2010/05/21(金) 00:27:45
蛮族に作法を教えてやってるのだ
974デフォルトの名無しさん:2010/05/21(金) 00:28:57
ねじ込ませたいと思うほどの機能なら、検討する価値がある。
975デフォルトの名無しさん:2010/05/21(金) 01:09:42
>>974
彼らはOSやドライバの仕組みを知らない。
976デフォルトの名無しさん:2010/05/21(金) 01:18:32
すべてを知っているのであれば、情報交換なんて必要ない。

自分が提供できるものを提供し、雑多な情報の中から自分に必要なものを拾うことで、高め合うことができる。
977デフォルトの名無しさん:2010/05/21(金) 01:20:39
妄想垂れ流して情報クレとな
978デフォルトの名無しさん:2010/05/21(金) 01:24:44
>>974
バカに混じれ酢するのもどうかと思うけど、
LISPやLLはアセンブラと相性悪いんだよ。
979デフォルトの名無しさん:2010/05/21(金) 01:27:11
と言って思考停止
980デフォルトの名無しさん:2010/05/21(金) 01:33:48
という類の発言は無意味である
981デフォルトの名無しさん:2010/05/21(金) 01:35:46
俺もそう思う。
982デフォルトの名無しさん:2010/05/21(金) 02:15:21
>>977
不覚にもわろた
983デフォルトの名無しさん
goはastがライブラリに入ってるから遊べるぞ