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

1デフォルトの名無しさん
垢版 |
2012/08/23(木) 23:03:00.69
70年代、Cは生まれ、それから30余年、現代においてもなお、低レベルなシステム開発に広く使われている。

しかし、2010年の今、もしもCが発明されていなかったとして、低レベルなシステム開発のためのプログラミング言語を
新たに作るとしたら、Cとは違う言語になるだろう。少なくとも、全く同じにはならないはずだ。

そこで、このスレッドでは、
低レベルなシステム開発のためのプログラミング言語
を一から考えたい。

既存の言語を使って何かをすることが目的ではなく、新たなプログラミング言語を考えることが目的であるから、
「既存のXX言語を使えばいい。」という類の発言は無意味である。

「既存のYY言語のZZ機能は、WWと言う点で有用だから採用したい。」という発言は歓迎だ。
現代の一流のプログラミング言語研究者が、最先端の研究成果を盛り込んで、
一から低レベルなシステム開発のためのプログラミング言語を作るとしたら、どのような言語になるだろうか、
という観点で考えたい。

◆前スレ
【超高速】C/C++に代わる低級言語を開発したい 7
http://toro.2ch.net/test/read.cgi/tech/1275235018/l50
79デフォルトの名無しさん
垢版 |
2013/08/26(月) NY:AN:NY.AN
>>53
英語で
middle-level
検索したらでてくる
80デフォルトの名無しさん
垢版 |
2013/08/26(月) NY:AN:NY.AN
>>77
単なる個人的意見? #pragma のオンパレードと同じだと言っているんだが
単にニーモニックが書けるだけでは不十分で
オペランドの装飾名やレジスタアサインまで最適化の影響も受けずにクリアする必要がある
高級言語でだぞ? これを邪道だというのの、どこが個人的意見なんだ?

> ラップ関数で覆って見えなくして
日本語でおk

> その主成分を知ってる人に聞きたい
逆アセンブル読めよ、読めないならもう一度言ってやる「主成分を知らないやつめ」
81デフォルトの名無しさん
垢版 |
2013/08/26(月) NY:AN:NY.AN
>>78
asmがあるのはなぜって、俺に聞くのはお門違いだ
移植性を重視しながら sizeof(int) が処理系定義だしねえ

> システムアプリは大なり小なりシステム依存のコードを含むことになるので
そのとおりだが

> インラインアセンブラは大した問題にはなりません
なぜこうつながる?

> 私は外部のアセンブラを使っていました。
過去形ということは「あの問題」を知らないわけだね
このくだり、突っ込みどころ多すぎて投げたわ
2013/08/26(月) NY:AN:NY.AN
>>80
なんだ、ただの知ったか君か、ご苦労w
もう来なくていいから
2013/08/26(月) NY:AN:NY.AN
>>81
おいおい、>>78はD言語のFAQのコピペだぞ。つまり「私」というのはD言語の開発者だ。
どう見てもおまいよりコンパイラの内部に詳しい。
「あの問題」とかわけわかんないこと言ってんじゃないぞw
知ったか君はろくに文章も読めないから困る。話にならんな。
2013/08/26(月) NY:AN:NY.AN
>>80
日本語不自由な人みたいなので wrap function と書けば理解できるのかな。在日君ですか?

