5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

【超高速】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

2 :デフォルトの名無しさん:2012/08/23(木) 23:07:31.21
◆新言語の要件 v0.1◆

(1)ハードウェアを直接操作する低レベルの記述が可能
(2)プログラマーが勘違いしてプログラマーの意図と違う動作をしないように言語仕様が直感的で学習が容易
(3)最新のオサレ機能が使えてワクワクしながらプログラミング可能


◆主な要望◆

・デバドラ屋だって、オサレ言語で開発したい!
・プログラマーの言語仕様の学習不足によるヒューマンエラーを最小限にするために、できるだけ小さな言語仕様にしたい。
・組込み屋だけど、関数型とダックタイピングしたい。
・shared_ptrの構文糖が欲しいな
・低レベル記述性(絶対条件) > 構文の美しさ(読みやすさ、学習の容易さ) > 再利用性(抽象性)
・算術演算以外の演算子は後置
・割込み、例外、非同期IOとかを統一扱えるイベント機能が欲しい。

3 :デフォルトの名無しさん:2012/08/23(木) 23:08:53.74
◆新言語の前提 ver0.02◆

・言語仕様が小さい
・言語仕様に例外事項(但し書き)が少ない
・標準ライブラリーが充実している
・組込みとユーザー定義の区別がない
・標準的なコンピュータアーキテクチャを直接制御するための記述ができる
 (オーバーヘッド最小限にI/O・メモリアクセス、割込み処理ができて、かつ、その記述が平易、直感的、誤解が少ないことが望ましい)
・仕様にコーディング規則を含み、それに従うことをある程度強要する
・ドキュメント自動生成を仕様を含む
・既存のバイナリーオブジェクトをリンクして呼び出せる

◆新言語の位置づけ◆

Ruby, Python, Haskell, OCaml, Scala, Clojure, Erlang, …
烏合のごとく言語が生まれてきているのにどれも似たようなLLばかりで、ハードウェア制御のような低レベル処理を行える言語が無い。
一方、Cは40年使われ続けてきているわけで、そろそろ置き換えられる言語が出てきてもいいだろう。

そこで、C程度の性能が出せて、Cが使われている分野を全てカバーでき、
過去の互換性に囚われて構文を妥協せず、今時の機能を使えてCよりもプログラミングしやすい新言語を作りたい。

◆新言語でのリソース管理方針◆

・確保したリソースを明示的に後始末しなくても問題が発生しない
・何らかのメリットのために確保したリソースを明示的に後始末してもよい

※GCは手段であって上記が満たされていれば必ずしも必須ではない。

4 :uy:2012/08/23(木) 23:52:58.78
チューリング完全になれば何でも良かったんだよ
高価な機能はいると訳分からなくなる低脳はC
そういうのがはいっても効率的に扱える奴はC++

既にすみわけは出来てるCとC++の中間くらいの言語が存在しないってだけで
そんなのあってもなくてもどちらでもいい
いま一番Cの代替になる可能性が高いのはGO

5 :uy:2012/08/23(木) 23:55:19.82
営利目的で言語は作ったほうがいいよ

Cの代替になる言語を作ったら金になるか?

ならないのであれば作る価値はないし、使われる価値もない

金金金金金金金金金金金金金金金金金金金金金金金金金金金金

本物のハッカーとかそんなもの関係ない、
金の力が人の学習意欲をかりたたせる
どんな雑魚でも生活のためならC++言語でもなんだろうと使いこなす
本物の天才が金を得るためにプログラムを組む
いくら優秀な言語があっても、金から遠ざかれば使われない

6 :デフォルトの名無しさん:2012/08/24(金) 00:28:39.62
で、C/C++に代わる低級言語としての提案は?

7 :uY:2012/08/24(金) 01:38:47.62
ネイティブはけるruby

8 :デフォルトの名無しさん:2012/08/24(金) 06:57:07.24
Objective C でいいだろ。

9 :デフォルトの名無しさん:2012/08/24(金) 08:36:44.50
おれもObjectiveCでいいと思うね

10 :デフォルトの名無しさん:2012/08/24(金) 08:39:30.70
<ハードウェアを直接操作する低レベルの記述が可能
ってことは移植性は要らないんだよね
アセンブラでいいんじゃね

11 :デフォルトの名無しさん:2012/08/24(金) 09:17:19.82
アセンブラを超進化させるのが近道じゃね?

12 :デフォルトの名無しさん:2012/08/24(金) 09:19:05.28
おれもアセンブラでいいと思うね

13 :uY:2012/08/24(金) 10:04:10.55
マジレすすると、
しっかりとC++技術者を育てたらいい
C++が使えない は甘え

14 :デフォルトの名無しさん:2012/08/24(金) 11:14:03.28
アセンブラに化け物なマクロ入れるだけでいいんじゃねぇの?
欲しい機能はマクロで定義


15 :デフォルトの名無しさん:2012/08/24(金) 11:51:37.60
C言語の価値もプリプロセッサにあるんだよね
アセンブラにもマクロあるじゃないの
ただ、アセンブラ毎にマクロの仕様が違ったりするから
併合しようとした人はこれまで何人もいた
でも結局使わないんだわそんなの

16 :デフォルトの名無しさん:2012/08/24(金) 13:31:30.10
CLASSは欲しいのかな?

17 :デフォルトの名無しさん:2012/08/24(金) 13:55:21.91
uyが社畜みたいな発言をしていて雑魚くさい。

18 :デフォルトの名無しさん:2012/08/24(金) 15:08:59.25
C++は、仮想関数テーブルがいまいち。

19 :デフォルトの名無しさん:2012/08/24(金) 15:23:43.08
なんでC++は仮想関数使うと異様に遅くなるんだろう。

20 :デフォルトの名無しさん:2012/08/24(金) 15:26:50.19
アセンブラマクロに強力な型機能を持たせて、ついでに多態性も付けて
単純な継承・カプセル化程度をサポートすればおk?

21 :デフォルトの名無しさん:2012/08/24(金) 15:30:13.75
アセンブラマクロでイテレータつくれる?

22 :デフォルトの名無しさん:2012/08/25(土) 21:09:56.18
どういう風に使いたいのか仕様 plz.

23 :デフォルトの名無しさん:2012/08/27(月) 01:11:28.07
kuin最強伝説

24 :uy:2012/08/28(火) 01:52:32.53
プログラミングは最終的にはアセンブラになるかもしれないね
よく考えたら無理じゃない気がしてきた

25 :デフォルトの名無しさん:2012/08/28(火) 02:11:48.33
せっかくよく考えたのなら、その考えを文章にしてみよう。
鉄は熱いうちに打て。

26 :デフォルトの名無しさん:2012/08/28(火) 09:08:24.23
>>24
それは、高級言語プログラミングしてる時に、
頭の中でアセンブラが思い浮かぶような人だけだよ。


27 :デフォルトの名無しさん:2012/08/28(火) 09:23:08.58
C/C++は高級じゃないと申すか

28 :デフォルトの名無しさん:2012/08/28(火) 10:18:55.39
昔は知らんが
今はCは低級、C++でOOPすれば何とか高級?

29 :デフォルトの名無しさん:2012/08/28(火) 21:32:53.34
恒久

30 :デフォルトの名無しさん:2012/08/28(火) 23:32:52.57
制御対象が十分に抽象化されていれば高級、ベタに見えていれば低級
言語はそれほど関係ない

31 :デフォルトの名無しさん:2012/08/29(水) 21:10:23.64
サーバーサイドjsが持てはやされるぐらいなんだから、
自社サービスを展開してるようなところではc/c++は使われなくなるんじゃないかしら
そういう企業じゃシステム言語はgolangが主流になると思うよ


32 :デフォルトの名無しさん:2012/08/30(木) 09:11:23.27
WebでC/C++は珍しい。
goは当分ならねーよw

33 :デフォルトの名無しさん:2012/09/07(金) 12:59:14.71
いまの言語とか制御構造や予約語の文法以前とか以前に
ライブラリーの便利さと豊富さが基本であって、言語の重要性はあまり関係ない。
同じコードを書くのに少ないコードで実現できる(内部が見えない)
類が抽象化の度合いでどれだけ高機能を呼び出すだけで実装できるかが
重要になっている。
低級なそれは多くの仕組みと手順を細かく表現しなければいけないのだが
高級になれば何も表現しなくても「あれ」「これ」な感覚で作れてしまう。
本当に低級ならば四則演算とか使わずにプログラム作れよサブルーチンという
概念も使うな!

34 :デフォルトの名無しさん:2012/09/07(金) 15:55:23.51
魔法みたいなことが出来る関数があれば終わりですって

35 :デフォルトの名無しさん:2012/09/07(金) 21:58:26.62
Webやスクリプト言語には興味ありません

ハードウェア制御・リアルタイム・マルチコアなどなど
抽象化のための「見えない」コードを書きたいのです

36 :デフォルトの名無しさん:2012/09/08(土) 23:31:28.52
>>33
であれば、具体的にどのようなライブラリが必要と考えるのかを述べるのがこのスレッドの意義である。

「使うな」で終わるのは建設的ではない。前半は良い発言だから、頑張れ。

37 :デフォルトの名無しさん:2012/09/09(日) 10:25:22.63
>>32
ラッパー経由で思いっきり使われてる。

38 :デフォルトの名無しさん:2012/09/09(日) 10:41:47.62
>>37
スクリプト言語もHTTPサーバーもOSもCで書かれてるしな。おもいっきり使われてる。

39 :デフォルトの名無しさん:2013/02/04(月) 16:57:39.03
ある程度モデルになる言語は要るだろ
Objective-C++をモデルにすることを提案する

40 :デフォルトの名無しさん:2013/02/04(月) 22:40:20.04
モデルにすることを提案するだけではなく、どのようにモデルにするのかを提案するともっといいぞ

41 :片山博文MZパンク ◆0lBZNi.Q7evd :2013/02/24(日) 22:49:04.87
局所変数をすべて静的大局変数にするなんてどうだい?

42 :デフォルトの名無しさん:2013/02/24(日) 22:50:35.00
41 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん

43 :デフォルトの名無しさん:2013/02/24(日) 23:04:15.58
>>41
その効果は?

44 :デフォルトの名無しさん:2013/03/21(木) 16:10:03.33
ポストPHP/CGIを狙うような静的型付き言語を開発したいがそういうスレはないものか

45 :デフォルトの名無しさん:2013/03/21(木) 16:47:09.32
(どうやら俺の他にはいないようだな…しめしめ、勝った)

46 :デフォルトの名無しさん:2013/04/01(月) 00:11:54.06
C/C++なくても、型付Lispが開発されて、もっと遅かったであろう。

47 :デフォルトの名無しさん:2013/04/01(月) 11:36:10.71
実用化されるまで10年以上遅れていたであろう。
ていうかPCという概念すら生まれなかったであろう。

48 :デフォルトの名無しさん:2013/04/01(月) 23:04:46.27
概念w

49 :デフォルトの名無しさん:2013/04/02(火) 14:56:01.95
Cができるようになる前から安価なPCってあったんだっけか

50 :デフォルトの名無しさん:2013/04/03(水) 00:57:47.82
ない

51 :デフォルトの名無しさん:2013/04/05(金) 23:47:23.21
エレキてきバグでまくるだろ

52 :デフォルトの名無しさん:2013/04/07(日) 05:37:26.11
41みたいなことをするとバグ、多発。

53 :デフォルトの名無しさん:2013/04/07(日) 22:19:02.62
CもC++も高級言語で、スレタイがそもそも間違ってるのに、いつまで続けてるんだ。
マシンコードそのままなのと、アセンブリ言語だけが低級言語ということも知らないのか。
コンピュータの勉強して最初にわかることじゃないか。
それに開発したいのはどういう目的があってのことなのかね。

54 :デフォルトの名無しさん:2013/04/07(日) 22:40:29.84
>>53
スレ違い

55 :デフォルトの名無しさん:2013/04/10(水) 19:39:49.93
オブジェクト思考なんて何十年も前
今は最新なんなんだ?

56 :デフォルトの名無しさん:2013/04/10(水) 19:46:59.55
ラムダ関数

57 :デフォルトの名無しさん:2013/04/10(水) 21:27:07.91
>>55
アスペクト指向というのがあるがまだ実用化されてない

アスペルガー指向の方が多くないか?wwww

58 :デフォルトの名無しさん:2013/04/11(木) 05:53:27.68
なるほろ
サンクス

59 :デフォルトの名無しさん:2013/04/11(木) 07:32:56.17
アスペクト指向はソースコードのXML化といって差し支えない
XMLタグの量を増やせばできることも増えるがソースは冗長で不細工になる。
OWL推論でコンポーネント間が繋がれば、超冗長だが再利用しやすくなったりするかもな

<Entity name="DBTable">
class Persons {}
</Entity>

@Entity(name="DBTable")
class Persons

60 :デフォルトの名無しさん:2013/04/11(木) 21:45:02.95
型付きlisp風言語作ればいいじゃんて話だろ、まとめると

61 :デフォルトの名無しさん:2013/04/11(木) 22:22:45.21
関数コール時値やアドレス値をスタックやレジスタへ積み積みする暗黙に埋め込まれるコードもアスペクト
暗黙だけでなくあちこちにユーザーコードまで混ぜれるようにしちまう開放的且つカオス世界への招待を
有難いと感じるかどうかが別れめっスね

62 :デフォルトの名無しさん:2013/04/12(金) 12:58:38.54
自分一人でやる分にはいいが複数人でやるとたちまち世界が破滅する

63 :デフォルトの名無しさん:2013/04/13(土) 13:20:43.36
構文を工夫して文字数を減らしても仕方ないし、XML/アスペクト指向も終わった。
最近の新しい発想というとKVSぐらいだな。1人でプログラミングすると効率悪いが、
多人数での分業に向いている言語とかいんじゃね?

64 :デフォルトの名無しさん:2013/04/14(日) 01:15:12.51
Javaのことですねわかります

65 :デフォルトの名無しさん:2013/04/14(日) 16:08:49.81
>>59
なにか変だと思ったら DIとAOPを混同しているな

66 :デフォルトの名無しさん:2013/04/14(日) 23:03:21.36
JPAとかEntityBeanはDIなのか?

67 :デフォルトの名無しさん:2013/04/24(水) 19:52:56.12
>>54
スレ通りの発言だろうが

68 :デフォルトの名無しさん:2013/04/24(水) 20:03:03.76
>>53>>67 って同一人物?
C++ はともかく, C って高級アセンブラだろ?
立派な低級言語じゃん

69 :デフォルトの名無しさん:2013/04/26(金) 09:31:25.15
Cは読める低級

70 :デフォルトの名無しさん:2013/04/28(日) 02:58:49.44
D言語でいいじゃん

71 :デフォルトの名無しさん:2013/04/28(日) 10:17:28.30
E言語でEじゃん

72 :デフォルトの名無しさん:2013/05/23(木) 12:53:53.21
>>70
似非システム言語はすっこんでてください

73 :デフォルトの名無しさん:2013/08/06(火) NY:AN:NY.AN
Cを高級アセンブラという人はアセンブラを知らない。
高級アセンブラは p-code や IL。

74 :デフォルトの名無しさん:2013/08/24(土) NY:AN:NY.AN
俺は C よりアセンブラを先にやったクチだが
C はまっとうな高級アセンブラだよ

ソフトウエアで構築したVMが機械語のつもりのやつこそ
diagnose 命令を知らない

75 :デフォルトの名無しさん:2013/08/25(日) NY:AN:NY.AN
初期のCは高級アセンブラと言って良かったが、最新のC/C++はインラインアセンブラがサポートされなくなってきたので
高級アセンブラとは言いにくくなってきた。Cはロジックのわかりやすさを優先して、CPUのレジスタを意識させない構文に
してしまったから、レジスタを意識しなくてよくなった反面、フラグを見ることもできないし、CPUの固有命令を使うことも
できない。インラインアセンブラも使えなくなってきたので、いろいろある言語の1つに落ちぶれてしまった。
簡単なサンプルをCとアセンブラで書いて比較すると速度が違うし、実行ファイルサイズも大きく違う。
Cは非常に無駄が多いということだ。

76 :デフォルトの名無しさん:2013/08/25(日) NY:AN:NY.AN
インラインアセンブラは関係ない
特権命令が必要な箇所はもともとアセンブラで書いてリンクするのが正統派で
Cソースの中に直接ニーモニックを書くのは邪道である