Cがアセンブラより太る原因は逆アセなんかしなくてもわかるんだが。
おまいさあ、Cコンパイラのソース一度も読んだことないだろw
「低レベルなやつめ」
2013/08/26(月) NY:AN:NY.AN
シッタカ君に権威主義君か
どんどんやれ
86デフォルトの名無しさん
垢版 |
2013/08/26(月) NY:AN:NY.AN
淫乱NISSENブラ
2013/08/26(月) NY:AN:NY.AN
Cのファイルサイズサイズ語るならリンカだろ?
gcc読むにしてもCコンパイラ部分は読まねえよ。
コンパイラなら普通にアセンブリ吐くから逆アセンブルもしねえ。
88デフォルトの名無しさん
垢版 |
2013/08/26(月) NY:AN:NY.AN
>>84
いーや、逆アセよまなきゃ10倍にもなる理由は説明できない
コンパイラのソースとか何言ってるんだ? 頭が発狂したのか?
2013/08/26(月) NY:AN:NY.AN
具体的な説明でもobjdumpで十分だろ。
逆アセンブルしたコードなんて読まねえよ低能。
90デフォルトの名無しさん
垢版 |
2013/08/26(月) NY:AN:NY.AN
逆汗読めねえ低脳でもリンカのマップくらい読めよせめて
2013/08/26(月) NY:AN:NY.AN
ついに逆アセンブルに意味がないことを認めてしまった低能w
92デフォルトの名無しさん
垢版 |
2013/08/26(月) NY:AN:NY.AN
は? 10倍という定量的な値に反論できないのはてめえだろうが
2013/08/26(月) NY:AN:NY.AN
説明出来れば十分だろ?
構造とシンボル情報見せてlibcの初期化コードが含まれているで十分じゃん
サイズ知るためだけに逆アセンブルコード読む必要なんて全然ないだろw
どこに必要あるのか言ってみろよ低能w
94デフォルトの名無しさん
垢版 |
2013/08/26(月) NY:AN:NY.AN
それは10倍にならないコードを示せれば充分だ
Hello World しかできねーバカにそれは無理だが
2013/08/26(月) NY:AN:NY.AN
このまま逆アセンブルが必要である具体的な理由を示せないなら負けだぞ低能
96デフォルトの名無しさん
垢版 |
2013/08/26(月) NY:AN:NY.AN
別に負けで結構だ
有料なノウハウをただでぶちまける必要はない
2013/08/26(月) NY:AN:NY.AN
具体的に言えないどころかあえて言わないだってw
ここまで否定してきて根拠も出せないw
まさに負け犬の遠吠えw
981
垢版 |
2013/09/25(水) 16:34:17.92
readmemoryとか
writememoryがどうなるのだろうか
99デフォルトの名無しさん
垢版 |
2013/09/26(木) 02:16:01.75
なんの話?
2013/09/26(木) 10:13:38.72
ナンではありません
2013/09/26(木) 12:16:43.48
scalaみたいな、Cかアセンブラのコードに変換してくれる言語作れば?
102デフォルトの名無しさん
垢版 |
2013/09/27(金) 02:45:38.68
そう。その具体的な仕様を決めようとしている。
103デフォルトの名無しさん
垢版 |
2013/09/28(土) 21:30:08.11
PGはバカでいいという思想はCOBOLの轍そのもの
2013/09/29(日) 17:46:09.34
開発環境は言語のうち
つまりVisualStudioを超える開発環境を作れ
2013/09/29(日) 21:16:37.17
>>103
Javaも割とその思想が入ってる
まあJavaの場合はC++がPGを過信してることへのアンチテーゼもあるんだろうけど
2013/09/30(月) 00:01:04.26
PGはバカでいいというなどという突拍子もない捉え方は1ビット脳そのもの
なぜ中間がないのか
107デフォルトの名無しさん
垢版 |
2013/09/30(月) 01:15:30.99
>>106
いいえ
108デフォルトの名無しさん
垢版 |
2013/10/09(水) 19:11:24.01
Lazy kでよくね?
109デフォルトの名無しさん
垢版 |
2013/10/12(土) 11:56:24.18
>既存の言語を使って何かをすることが目的ではなく、新たなプログラミング言語を考えることが目的であるから、
>「既存のXX言語を使えばいい。」という類の発言は無意味である。

>「既存のYY言語のZZ機能は、WWと言う点で有用だから採用したい。」という発言は歓迎だ。
>現代の一流のプログラミング言語研究者が、最先端の研究成果を盛り込んで、
>一から低レベルなシステム開発のためのプログラミング言語を作るとしたら、どのような言語になるだろうか、
>という観点で考えたい。