フラグやローテートはアーキテクチャによる相違が強烈なので抽象化しなかっただけ
レジスタ名称もそうで、このためアセンブラはオンレジスタ、Cはオンメモリという相違が生じた
アセンブラを習得している者がCを憶えるとき自動変数に違和感を持つのはこのためで
いついつからCがそうなってしまったわけではなく、始めからそうなのだ

Hello C world のサイズだけ見てCそのものが非効率という人は
サイズの違いの主成分を知らないだけ

77 :デフォルトの名無しさん:2013/08/25(日) NY:AN:NY.AN
>>76
> Cソースの中に直接ニーモニックを書くのは邪道である
今まで正式な文法としてインラインが書けたのに、それを勝手に邪道と言い切るのはどうかと。
単なる個人的意見だよね。

> フラグやローテートはアーキテクチャによる相違が強烈なので抽象化しなかっただけ
> いついつからCがそうなってしまったわけではなく、始めからそうなのだ
もちろんわかってるよ。別にCの文法に文句を言いたいわけじゃないから。
でも抽象化できるというなら、ニーモニックを直接書ける仕様にして、
それをラップ関数で覆って見えなくしてライブラリに入れてしまえば
Cで書いたソースはそのまま使えるよね。

> Hello C world のサイズだけ見てCそのものが非効率という人は
> サイズの違いの主成分を知らないだけ
その主成分を知ってる人に聞きたいんだけど、アセンブラでは不要で、
Cならその主成分とやらが必要という根拠は何か教えてくれないかな。

78 :デフォルトの名無しさん:2013/08/26(月) NY:AN:NY.AN
インラインアセンブラなら、ふつうのユーザーもビルドで悩まないですむ

移植性を重視した言語なのにasm文があるのは何故ですか?
asm文は、Dの関数内に直接アセンブリのコードを書き込むことを可能にします。
アセンブラのコードは自明に移植性のないものとなりますが、しかし、
システムアプリの開発には非常に便利なものです。
システムアプリは 大なり小なりシステム依存のコードを含むことになるので、
インラインアセンブラは 大した問題にはなりません。
インラインアセンブラは、CPUの特殊命令や フラグビットへのアクセスによって、
特別な処理の場合や、 限界までコードを最適化したいときに役立ちます。

Cコンパイラがインラインアセンブラ機能を持つ前は、 私は外部のアセンブラを使っていました。
アセンブラは 沢山の、本当に沢山のバージョンがあって、
各バージョン毎に微妙に 構文が違っていたりバグがあったりコマンドラインの文法まで
変わっていたりして、非常に残念な思いをしました。 つまり、アセンブラの必要なコードは、
ユーザーには安心してビルドはできなかったのです。
インラインアセンブラができてからは、そんなことはなくなりました。

よくある質問 - プログラミング言語 D (日本語訳)
http://www.kmonos.net/alang/d/faq.html#q1_1

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) が処理系定義だしねえ

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

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

> 私は外部のアセンブラを使っていました。
過去形ということは「あの問題」を知らないわけだね
このくだり、突っ込みどころ多すぎて投げたわ

82 :デフォルトの名無しさん:2013/08/26(月) NY:AN:NY.AN
>>80
なんだ、ただの知ったか君か、ご苦労w
もう来なくていいから

83 :デフォルトの名無しさん:2013/08/26(月) NY:AN:NY.AN
>>81
おいおい、>>78はD言語のFAQのコピペだぞ。つまり「私」というのはD言語の開発者だ。
どう見てもおまいよりコンパイラの内部に詳しい。
「あの問題」とかわけわかんないこと言ってんじゃないぞw
知ったか君はろくに文章も読めないから困る。話にならんな。

84 :デフォルトの名無しさん:2013/08/26(月) NY:AN:NY.AN
>>80
日本語不自由な人みたいなので wrap function と書けば理解できるのかな。在日君ですか?

Cがアセンブラより太る原因は逆アセなんかしなくてもわかるんだが。
おまいさあ、Cコンパイラのソース一度も読んだことないだろw
「低レベルなやつめ」

85 :デフォルトの名無しさん:2013/08/26(月) NY:AN:NY.AN
シッタカ君に権威主義君か
どんどんやれ

86 :デフォルトの名無しさん:2013/08/26(月) NY:AN:NY.AN
淫乱NISSENブラ

87 :デフォルトの名無しさん:2013/08/26(月) NY:AN:NY.AN
Cのファイルサイズサイズ語るならリンカだろ?
gcc読むにしてもCコンパイラ部分は読まねえよ。
コンパイラなら普通にアセンブリ吐くから逆アセンブルもしねえ。

88 :デフォルトの名無しさん:2013/08/26(月) NY:AN:NY.AN
>>84
いーや、逆アセよまなきゃ10倍にもなる理由は説明できない
コンパイラのソースとか何言ってるんだ? 頭が発狂したのか?

89 :デフォルトの名無しさん:2013/08/26(月) NY:AN:NY.AN
具体的な説明でもobjdumpで十分だろ。
逆アセンブルしたコードなんて読まねえよ低能。

90 :デフォルトの名無しさん:2013/08/26(月) NY:AN:NY.AN
逆汗読めねえ低脳でもリンカのマップくらい読めよせめて

91 :デフォルトの名無しさん:2013/08/26(月) NY:AN:NY.AN
ついに逆アセンブルに意味がないことを認めてしまった低能w

92 :デフォルトの名無しさん:2013/08/26(月) NY:AN:NY.AN
は? 10倍という定量的な値に反論できないのはてめえだろうが

93 :デフォルトの名無しさん:2013/08/26(月) NY:AN:NY.AN
説明出来れば十分だろ?
構造とシンボル情報見せてlibcの初期化コードが含まれているで十分じゃん
サイズ知るためだけに逆アセンブルコード読む必要なんて全然ないだろw
どこに必要あるのか言ってみろよ低能w

94 :デフォルトの名無しさん:2013/08/26(月) NY:AN:NY.AN
それは10倍にならないコードを示せれば充分だ
Hello World しかできねーバカにそれは無理だが

95 :デフォルトの名無しさん:2013/08/26(月) NY:AN:NY.AN
このまま逆アセンブルが必要である具体的な理由を示せないなら負けだぞ低能

96 :デフォルトの名無しさん:2013/08/26(月) NY:AN:NY.AN
別に負けで結構だ
有料なノウハウをただでぶちまける必要はない

97 :デフォルトの名無しさん:2013/08/26(月) NY:AN:NY.AN
具体的に言えないどころかあえて言わないだってw
ここまで否定してきて根拠も出せないw
まさに負け犬の遠吠えw

98 :1:2013/09/25(水) 16:34:17.92
readmemoryとか
writememoryがどうなるのだろうか

99 :デフォルトの名無しさん:2013/09/26(木) 02:16:01.75
なんの話?

100 :デフォルトの名無しさん:2013/09/26(木) 10:13:38.72
ナンではありません

101 :デフォルトの名無しさん: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の轍そのもの

104 :デフォルトの名無しさん:2013/09/29(日) 17:46:09.34
開発環境は言語のうち
つまりVisualStudioを超える開発環境を作れ

105 :デフォルトの名無しさん:2013/09/29(日) 21:16:37.17
>>103
Javaも割とその思想が入ってる
まあJavaの場合はC++がPGを過信してることへのアンチテーゼもあるんだろうけど

106 :デフォルトの名無しさん: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

110 :デフォルトの名無しさん:2013/10/12(土) 15:22:36.71
大事なのは俺TUEEE感に浸れるかどうかだから
既存のものを流用するなどというのは根本から間違っている

111 :デフォルトの名無しさん:2013/10/12(土) 23:17:49.12
トランスコーダから始めよう。
謎言語toASMが最終目標だ!

112 :デフォルトの名無しさん:2013/10/13(日) 20:21:01.89
>>110
既存の言語を使えと言って思考停止するのは間違っているが
既存のものを流用するのは間違っていない。

113 :デフォルトの名無しさん: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言語スレで構文解析の話題があった時、上からモノを言ってくるので
凄い人だと思って話を聞いてたら、実は初心者だった。

117 :デフォルトの名無しさん:2013/10/14(月) 10:14:02.62
人の話は板違いです。
ご遠慮ください。

118 :デフォルトの名無しさん:2014/01/24(金) 09:22:14.15
ステートマシン風な言語でも作ればいいじゃん。

119 :デフォルトの名無しさん:2014/01/25(土) 10:49:14.98
いいね。先ずは具体的なアイディアを聞かせて。

120 :デフォルトの名無しさん:2014/01/25(土) 22:33:43.03
欲しい言語機能は全てRUSTに入っていた

121 :デフォルトの名無しさん:2014/01/28(火) 00:09:58.48
RUSTは正解に近い感じがする。

122 :デフォルトの名無しさん:2014/01/29(水) 08:34:22.46
RUSTってC++と比較されるけど低レベル組み込み系もいけんの?

123 :デフォルトの名無しさん:2014/01/29(水) 22:00:57.19
C++、stlが許されるだけのリソースがあるなら大丈夫そうだ。

124 :デフォルトの名無しさん:2014/02/03(月) 13:34:51.37
コンパイル時リフレクション(javaでいうアノテーション・プロセッサ)がほしいな
シリアライザーとか自動でつくってほしい

125 :デフォルトの名無しさん:2014/03/20(木) 12:59:23.14 ID:nanBO4Fq
C++は低級言語なのか?

126 :デフォルトの名無しさん:2014/03/22(土) 23:40:16.72 ID:kAjP8TsQ
Dがもっと流行れば解決する。

127 :デフォルトの名無しさん:2014/06/22(日) 12:30:37.05 ID:K+9brE5n
Dはないわ。

128 :デフォルトの名無しさん:2014/06/22(日) 15:43:07.83 ID:M7LQdNqY
LLVM IRみたいのでいいだろ。

129 :デフォルトの名無しさん:2014/09/01(月) 15:52:05.30 ID:nQghNeel
vecterはc、c++から外して欲しい、元はjavaだろ、イテレータとか。

130 :デフォルトの名無しさん:2014/09/01(月) 16:52:48.36 ID:PsPID0hw
Javaは外した方がいいというのは、銅管だ。