>>1
2013/10/12(土) 15:22:36.71
大事なのは俺TUEEE感に浸れるかどうかだから
既存のものを流用するなどというのは根本から間違っている
2013/10/12(土) 23:17:49.12
トランスコーダから始めよう。
謎言語toASMが最終目標だ!
112デフォルトの名無しさん
垢版 |
2013/10/13(日) 20:21:01.89
>>110
既存の言語を使えと言って思考停止するのは間違っているが
既存のものを流用するのは間違っていない。
2013/10/14(月) 05:47:13.59
C言語が糞なのはヘッダファイルが原因だ
#includeが#importになれば全て解決する
114デフォルトの名無しさん
垢版 |
2013/10/14(月) 06:23:07.84
ヘッダ面倒臭ぇ
115デフォルトの名無しさん
垢版 |
2013/10/14(月) 07:07:22.83
相変わらず低レベルなところを這い回ってるな
116デフォルトの名無しさん
垢版 |
2013/10/14(月) 08:30:40.79
上からモノ言う人って、すごい人なのかと思ってた。
でも意外とそうでもないんだね。

昨日、C言語スレで構文解析の話題があった時、上からモノを言ってくるので
凄い人だと思って話を聞いてたら、実は初心者だった。
2013/10/14(月) 10:14:02.62
人の話は板違いです。
ご遠慮ください。
2014/01/24(金) 09:22:14.15
ステートマシン風な言語でも作ればいいじゃん。
119デフォルトの名無しさん
垢版 |
2014/01/25(土) 10:49:14.98
いいね。先ずは具体的なアイディアを聞かせて。
2014/01/25(土) 22:33:43.03
欲しい言語機能は全てRUSTに入っていた
121デフォルトの名無しさん
垢版 |
2014/01/28(火) 00:09:58.48
RUSTは正解に近い感じがする。
2014/01/29(水) 08:34:22.46
RUSTってC++と比較されるけど低レベル組み込み系もいけんの?
2014/01/29(水) 22:00:57.19
C++、stlが許されるだけのリソースがあるなら大丈夫そうだ。
2014/02/03(月) 13:34:51.37
コンパイル時リフレクション(javaでいうアノテーション・プロセッサ)がほしいな
シリアライザーとか自動でつくってほしい
125デフォルトの名無しさん
垢版 |
2014/03/20(木) 12:59:23.14ID:nanBO4Fq
C++は低級言語なのか?
2014/03/22(土) 23:40:16.72ID:kAjP8TsQ
Dがもっと流行れば解決する。
127デフォルトの名無しさん
垢版 |
2014/06/22(日) 12:30:37.05ID:K+9brE5n
Dはないわ。
2014/06/22(日) 15:43:07.83ID:M7LQdNqY
LLVM IRみたいのでいいだろ。
129デフォルトの名無しさん
垢版 |
2014/09/01(月) 15:52:05.30ID:nQghNeel
vecterはc、c++から外して欲しい、元はjavaだろ、イテレータとか。
130デフォルトの名無しさん
垢版 |
2014/09/01(月) 16:52:48.36ID:PsPID0hw
Javaは外した方がいいというのは、銅管だ。
131デフォルトの名無しさん
垢版 |
2014/09/01(月) 19:20:16.43ID:HFXNgtth
 ___ _
  ヽo,´-'─ 、 ♪
   r, "~~~~"ヽ
   i. ,'ノレノレ!レ〉    ☆ 日本のカクブソウは絶対に必須です ☆
 __ '!从.゚ ヮ゚ノル   総務省の『憲法改正国民投票法』のURLです。
 ゝン〈(つY_i(つ http://www.soumu.go.jp/senkyo/kokumin_touhyou/index.html
  `,.く,§_,_,ゝ,
   ~i_ンイノ
2014/09/02(火) 03:13:01.39ID:CRzNoeOm
低級言語はアセンブラと初期のCだけだろう
133デフォルトの名無しさん
垢版 |
2014/09/18(木) 13:31:28.77ID:f9spcQ/x
言語作ってるんだけど、
コンパイラ作る時って一旦アセンブラ出力してからmasmとかに機械語出力してもらった方がいいの?
masm自身はアセンブラコードの最適化とかはしてくれなそうだしそのまま機械語出力したいんだけど
2014/09/18(木) 14:08:33.42ID:xVnvrnxl
アセンブラ介したほうが少なくともデバッグはしやすいと思うぞ
2014/09/18(木) 14:10:35.16ID:H4lZxv/t
そのコンパイラで何ができるもしくは何をやらせるのかも
決めてないんだ
2014/09/18(木) 15:04:00.60ID:f9spcQ/x
>>134
どれくらいしやすくなる?
命令のバイナリ列を理解しやすい(?)形でアセンブラに1対1で置き換えてデバッグする、っていう手間が省ける程度なら雀の涙という感じ
むしろデバッグするときは結局機械語読むことになるから最初から機械語で出力したほうが理解が早い気もする
それ以上のメリットってなにかあるのかな

>>135
一応決まってるよ
Windows8以降向けのUI・ゲーム開発言語
2014/09/18(木) 15:09:30.18ID:H4lZxv/t
x86系の命令、16進数で読めるんだ
なら、直接コード出して、ハマりまくったほうがいいかもね
2014/09/18(木) 15:51:05.20ID:6/jIYBiS
>>136
用途からすると機械語やアセンブラへのコンパイルどころか
C言語+HLSLへのトランスレータが最適解な気もするなあ…
結局、何だかんだでDirectXの関数呼ぶことになりそう

んで関数呼び出して処理するなら、機械語とC言語の差は間の計算処理になるが
そこも巷のC処理系の最適化はノウハウ詰まってるから
下手なアセンブラコードより速かったりする

何れにしても何層かに処理を分けることにはなるだろうから
いきなり全部やろうとするより、やるべき層をひとつひとつ集中してやったほうが
139デフォルトの名無しさん
垢版 |
2014/09/18(木) 16:29:47.38ID:f9spcQ/x
>>137
わーい

>>138
そのとおりです
DirectXの関数は呼ぶよ。でもスレの主旨的にもC言語を介したくないのよね
GPUへの命令はさすがに手に余るからとりあえずHLSL出力することになると思うけど…

ううーん。とりあえずCに翻訳してコンパイルして、でてきたアセンブリを研究してみようかな
ありがとう
2014/09/18(木) 17:02:46.70ID:R7gYP1+N
LLVMという選択肢は
141デフォルトの名無しさん
垢版 |
2014/09/19(金) 02:00:51.26ID:hElo33NJ
本スレは、コンパイラをどのように作るか、ではなく、どのような言語仕様にするか、を重視しています。

コンパイラの話が終わったら、言語仕様の話をしましょう。
2014/09/19(金) 02:50:49.06ID:uVs1JVYc
LLVM/Clang 実践活用 ハンドブック、出村成和、2014


LLVM 言語マニュアル(Language Reference Manual)
ttp://www.h3.dion.ne.jp/~mu-ra/llvm/LangRefJ.html

日本語訳です。ただし、翻訳は適当と書いてある
143133
垢版 |
2014/09/19(金) 13:25:22.42ID:NxcXgwij
>>140,142
奥が深そうだねえ
どれくらいのパフォーマンス出してくれるのか想像つかない

>>141
C/C++並の低レベルプログラミングができて、人間が話せて、かつ人工知能も理解しやすいような言語という設定でいろいろ考えてる
自然言語に声調というのがあって、これは抽象化すれば音階としても処理できるから、人工知能にも扱いやすいし、
音階の配列である声調は命令の配列である機械語とも相性が良い。
144142
垢版 |
2014/09/20(土) 02:06:52.74ID:U6pDraTi
LLVMはフロント・ミドル・バックの、3つの部分に独立している
フロントはプログラミング言語とコンパイラ
Clangなら、C/C++ → IR

ミドルはコンパイル後の擬似的なアセンブラ。IR(中間コード)
バックはx86,ARMなどのCPU

新言語を作っているなら、
フロントのコンパイラ(字句・構文解析)の部分だけを作って、
IRになるようにすればよい

>142の本を買うのが速い
145デフォルトの名無しさん
垢版 |
2014/09/21(日) 17:41:47.69ID:ReekRvFB
>>143
「人工知能も理解しやすい」というのはコンパイラにとって効率が良いという意味?
146133
垢版 |
2014/09/22(月) 19:53:03.15ID:czCyS6sZ
>>145
人間との会話のときに相互の情報伝達の効率がいいということ
わりと強めの人工知能を想定している
147デフォルトの名無しさん
垢版 |
2014/09/22(月) 21:27:22.05ID:Q0QJp/T/
>>146
その効率はプログラミング言語としてどういう意味を持つの?
2014/09/22(月) 21:58:15.46ID:EiJEHJdV
人口無能を作ってるんでは?
2014/09/22(月) 22:47:26.85ID:LvPIFofq
>人間との会話のときに相互の情報伝達の効率がいい

いわゆるドラえもんをつくる気か。すごいな。
2014/09/22(月) 23:14:21.82ID:ufGb4z7Y
何でも良いけど、動作速度がトロくて高級言語がとかぬかして
ジェネリック要求してくるLL使いが鬱陶しいわ
2014/09/23(火) 00:44:54.05ID:75K7vBZU
>>1
Cは高級言語だ。
そんなことも知らないのか。
152133
垢版 |
2014/09/23(火) 00:48:58.01ID:fk2c4+Og
>>147
基本的な記述はより直感的になるし、抽象度の高い表現もそのまま扱える
プログラミングと会話は違うけど、そこをあえて統一した規格で表現できるような言語仕様
>>2にも書いてあるように既存のプログラミング言語にないような機能でプログラム書いてみるの楽しいでしょ

>>149
そうそうそんな感じ
153デフォルトの名無しさん
垢版 |
2014/09/23(火) 09:43:28.68ID:D7BulMBA
>>152
人工知能とか、ネタなのか本気なのか分からなかったので若干しつこく聞いたけど、本気ならその方針で面白いものへと広げてほしい。

といいながら、興味本位で聞いてしまうけど、人間はともかく、人工知能にとって「直感的」ってどういうことなの?
人工知能ってコンパイラだよね。コンパイラにとっての直感性というのが分からなかったので。

それと、作りたいのは「言語」でいいんだよね?コンパイル可能な自然言語とか。
2014/09/23(火) 12:57:04.95ID:RZgQ8Ezi
しゃべればしゃべるほど非マの妄言と化していくな
板違いだべ
155133
垢版 |
2014/09/23(火) 13:48:39.80ID:fk2c4+Og
>>153
純粋なコンパイラというよりはコンパイラとインタプリタを統合した処理系だね。
Prologのような対話(厳密にはうちの言語のは対話ではないけど似たようなもの)を繰り返してプログラミングすることもできる。
その場合、処理系は対話によって学習できるし、学習したところから発話もするように考えてるから人工知能と呼んでいる。
人工知能にとって直感的っていうのは、手続き型の制御フローに沿った発話がそのままできるってこと。
たとえばうちの言語はそもそも語順がかなり自由だから、手続き型プログラミング的な構文をそのまま人間の言葉として理解できる、とか。

一言で言えば言語だね。芸術言語とプログラミング言語を足したようなものだよ。
156デフォルトの名無しさん
垢版 |
2014/09/23(火) 19:40:06.05ID:D7BulMBA
>>155
OK。現状ではコンセプトを理解するのが難しいということがわかった。

早く具体的な言語仕様を知りたいので、ぜひその議論を進めてほしい。
2014/09/23(火) 22:25:50.92ID:11MYg8X9
>>155
実験言語で終わりそうな悪寒
2014/09/23(火) 23:09:33.36ID:beG9zooH
エプロンおねえさん、めざしてるのかしら
2014/09/24(水) 22:12:59.34ID:1vKhut4O
Cは高級言語であって、スレタイがすでに間違ってるのに、お前ら
はあほか、こんなものを続けて何の意味があるんだ。
2014/09/24(水) 23:07:20.55ID:EketT0f3
Cは低級言語だろ何言ってんだ
2014/09/24(水) 23:11:42.12ID:B6bZpcqc
高水準言語の基準は人間がそのまま動作を読み取れる言語だろ
よってC言語は当然高水準言語
2014/09/24(水) 23:14:48.57ID:uTgX/qQw
ハードウェアを直接操作できるのが低級、できないのは低脳
163デフォルトの名無しさん
垢版 |
2014/09/25(木) 01:17:10.50ID:erkjRt9/
高級、低級の呼び名はどうでもいい。C言語を低級言語と呼びたくないならそれでも構わない。そのことに大した意味はない。

スレタイの意味は>>162がほぼ正しい。

>>162の言葉を借りれば、「ハードウェアをオーバーヘッド最小で直接操作できる言語」、それがこのスレで言うところの低級言語。

低級言語という言葉が嫌なら、ハナモゲラでもゲゲボでも好きな呼び方をすればよい。
但し、呼び方を使用する前に、定義を明確にすること。
2014/09/25(木) 03:06:49.15ID:Izg0GKzf
Cは昔から「高級アセンブラ」と呼ばれていたと思ったが
165133
垢版 |
2014/09/25(木) 03:14:33.45ID:8qvU6Kt5
>>157
どうやっても個人開発だから実験言語までいけばいいところだね。
それでむしろ実用的な最適化とかはちゃんとノウハウのあるところに開発してもらうのが一番いいんだけどな。
2014/09/25(木) 04:07:23.07ID:997Wnr2J
高級言語でも低級言語でもないから、中級言語である。
There are following reason that C is called Middle Level Language as:

C programming language behaves as high level language through function, it gives a modular programming and breakup, increased the efficiency for resolvability.
C programming language support the low level language i.e. Assembly Language.
C language also gives the facility to access memory through pointer.
Its combines the elements of high-level languages with the functionalism of assembly language.

So, C language neither a High Level nor a Low level language but a Middle Level Language.

C Programming: Middle level Language
http://cprogrammingcodes.blogspot.jp/2011/12/middle-level-language.html
2014/09/25(木) 04:09:06.54ID:997Wnr2J
諸説あるよ

"middle-level language"
Googleで検索
2014/09/25(木) 04:18:01.41ID:997Wnr2J
各CPUのアセンブラを勉強しなくていいから、Cは、高級な感じがするが、
オブジェクト指向言語ではないし、セキュリティが不足している(実際は、それもCで達成できるはず)ようにみえるから、
Cは、高級言語ではない。
169デフォルトの名無しさん
垢版 |
2014/09/25(木) 06:36:29.36ID:erkjRt9/
ID:997Wnr2J には、このスレでCを「高級言語ではない」と呼ぶ権利を与えます。どうぞご自由に。
2014/09/25(木) 09:38:34.27ID:H7xxDOL8
高級言語ではあるけど、メモリアドレスを直接指定しての書き込みや
必要とあらばインラインアセンブラも使える言語って意味だろ

更にC言語の場合、アドレスの抽象化があまりされていなくて
それらが必要でなくともアドレスを扱うことになるからそう言われるんだろう
2014/09/25(木) 12:42:03.78ID:FK6wklg/
高級言語って30年前の言葉だからな。C/C++より上のいまどきの言語は超高級言語だろ。
2014/09/25(木) 12:46:26.61ID:GQOH8SqT
肉体労働向け言語に進化しましたから、超高級とかいってるのは
2014/09/25(木) 12:58:54.18ID:aCIY3SmK
高級言語だから定休知能では扱えないということはなく
むしろ反比例の関係にある
2014/09/25(木) 13:15:02.54ID:FK6wklg/
マ板に高級=デラックスと勘違いしてるやつがいるとは。
2014/09/25(木) 13:24:45.09ID:GQOH8SqT
ここム版ですが
2014/09/25(木) 13:56:45.69ID:aCIY3SmK
マイッタ
177デフォルトの名無しさん
垢版 |
2014/09/25(木) 20:29:44.52ID:q7N5Q3ZR
>>2->>3を読む限り>1の望みを満たして居るのはかつてとは段違いに美しく高水準に整えられた今時のアセンブラと思われる
178あぼーん
垢版 |
NGNG
あぼーん
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況