131 :デフォルトの名無しさん:2014/09/01(月) 19:20:16.43 ID:HFXNgtth
 ___ _
  ヽo,´-'─ 、 ♪
   r, "~~~~"ヽ
   i. ,'ノレノレ!レ〉    ☆ 日本のカクブソウは絶対に必須です ☆
 __ '!从.゚ ヮ゚ノル   総務省の『憲法改正国民投票法』のURLです。
 ゝン〈(つY_i(つ http://www.soumu.go.jp/senkyo/kokumin_touhyou/index.html
  `,.く,§_,_,ゝ,
   ~i_ンイノ

132 :デフォルトの名無しさん:2014/09/02(火) 03:13:01.39 ID:CRzNoeOm
低級言語はアセンブラと初期のCだけだろう

133 :デフォルトの名無しさん:2014/09/18(木) 13:31:28.77 ID:f9spcQ/x
言語作ってるんだけど、
コンパイラ作る時って一旦アセンブラ出力してからmasmとかに機械語出力してもらった方がいいの?
masm自身はアセンブラコードの最適化とかはしてくれなそうだしそのまま機械語出力したいんだけど

134 :デフォルトの名無しさん:2014/09/18(木) 14:08:33.42 ID:xVnvrnxl
アセンブラ介したほうが少なくともデバッグはしやすいと思うぞ

135 :デフォルトの名無しさん:2014/09/18(木) 14:10:35.16 ID:H4lZxv/t
そのコンパイラで何ができるもしくは何をやらせるのかも
決めてないんだ

136 :デフォルトの名無しさん:2014/09/18(木) 15:04:00.60 ID:f9spcQ/x
>>134
どれくらいしやすくなる?
命令のバイナリ列を理解しやすい(?)形でアセンブラに1対1で置き換えてデバッグする、っていう手間が省ける程度なら雀の涙という感じ
むしろデバッグするときは結局機械語読むことになるから最初から機械語で出力したほうが理解が早い気もする
それ以上のメリットってなにかあるのかな

>>135
一応決まってるよ
Windows8以降向けのUI・ゲーム開発言語

137 :デフォルトの名無しさん:2014/09/18(木) 15:09:30.18 ID:H4lZxv/t
x86系の命令、16進数で読めるんだ
なら、直接コード出して、ハマりまくったほうがいいかもね

138 :デフォルトの名無しさん:2014/09/18(木) 15:51:05.20 ID:6/jIYBiS
>>136
用途からすると機械語やアセンブラへのコンパイルどころか
C言語+HLSLへのトランスレータが最適解な気もするなあ…
結局、何だかんだでDirectXの関数呼ぶことになりそう

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

何れにしても何層かに処理を分けることにはなるだろうから
いきなり全部やろうとするより、やるべき層をひとつひとつ集中してやったほうが

139 :デフォルトの名無しさん:2014/09/18(木) 16:29:47.38 ID:f9spcQ/x
>>137
わーい

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

ううーん。とりあえずCに翻訳してコンパイルして、でてきたアセンブリを研究してみようかな
ありがとう

140 :デフォルトの名無しさん:2014/09/18(木) 17:02:46.70 ID:R7gYP1+N
LLVMという選択肢は

141 :デフォルトの名無しさん:2014/09/19(金) 02:00:51.26 ID:hElo33NJ
本スレは、コンパイラをどのように作るか、ではなく、どのような言語仕様にするか、を重視しています。

コンパイラの話が終わったら、言語仕様の話をしましょう。

142 :デフォルトの名無しさん:2014/09/19(金) 02:50:49.06 ID:uVs1JVYc
LLVM/Clang 実践活用 ハンドブック、出村成和、2014


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

日本語訳です。ただし、翻訳は適当と書いてある

143 :133:2014/09/19(金) 13:25:22.42 ID:NxcXgwij
>>140,142
奥が深そうだねえ
どれくらいのパフォーマンス出してくれるのか想像つかない

>>141
C/C++並の低レベルプログラミングができて、人間が話せて、かつ人工知能も理解しやすいような言語という設定でいろいろ考えてる
自然言語に声調というのがあって、これは抽象化すれば音階としても処理できるから、人工知能にも扱いやすいし、
音階の配列である声調は命令の配列である機械語とも相性が良い。

144 :142:2014/09/20(土) 02:06:52.74 ID:U6pDraTi
LLVMはフロント・ミドル・バックの、3つの部分に独立している
フロントはプログラミング言語とコンパイラ
Clangなら、C/C++ → IR

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

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

>142の本を買うのが速い

145 :デフォルトの名無しさん:2014/09/21(日) 17:41:47.69 ID:ReekRvFB
>>143
「人工知能も理解しやすい」というのはコンパイラにとって効率が良いという意味?

146 :133:2014/09/22(月) 19:53:03.15 ID:czCyS6sZ
>>145
人間との会話のときに相互の情報伝達の効率がいいということ
わりと強めの人工知能を想定している

147 :デフォルトの名無しさん:2014/09/22(月) 21:27:22.05 ID:Q0QJp/T/
>>146
その効率はプログラミング言語としてどういう意味を持つの?

148 :デフォルトの名無しさん:2014/09/22(月) 21:58:15.46 ID:EiJEHJdV
人口無能を作ってるんでは?

149 :デフォルトの名無しさん:2014/09/22(月) 22:47:26.85 ID:LvPIFofq
>人間との会話のときに相互の情報伝達の効率がいい

いわゆるドラえもんをつくる気か。すごいな。

150 :デフォルトの名無しさん:2014/09/22(月) 23:14:21.82 ID:ufGb4z7Y
何でも良いけど、動作速度がトロくて高級言語がとかぬかして
ジェネリック要求してくるLL使いが鬱陶しいわ

151 :デフォルトの名無しさん:2014/09/23(火) 00:44:54.05 ID:75K7vBZU
>>1
Cは高級言語だ。
そんなことも知らないのか。

152 :133:2014/09/23(火) 00:48:58.01 ID:fk2c4+Og
>>147
基本的な記述はより直感的になるし、抽象度の高い表現もそのまま扱える
プログラミングと会話は違うけど、そこをあえて統一した規格で表現できるような言語仕様
>>2にも書いてあるように既存のプログラミング言語にないような機能でプログラム書いてみるの楽しいでしょ

>>149
そうそうそんな感じ

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

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

それと、作りたいのは「言語」でいいんだよね?コンパイル可能な自然言語とか。

154 :デフォルトの名無しさん:2014/09/23(火) 12:57:04.95 ID:RZgQ8Ezi
しゃべればしゃべるほど非マの妄言と化していくな
板違いだべ

155 :133:2014/09/23(火) 13:48:39.80 ID:fk2c4+Og
>>153
純粋なコンパイラというよりはコンパイラとインタプリタを統合した処理系だね。
Prologのような対話(厳密にはうちの言語のは対話ではないけど似たようなもの)を繰り返してプログラミングすることもできる。
その場合、処理系は対話によって学習できるし、学習したところから発話もするように考えてるから人工知能と呼んでいる。
人工知能にとって直感的っていうのは、手続き型の制御フローに沿った発話がそのままできるってこと。
たとえばうちの言語はそもそも語順がかなり自由だから、手続き型プログラミング的な構文をそのまま人間の言葉として理解できる、とか。

一言で言えば言語だね。芸術言語とプログラミング言語を足したようなものだよ。

156 :デフォルトの名無しさん:2014/09/23(火) 19:40:06.05 ID:D7BulMBA
>>155
OK。現状ではコンセプトを理解するのが難しいということがわかった。

早く具体的な言語仕様を知りたいので、ぜひその議論を進めてほしい。

157 :デフォルトの名無しさん:2014/09/23(火) 22:25:50.92 ID:11MYg8X9
>>155
実験言語で終わりそうな悪寒

158 :デフォルトの名無しさん:2014/09/23(火) 23:09:33.36 ID:beG9zooH
エプロンおねえさん、めざしてるのかしら

159 :デフォルトの名無しさん:2014/09/24(水) 22:12:59.34 ID:1vKhut4O
Cは高級言語であって、スレタイがすでに間違ってるのに、お前ら
はあほか、こんなものを続けて何の意味があるんだ。

160 :デフォルトの名無しさん:2014/09/24(水) 23:07:20.55 ID:EketT0f3
Cは低級言語だろ何言ってんだ

161 :デフォルトの名無しさん:2014/09/24(水) 23:11:42.12 ID:B6bZpcqc
高水準言語の基準は人間がそのまま動作を読み取れる言語だろ
よってC言語は当然高水準言語

162 :デフォルトの名無しさん:2014/09/24(水) 23:14:48.57 ID:uTgX/qQw
ハードウェアを直接操作できるのが低級、できないのは低脳

163 :デフォルトの名無しさん:2014/09/25(木) 01:17:10.50 ID:erkjRt9/
高級、低級の呼び名はどうでもいい。C言語を低級言語と呼びたくないならそれでも構わない。そのことに大した意味はない。

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

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

低級言語という言葉が嫌なら、ハナモゲラでもゲゲボでも好きな呼び方をすればよい。
但し、呼び方を使用する前に、定義を明確にすること。

164 :デフォルトの名無しさん:2014/09/25(木) 03:06:49.15 ID:Izg0GKzf
Cは昔から「高級アセンブラ」と呼ばれていたと思ったが

165 :133:2014/09/25(木) 03:14:33.45 ID:8qvU6Kt5
>>157
どうやっても個人開発だから実験言語までいけばいいところだね。
それでむしろ実用的な最適化とかはちゃんとノウハウのあるところに開発してもらうのが一番いいんだけどな。

166 :デフォルトの名無しさん:2014/09/25(木) 04:07:23.07 ID: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

167 :デフォルトの名無しさん:2014/09/25(木) 04:09:06.54 ID:997Wnr2J
諸説あるよ

"middle-level language"
Googleで検索

168 :デフォルトの名無しさん:2014/09/25(木) 04:18:01.41 ID:997Wnr2J
各CPUのアセンブラを勉強しなくていいから、Cは、高級な感じがするが、
オブジェクト指向言語ではないし、セキュリティが不足している(実際は、それもCで達成できるはず)ようにみえるから、
Cは、高級言語ではない。

169 :デフォルトの名無しさん:2014/09/25(木) 06:36:29.36 ID:erkjRt9/
ID:997Wnr2J には、このスレでCを「高級言語ではない」と呼ぶ権利を与えます。どうぞご自由に。

170 :デフォルトの名無しさん:2014/09/25(木) 09:38:34.27 ID:H7xxDOL8
高級言語ではあるけど、メモリアドレスを直接指定しての書き込みや
必要とあらばインラインアセンブラも使える言語って意味だろ

更にC言語の場合、アドレスの抽象化があまりされていなくて
それらが必要でなくともアドレスを扱うことになるからそう言われるんだろう

171 :デフォルトの名無しさん:2014/09/25(木) 12:42:03.78 ID:FK6wklg/
高級言語って30年前の言葉だからな。C/C++より上のいまどきの言語は超高級言語だろ。

172 :デフォルトの名無しさん:2014/09/25(木) 12:46:26.61 ID:GQOH8SqT
肉体労働向け言語に進化しましたから、超高級とかいってるのは

173 :デフォルトの名無しさん:2014/09/25(木) 12:58:54.18 ID:aCIY3SmK
高級言語だから定休知能では扱えないということはなく
むしろ反比例の関係にある

174 :デフォルトの名無しさん:2014/09/25(木) 13:15:02.54 ID:FK6wklg/
マ板に高級=デラックスと勘違いしてるやつがいるとは。

175 :デフォルトの名無しさん:2014/09/25(木) 13:24:45.09 ID:GQOH8SqT
ここム版ですが

176 :デフォルトの名無しさん:2014/09/25(木) 13:56:45.69 ID:aCIY3SmK
マイッタ

177 :デフォルトの名無しさん:2014/09/25(木) 20:29:44.52 ID:q7N5Q3ZR
>>2->>3を読む限り>1の望みを満たして居るのはかつてとは段違いに美しく高水準に整えられた今時のアセンブラと思われる

178 :あぼーん:あぼーん
あぼーん

179 :デフォルトの名無しさん:2014/10/17(金) 03:52:20.34 ID:DGojcH6F
配列を表現する場合無限にメモリーなりCPUなりが利用できる場合リストになるよね
数値の表現も
色々な型がサポートされている時点で低級言語じゃないか
細かいリストや配列の加工操作がしたいんじゃなくて
もっと抽象的に状態に対する結果が欲しい
高級言語と呼ばれるものも抽象化で捉えると低級言語?

180 :デフォルトの名無しさん:2014/10/17(金) 09:18:32.72 ID:Z0zTp1Pd
各CPUを勉強するのが低級言語

181 :デフォルトの名無しさん:2014/10/17(金) 09:23:07.84 ID:Z0zTp1Pd
ギガヘルツとか、正気か? とおもうぞ

182 :デフォルトの名無しさん:2014/10/18(土) 20:13:08.37 ID:ugB2Qpg9
何の話?

183 :デフォルトの名無しさん:2014/10/19(日) 13:43:57.95 ID:2X3kG3QA
PCは15年ぐらい前から、スマホは5年ぐらい前から、ギガヘルツ超えのCPUが載ってるけど
電子レンジもWi-FiもBluetoothも2〜5ギガヘルツの電波出してるけど
正気か? とおもうか?

184 :デフォルトの名無しさん:2014/10/19(日) 13:51:13.18 ID:NuKVNm4T
>>183
衛星とかFWA無線とかもっと速かった気が

185 :デフォルトの名無しさん:2014/10/19(日) 14:13:12.90 ID:Y2JhTmAB
ムーアの法則で想定内。

186 :デフォルトの名無しさん:2014/10/20(月) 02:31:53.48 ID:QkxWZYWv
低級言語って
言語の基本機能だけじゃまともなアプリ作るの苦労するって言語ってこと?

187 :デフォルトの名無しさん:2014/10/20(月) 04:08:06.24 ID:WXuTs7FD
低いレイヤにアクセスすることが前提の言語な
プログラミングにおける低級高級は優劣の話ではなくレイヤの話だから

188 :デフォルトの名無しさん:2014/10/20(月) 04:37:34.43 ID:QkxWZYWv
低レイヤってOSやハードウェアと直接やり取りするって感じ?

189 :デフォルトの名無しさん:2014/10/20(月) 08:37:55.31 ID:4bxYYw/L
このスレとは違うが
一般に、低級言語はアセンブリ、C言語以上の言語は高級言語。

190 :デフォルトの名無しさん:2014/10/20(月) 11:11:46.78 ID:ysyLgJvq
超高級言語クレとは言わないけど
高高級言語くらい欲しいって思ってたら有ったっぽい
通常パターンマッチてif文の羅列やネストで重複した論理演算を省略して速度他を稼ぐんだけど
パターンマッチ指向はその常識がないw
なんて恐ろしい子
その代わりマッチする条件をダラダラ例記すればよいから
直感的にこの組み合わせおかしいとか修正が楽
なんか条件の検出に正規表現?使っている様な雰囲気ワロタw

最適化なしの高級っぽい言語ってマクロの親玉みたいな感じだから
実装は楽じゃないの
デバッグ環境もセットで用意しろと言われるといきなり敷居があがるけど

191 :デフォルトの名無しさん:2014/10/20(月) 11:53:18.42 ID:VnfuINao
>>190
おまえ、ここで何言ってんの?

192 :デフォルトの名無しさん:2014/10/20(月) 11:54:48.29 ID:nHn9rVxH
LLVMそのものやん

193 :デフォルトの名無しさん:2014/10/20(月) 12:28:54.91 ID:LQcjTm7E
僕が考えた最強の言語Swift
各言語の構文てんこ盛りで、LLVM介してコンパイルで、>>1が望むものじゃねーか?

194 :デフォルトの名無しさん:2014/10/20(月) 14:44:33.49 ID:QkxWZYWv
どっかのC/C++コンパイラは一度アセンブリのソースに変換してからオブジェクトコードにするって聞いたな

195 :デフォルトの名無しさん:2014/10/20(月) 15:00:11.99 ID:LUozctHl
よく分からないならROMっとけよ

196 :デフォルトの名無しさん:2014/10/22(水) 02:10:55.06 ID:J+sywfss
>>193
Swiftってデバドラを実用的に書けたりするの?

197 :デフォルトの名無しさん:2014/10/23(木) 15:28:13.97 ID:eDVkHXcG
まっくのでばどらはぜんぶ Swift でかかれるよ

198 :デフォルトの名無しさん:2014/10/26(日) 15:52:31.81 ID:NBo7Xiri
それはすごいね。

199 :デフォルトの名無しさん:2014/10/26(日) 17:44:29.89 ID:16PtYm9d
C言語用のVMを作ればいいじゃん
GCCがVMの役割を持てばいい

200 :デフォルトの名無しさん:2014/10/26(日) 19:34:17.91 ID:8S4QBfQC
そういうのを言葉遊びという

201 :デフォルトの名無しさん:2014/10/26(日) 21:59:29.74 ID:NBo7Xiri
なんでVMの話が出てくるんだよ。

202 :デフォルトの名無しさん:2014/10/30(木) 17:21:21.48 ID:6ICFY1Et
で、どこまでできたの?

203 :デフォルトの名無しさん:2014/11/01(土) 02:45:09.97 ID:nLN9HWuZ


204 :デフォルトの名無しさん:2014/11/01(土) 02:55:02.59 ID:nLN9HWuZ
LLVMは大体分かった。GCや例外が大変。
テンプレートを型推論したくてHaskellの型推論読んでみたりしたけど難しい。
Yacc慣れするために、OCamlYaccでトランスレータ書いたりしてて、
今は文法を洗練させようとしてOCamlの別シンタックスを考えてる。
マクロはPHP的な物も検討中だな。
Swiftは悪くないけど、仕様を自分で弄れないからなぁ。

205 :デフォルトの名無しさん:2014/11/01(土) 13:24:54.74 ID:KRbHmgXS
組み込みの構文と違和感なく構文を拡張できればいいね。

206 :デフォルトの名無しさん:2014/11/01(土) 15:22:57.68 ID:8KfJEHPC
大事なのはエラーメッセージが適切な内容になる構造を持たせることと
実用的なデバッガサポートがあること

作るのを優先するとその辺が落とし穴になる

207 :デフォルトの名無しさん:2014/11/01(土) 16:12:09.26 ID:5yNYNAVX
DylanとNemerleや、天才高校生プログラマの言語とか参考になると言えばなるんだけど
結構難しそうなので、Lisp的な式レベルでどうにか簡単な仕組みが作れれば良いなと思ってます。

エラーメッセージやデバッガは、言語機能がしっかり出来上がってからですね。
位置情報埋め込むと構文木が煩雑になるし、デバッガの為の位置情報の埋め込みも同じ。
その辺頑張ると、それだけで大変なので結局今の言語と同じ物しか作れなくなってしまう。
納得いかない文法で、エラーメッセージとか詰めても結局捨てる事になってしまうし。
エラーメッセージも出来れば、グローバライゼーションして、日本語と英語くらいは用意してあると良いけど。
それも含めて、構文拡張が出来て、うまくデバックできてっていうのは難しい。

208 :デフォルトの名無しさん:2014/11/01(土) 16:31:00.21 ID:5yNYNAVX
エラーメッセージは特に、エラー発生箇所と、エラー内容が作っている箇所からは
特定出来ない事が多いので、エラーが発生するようなテストケース作って
エラー内容のテストをしていけば、良くなるんだろうけど、1つ1つ作り込む感じにしないと
出来なさそうなので大変だけど、ちゃんと作ると、それなりに成果があっていいんでしょうねぇ
Rubyが成功している理由ってそういう所もあったのかなぁ?

209 :デフォルトの名無しさん:2014/11/01(土) 21:11:55.78 ID:KRbHmgXS
>>206
それを実現するのに有効な言語的な特性は?

具体的に提案があるとわかりやすい。

210 :デフォルトの名無しさん:2015/01/15(木) 15:09:15.49 ID:Tduq/91S
おうお前らがモタモタしてるうちにRustが1.0になったぞ
ランタイム&GC不要のメモリ管理、メタプログラミングのための各種機能をゼロ・オーバーヘッドで用意、パターンマッチもついて中々のイケメンに仕上がってるぞ

>>209メジャーな言語と似たものなら大体はいいぞ。関数型はエラーメッセージが分かりにくくて有名だからそれは避けてね

211 :デフォルトの名無しさん:2015/01/30(金) 15:25:40.49 ID:FZMZtl7q
フルスクラッチでcを実装するブログ読んで思わず自分もって感じで始めた
まずは、物凄くシンプルなc言語っぽい仕様書をシコシコ書いてる
実装するまでは中二病に浸れて気持ちいいなこれww
あと、ここの
http://homepage1.nifty.com/herumi/prog/x64.html
c言語でのレジスタの扱いとか読むと
行儀の良さげなレジスタの扱い方とか参考になる
だけど、一番目の整数引数rcxの下り
一番目が実数だった場合はxm0と言う排他的にrcxもしくはxm0で受け渡すって言う意味なのは
サンプルコードを見るまで理解できなかったww
vs2013も入れたけどコンパイルしたあとのアセンブラのコード何処で見るのか不明w

212 :デフォルトの名無しさん:2015/01/30(金) 19:27:40.42 ID:6KJpuSJC
>>1
低級なのはお前の頭だろ。

213 :デフォルトの名無しさん:2015/01/30(金) 22:38:21.69 ID:lIZvN3Ub
.NETでどうでもよくなったよなー
ていれべるなことなんてほんとしなくなったわ

214 :デフォルトの名無しさん:2015/01/31(土) 13:48:59.11 ID:8ogYhJDT
このスレは言語について議論するスレである。

「.NETでていれべるなことしなくなった」というのはこのスレでは的外れな発言である。

215 :デフォルトの名無しさん:2015/01/31(土) 14:20:18.92 ID:1XVXay7T
ほんとにいい時代になったよな

>>213 マ板へお帰り

216 :デフォルトの名無しさん:2015/01/31(土) 22:11:13.99 ID:L/74skj4
新しい言語に何を求める?

217 :デフォルトの名無しさん:2015/01/31(土) 22:16:50.25 ID:pKNd4dfq
モアパワーそしてモアトルクだ

218 :デフォルトの名無しさん:2015/02/01(日) 01:59:02.72 ID:mW2nLdSc
求めたのは低級言語
出来上がったのは低脳言語
無能が開発すると(以下略

vc++とかgccの吐き出すコードってそんなに酷いかな?
吐き出されたコードがアセンブラレベルで手を加えやすいと助かる
そんな感覚はあるけど、小さい規模なら問題ないけど
規模が膨らむと放棄するしかないような

219 :デフォルトの名無しさん:2015/02/02(月) 01:52:40.02 ID:Ond45CKH
このスレは言語仕様を議論するスレであって、処理系が吐き出すコード(バイナリ?)に関しての議論はスレ違い。

220 :デフォルトの名無しさん:2015/02/02(月) 06:05:55.27 ID:j5MISSAc
低級言語ってアセンブラレベルでお手入れができたり
アセンブラに近い処理ができたりCに近い感覚じゃダメなのかね
言語仕様のなかにこれはアセンブラに近い記述でありコードもそれに近いコード
この部分の記述はガベージコレクタを含む重い処理を暗黙で行っていますって感じで
ソースを一見するだけで明確なのが良いのいでは?
変数の宣言でint型をINTと大文字で書いて[0...100]とか範囲指定がある場合とか
var I:INT[0..100]
I=I+101
//一見したときの明確さは変数は大文字、型指定も大文字
//ああ、厳格な範囲検査してるから遅くなるってわかるみたいな

221 :デフォルトの名無しさん:2015/02/07(土) 00:44:43.69 ID:4cqwcWM8
>>220
Objective-C がそんな感じで c / c++ の文法に加えて
コスト大なメッセージパッシングの仕組みを混在させてる

222 :デフォルトの名無しさん:2015/02/07(土) 08:58:43.40 ID:vv4w4L4p
Objective-Cは文法のセンスが致命的に悪い。

223 :デフォルトの名無しさん:2015/02/07(土) 13:22:00.52 ID:opuN7f//
>>220
>低級言語ってアセンブラレベルでお手入れができたり
>アセンブラに近い処理ができたりCに近い感覚じゃダメなのかね

それでいいよ。

で、その時に、それをどのような文法で実現するのか、がこのスレの主題。

いま、Cと同じことができる言語を1から考えたら、Cと全く同じ文法にはならないだろう。
それを考えるのがこのスレの趣旨。

224 :デフォルトの名無しさん:2015/02/07(土) 14:23:19.42 ID:1yVP4+Fh
Luaはどうよ?

225 :デフォルトの名無しさん:2015/02/07(土) 15:44:39.52 ID:TiU3gCM4
どこのスレの誤爆ですか?

226 :デフォルトの名無しさん:2015/02/07(土) 15:57:46.61 ID:IoYj+0nc
>>224
Luaいいね
色々考えるとLuaの再定義っぽい感じかな
Luaってスクリプト言語に分類されるアセンブラみたい

低級言語だから高級っぽい文法でプログラムを書き下して
コンパイルして一旦アセンブラのソースの形で出力
必要ならここで編集
最後にアセンブラさんにお任せみたいな

アセンブラって基本ラベルとメモリー空間があって
そこにどんな形式のどんなデータが格納されているのかは自己責任って世界だから
ここら辺を援護してくれるマクロアセンブラっぽい物が良いのかな

227 :デフォルトの名無しさん:2015/02/19(木) 03:03:32.12 ID:z6pi1paq
あえて言おう
rustでおk

228 :デフォルトの名無しさん:2015/02/26(木) 00:12:09.00 ID:Jk67BKxU
スレ立てから3年が経った今、時は動き出す
ってことではよ何か作ろうや

229 :デフォルトの名無しさん:2015/03/05(木) 23:01:28.56 ID:4N6WK8Zh
最近の名前だけ高級言語スクリプトを見てると仕様も技術者もアホの極地にしか見えん。
その技術者の得意言語でもやっちゃいけないって事を平気でやる

230 :デフォルトの名無しさん:2015/03/05(木) 23:02:51.16 ID:rUbEobY5
>>229
具体的に知りたいな

231 :デフォルトの名無しさん:2015/03/06(金) 18:39:28.57 ID:CTj2h1Ar
逆に超高級言語を作りたいな(´・ω・`)

今一番超高級な言語って何がありますか?

232 :デフォルトの名無しさん:2015/03/06(金) 21:17:39.74 ID:k288A3Sb
haskell

233 :デフォルトの名無しさん:2015/03/06(金) 22:48:44.48 ID:K7+tV1QH
依存型のAgda、Coq、Idris、ATSとか

234 :デフォルトの名無しさん:2015/03/07(土) 10:12:36.84 ID:pum8dd/R
ここは勉強になるスレだぬ
>>233聞いたこと無いので検索してみるw
>>232キチぴーご用達なww

235 :デフォルトの名無しさん:2015/03/08(日) 19:10:07.23 ID:KcdPJfzn
日本語かな

236 :デフォルトの名無しさん:2015/03/08(日) 23:03:34.99 ID:52zFOAkV
マイナーな言語は習得が大変なことと、わからないことがあったとき情報やノウハウがないので
全部自分で何とかしないといけない。普及している言語の中から好きなのを選んで使いこなすのが一番いいよ。

237 :デフォルトの名無しさん:2015/03/08(日) 23:13:29.78 ID:mm6WxmZr
マイナーだけどメジャーになりそうなら本書いて印税うはうは

238 :デフォルトの名無しさん:2015/03/19(木) 21:48:47.69 ID:QTBsG6tP
高級言語を使いこなすってC++を使いこなすより大変じゃないのか?
で結局パワーではC++に敵わない

239 :デフォルトの名無しさん:2015/03/20(金) 16:42:34.97 ID:sriWfzYS
>>238
C++ほど大変な高級言語はなかなか無いと思うぞ

240 :デフォルトの名無しさん:2015/03/20(金) 19:26:50.44 ID:e2IVv9/F
C++ほど変態な高級言語はなかなか無いと思うぞ

241 :デフォルトの名無しさん:2015/03/20(金) 22:14:20.35 ID:1BR7B8ZR
C++ほど変変な高級言語はなかなか無いと思うぞ

242 :デフォルトの名無しさん:2015/03/21(土) 00:46:15.62 ID:m0LUk3nX
c++のunsigned long 型の変数を >=0で評価するとーの値が存在しないので必ずTureになって
forループが無限ループになるバグの説明が面白かった
アセンブラならループのインデックスを引いたあとキャリーフラグ調べて分岐じゃないか
ループ離脱の条件が単純比較じゃなくて条件式を容認してるからだろうけど

243 :デフォルトの名無しさん:2015/03/21(土) 02:54:48.44 ID:x0x7jBK5
Cの骨にテンプレートの肉を詰め、OOの毛皮を被った化物だよ
骨だけ使った料理もできるし肉を焼いてもいいし、毛皮からコートを作ったっていいが、
他人が作ったものはまだ蠢いているかもしれないから怖い。

244 :デフォルトの名無しさん:2015/03/21(土) 07:42:06.13 ID:zBl3Ii3W
>>242
そもそもループカウンタにunsignedを使うこと自体、バグと言うべき話なのでわないかと・・・

245 :デフォルトの名無しさん:2015/03/21(土) 10:14:12.91 ID:9V6972Qg
必ずTureになるのが1番の問題

246 :デフォルトの名無しさん:2015/03/21(土) 11:05:05.60 ID:rA11USYH
×Ture
○True

247 :デフォルトの名無しさん:2015/03/21(土) 12:01:32.67 ID:/IY/BI0W
while(true)で評価するとーの値が変化しないので必ずTureになって
whileループが無限ループになるバグの説明が面白かった
ループ離脱の条件が条件式だけじゃなくてbreakやreturnを容認してるからだろうけど

248 :デフォルトの名無しさん:2015/03/21(土) 14:50:37.16 ID:TeX2vL/Q
高級な変態というと・・・女体盛りで大トロとかヒラメの縁側を使う感じか。

249 :デフォルトの名無しさん:2015/03/21(土) 15:50:58.96 ID:xKri6eTm
>>244
増えていくカウンタなら問題はない
減っていくカウンタでも 0 でループアウトするように組むのなら問題ない、a >= 0 とするから問題になる

250 :デフォルトの名無しさん:2015/03/21(土) 20:43:28.09 ID:zBl3Ii3W
>>249
それはそうなんだが、勘違いしやすかったり、注意しないとバグの温床になりやすいことはしないのが基本だと思うんだが。
ループカウンタとして使うなら普通に int 使えよと。

251 :デフォルトの名無しさん:2015/03/22(日) 00:05:49.26 ID:SsX9i6KK
C++/CLIはC++の顔してて勝手にスレッド作りやがる

252 :デフォルトの名無しさん:2015/04/13(月) 21:56:18.38 ID:1Ez10RQf
FORTHという>>1の要件をほぼかなえる言語がある
これをベースにすればよい

253 :デフォルトの名無しさん:2015/06/10(水) 13:56:59.28 ID:/kHDwUM2
while( c )
{
 ...
 c -= 2;
}

254 :デフォルトの名無しさん:2015/06/10(水) 23:35:06.95 ID:bjmIAJs7
好き / “アセンブリ言語のみで言語処理系を作った話 // Speaker Deck”
ttps://speakerdeck.com/nineties/bootstrap

これ見て元気だせ
自分でも出来そうな気がするだろ
実際、大学あたりではcコンパイラの実装までやらせてるんじゃないの?

255 :デフォルトの名無しさん:2015/06/11(木) 02:58:17.97 ID:wwX+zBdZ
>>254
簡単そうに書いてるけど、これ相当わかってる人でレベルが高い。
俺には1段階理解するだけで大変。自分で実装できる気がしない。

256 :デフォルトの名無しさん:2015/06/11(木) 18:03:31.89 ID:mzhQ9y6C
>>254
たぶんこの人だね
ttps://www.s.u-tokyo.ac.jp/ja/rigakuru/3384/

257 :デフォルトの名無しさん:2015/06/13(土) 22:22:22.81 ID:ueb0hiNe
 あー、ドアドアの人? と思ったら違ったヽ(´ー`)ノ

 むかーし(20年ちょっと)、アセンブラに構造化マクロを追加して『生産性が超上がる!』って
謳ったPDS(今で言うフリーソフト)があったけれど、当時意味分からなかったなあ。
 と言うかGCCの吐くアセンブラコードを読んで、自分で書くより綺麗でスッパリ諦めた(^^;

258 :デフォルトの名無しさん:2015/06/14(日) 01:34:40.73 ID:et+uySKI
少し前、x265のエンコードダーをアセンブラで記述してる人達の話題で
プログラムを組む上で何が問題なのかって話題があって
OSのシステムコールを行うとレジスターが壊れるのが気に入らないって事だった
オレは重要なアルゴリズムに係わる高度なコーディング作業をしているのだから
システムコール如きへの配慮で煩わしい事をさせるなってことかな
システムコール用のレジスタ退避マクロなり
システムコールをラップしてレジスタを退避復旧したり
もう少し便利なアセンブラの処理系を作ってみたりしないのかな〜
既存コードとの互換性問題とかあるのかな
アセンブラ関係のTool類はかなり保守的で目新しい道具類がガンガン使われる様子は少な目??

>>254の記事を読むと、コンパイラ系統ってリストへの変換ー>実行コード(アセンブラ)への還元って事が凄くよく判るんだよね
物凄く大雑把に言うと、LISP処理系への構文糖衣≒コンパイルする対象(プログラム塊) な構図

259 :デフォルトの名無しさん:2015/06/20(土) 16:36:37.21 ID:lPLujLwf
Objective-ASM

260 :デフォルトの名無しさん:2015/10/31(土) 22:45:31.32 ID:z7pRF+TT
>>54
どこがスレ違いなんだ。
それどころか、このスレを建てること自体が間違ってるだろ。
それを指摘するのは正しいことだろ。

261 :デフォルトの名無しさん:2015/10/31(土) 23:17:02.36 ID:d1AV3Byr
54 :デフォルトの名無しさん [sage] :2013/04/07(日) 22:40:29.84

262 :デフォルトの名無しさん:2015/11/01(日) 07:59:19.09 ID:xEvp3/ht
VS2013のC++x64でアセンブラコードみてるんだけど
かなり良さそうなコード吐き出している
問題はC++の仕様が大きいので他人の書いたコードが理解できないこと
C++の仕様の大きさが問題ならC++のコードを吐き出すプリプロセッサ?
みたいなものを企画してあとはC++にお任せが一番楽そうだね
unionを使った偽装もキャストって呼ぶんだな
&を使うリファレンスも別名とか名称変更とか説明があってやっと理解できた
C++もC並みにフリーダムだからお行儀の悪いコードが書けてしまう

提案になってないな
アイデアとしては、cpuやハードを直接叩く記述をする場合明確に宣言させて隔離とか
_low_level_fuc みたいなキーワード導入してその内部のみ色々悪さが出来るとか
これは運用の問題なので今のC++でも可能なんだろうけど
pythonのサブセット、お行儀の悪いpythonとかpychonとかoppayとかwww
C++の複雑さって仕様が大きくなって新たなキーワードを導入して何でもかんでも
詳細にテキストで記述しようとした結果じゃないかな
本来ライブラリなりフレームワークなりにお任せすべき部分までやらかしていると

263 :デフォルトの名無しさん:2015/11/01(日) 08:07:06.43 ID:xEvp3/ht
Cの複雑さってint,char,とか扱う型の種類とサイズが多い事も理由っぽいので
ここはきっぱりアルゴリズムを記述する為に扱える数値の種類を1,2種類に限定して
そのほかはデーターベースの記録管理みたいに色々なコストをかけて
型変換なりレンジチェックなり圧縮なり手間隙かければ良いのでは?
いっそ64bitサイズの何かで統一してしまう
charもintも実数も全部64bitの何かw

264 :デフォルトの名無しさん:2015/11/01(日) 09:17:05.73 ID:v5UlfxKI
>>261
単に型なしのオブジェクト言語使えばいいのでわないかと

265 :デフォルトの名無しさん:2015/11/11(水) 11:53:35.17 ID:iOpec/0o
型無しのオブジェクト言語って言えばluajitがかなり高速なんだよな、確か。
あれの仕様を上手く転用できないかな。

266 :デフォルトの名無しさん:2015/11/11(水) 20:22:43.34 ID:1hY3wyl+
多分スクリプトとアセンブラの悪いとこ取りじゃね

267 :デフォルトの名無しさん:2015/12/14(月) 21:02:53.45 ID:LOQs7wcg
Rustいつのまにかstableリリース出てたのか・・・
Swiftみたいな負の遺産に塗れたクソ言語に比べりゃ大分>>1の理想に近いと思うんだけど
モジラってOSSの見切り早いし将来性が不安だわ

268 :デフォルトの名無しさん:2016/04/08(金) 01:45:14.02 ID:sej0xQjF
void*最強って話か?w

コンパイラが勝手にトレードオフして機能の一部をFPGAに突っ込んでくれよ

269 :デフォルトの名無しさん:2016/05/24(火) 08:42:53.66 ID:67ul01kR
高速とは無縁だけど多倍長整数ってあるよね
これをビット単位でやるの、管理も緩く1ビットで1バイト使って管理
速度で無いけど全部の計算表現できるよね
文字列とかは考慮してないけど
色々考えた結果、変数の精度、byte,word,duble word,q...
ここら辺がいかにCPUの効率都合に合わせた制限だってよく判る
制限して精度に条件が付いても効率と速度が欲しいって言う

たった1ビットの多倍長数が扱えるだけで何でも表現できるなと思った。ww

270 :デフォルトの名無しさん:2016/05/24(火) 15:58:40.37 ID:AJNPSyjI
せめてBCDにしれwww

271 :デフォルトの名無しさん:2016/06/02(木) 01:23:18.32 ID:RwzROqD7
何で10進数にしたがるかね

272 :デフォルトの名無しさん:2017/03/25(土) 08:50:12.87 ID:Wiqnaowk
RustがC++に並ぶぐらい速くなってるみたいだけどRustのサブセットみたいなの作ったら良いのかね

273 :デフォルトの名無しさん:2017/04/03(月) 00:12:39.32 ID:Eo4f9wsY
修理するより買い換えた方が安いって話は多いが
もはや解読不可能になったコードのメンテナンスに金は出すくせに
新しく作り直すのはNGってのは恐ろしいな
大手では比較的作り直しもするようだが

274 :デフォルトの名無しさん:2017/04/03(月) 00:14:37.85 ID:Eo4f9wsY
もしあらゆる面でC++に勝る言語が出来たとしても、それが流行るかどうかは怪しい

275 :デフォルトの名無しさん:2017/04/03(月) 00:53:32.18 ID:OlsWZk+G
>>272
なんでサブセット?

63 KB
新着レスの表示

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :


read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)