X



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

0001デフォルトの名無しさん
垢版 |
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
0002デフォルトの名無しさん
垢版 |
2012/08/23(木) 23:07:31.21
◆新言語の要件 v0.1◆

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


◆主な要望◆

・デバドラ屋だって、オサレ言語で開発したい!
・プログラマーの言語仕様の学習不足によるヒューマンエラーを最小限にするために、できるだけ小さな言語仕様にしたい。
・組込み屋だけど、関数型とダックタイピングしたい。
・shared_ptrの構文糖が欲しいな
・低レベル記述性(絶対条件) > 構文の美しさ(読みやすさ、学習の容易さ) > 再利用性(抽象性)
・算術演算以外の演算子は後置
・割込み、例外、非同期IOとかを統一扱えるイベント機能が欲しい。
0003デフォルトの名無しさん
垢版 |
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は手段であって上記が満たされていれば必ずしも必須ではない。
0004uy
垢版 |
2012/08/23(木) 23:52:58.78
チューリング完全になれば何でも良かったんだよ
高価な機能はいると訳分からなくなる低脳はC
そういうのがはいっても効率的に扱える奴はC++

既にすみわけは出来てるCとC++の中間くらいの言語が存在しないってだけで
そんなのあってもなくてもどちらでもいい
いま一番Cの代替になる可能性が高いのはGO
0005uy
垢版 |
2012/08/23(木) 23:55:19.82
営利目的で言語は作ったほうがいいよ

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

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

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

本物のハッカーとかそんなもの関係ない、
金の力が人の学習意欲をかりたたせる
どんな雑魚でも生活のためならC++言語でもなんだろうと使いこなす
本物の天才が金を得るためにプログラムを組む
いくら優秀な言語があっても、金から遠ざかれば使われない
0006デフォルトの名無しさん
垢版 |
2012/08/24(金) 00:28:39.62
で、C/C++に代わる低級言語としての提案は?
0007uY
垢版 |
2012/08/24(金) 01:38:47.62
ネイティブはけるruby
0009デフォルトの名無しさん
垢版 |
2012/08/24(金) 08:36:44.50
おれもObjectiveCでいいと思うね
0010デフォルトの名無しさん
垢版 |
2012/08/24(金) 08:39:30.70
<ハードウェアを直接操作する低レベルの記述が可能
ってことは移植性は要らないんだよね
アセンブラでいいんじゃね
0013uY
垢版 |
2012/08/24(金) 10:04:10.55
マジレすすると、
しっかりとC++技術者を育てたらいい
C++が使えない は甘え
0014デフォルトの名無しさん
垢版 |
2012/08/24(金) 11:14:03.28
アセンブラに化け物なマクロ入れるだけでいいんじゃねぇの?
欲しい機能はマクロで定義
0015デフォルトの名無しさん
垢版 |
2012/08/24(金) 11:51:37.60
C言語の価値もプリプロセッサにあるんだよね
アセンブラにもマクロあるじゃないの
ただ、アセンブラ毎にマクロの仕様が違ったりするから
併合しようとした人はこれまで何人もいた
でも結局使わないんだわそんなの
0020デフォルトの名無しさん
垢版 |
2012/08/24(金) 15:26:50.19
アセンブラマクロに強力な型機能を持たせて、ついでに多態性も付けて
単純な継承・カプセル化程度をサポートすればおk?
0024uy
垢版 |
2012/08/28(火) 01:52:32.53
プログラミングは最終的にはアセンブラになるかもしれないね
よく考えたら無理じゃない気がしてきた
0025デフォルトの名無しさん
垢版 |
2012/08/28(火) 02:11:48.33
せっかくよく考えたのなら、その考えを文章にしてみよう。
鉄は熱いうちに打て。
0026デフォルトの名無しさん
垢版 |
2012/08/28(火) 09:08:24.23
>>24
それは、高級言語プログラミングしてる時に、
頭の中でアセンブラが思い浮かぶような人だけだよ。
0030デフォルトの名無しさん
垢版 |
2012/08/28(火) 23:32:52.57
制御対象が十分に抽象化されていれば高級、ベタに見えていれば低級
言語はそれほど関係ない
0031デフォルトの名無しさん
垢版 |
2012/08/29(水) 21:10:23.64
サーバーサイドjsが持てはやされるぐらいなんだから、
自社サービスを展開してるようなところではc/c++は使われなくなるんじゃないかしら
そういう企業じゃシステム言語はgolangが主流になると思うよ
0033デフォルトの名無しさん
垢版 |
2012/09/07(金) 12:59:14.71
いまの言語とか制御構造や予約語の文法以前とか以前に
ライブラリーの便利さと豊富さが基本であって、言語の重要性はあまり関係ない。
同じコードを書くのに少ないコードで実現できる(内部が見えない)
類が抽象化の度合いでどれだけ高機能を呼び出すだけで実装できるかが
重要になっている。
低級なそれは多くの仕組みと手順を細かく表現しなければいけないのだが
高級になれば何も表現しなくても「あれ」「これ」な感覚で作れてしまう。
本当に低級ならば四則演算とか使わずにプログラム作れよサブルーチンという
概念も使うな!
0035デフォルトの名無しさん
垢版 |
2012/09/07(金) 21:58:26.62
Webやスクリプト言語には興味ありません

ハードウェア制御・リアルタイム・マルチコアなどなど
抽象化のための「見えない」コードを書きたいのです
0036デフォルトの名無しさん
垢版 |
2012/09/08(土) 23:31:28.52
>>33
であれば、具体的にどのようなライブラリが必要と考えるのかを述べるのがこのスレッドの意義である。

「使うな」で終わるのは建設的ではない。前半は良い発言だから、頑張れ。
0040デフォルトの名無しさん
垢版 |
2013/02/04(月) 22:40:20.04
モデルにすることを提案するだけではなく、どのようにモデルにするのかを提案するともっといいぞ
0041片山博文MZパンク ◆0lBZNi.Q7evd
垢版 |
2013/02/24(日) 22:49:04.87
局所変数をすべて静的大局変数にするなんてどうだい?
0043デフォルトの名無しさん
垢版 |
2013/02/24(日) 23:04:15.58
>>41
その効果は?
0044デフォルトの名無しさん
垢版 |
2013/03/21(木) 16:10:03.33
ポストPHP/CGIを狙うような静的型付き言語を開発したいがそういうスレはないものか
0047デフォルトの名無しさん
垢版 |
2013/04/01(月) 11:36:10.71
実用化されるまで10年以上遅れていたであろう。
ていうかPCという概念すら生まれなかったであろう。
0048デフォルトの名無しさん
垢版 |
2013/04/01(月) 23:04:46.27
概念w
0051デフォルトの名無しさん
垢版 |
2013/04/05(金) 23:47:23.21
エレキてきバグでまくるだろ
0052デフォルトの名無しさん
垢版 |
2013/04/07(日) 05:37:26.11
41みたいなことをするとバグ、多発。
0053デフォルトの名無しさん
垢版 |
2013/04/07(日) 22:19:02.62
CもC++も高級言語で、スレタイがそもそも間違ってるのに、いつまで続けてるんだ。
マシンコードそのままなのと、アセンブリ言語だけが低級言語ということも知らないのか。
コンピュータの勉強して最初にわかることじゃないか。
それに開発したいのはどういう目的があってのことなのかね。
0055デフォルトの名無しさん
垢版 |
2013/04/10(水) 19:39:49.93
オブジェクト思考なんて何十年も前
今は最新なんなんだ?
0057デフォルトの名無しさん
垢版 |
2013/04/10(水) 21:27:07.91
>>55
アスペクト指向というのがあるがまだ実用化されてない

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

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

@Entity(name="DBTable")
class Persons
0061デフォルトの名無しさん
垢版 |
2013/04/11(木) 22:22:45.21
関数コール時値やアドレス値をスタックやレジスタへ積み積みする暗黙に埋め込まれるコードもアスペクト
暗黙だけでなくあちこちにユーザーコードまで混ぜれるようにしちまう開放的且つカオス世界への招待を
有難いと感じるかどうかが別れめっスね
0063デフォルトの名無しさん
垢版 |
2013/04/13(土) 13:20:43.36
構文を工夫して文字数を減らしても仕方ないし、XML/アスペクト指向も終わった。
最近の新しい発想というとKVSぐらいだな。1人でプログラミングすると効率悪いが、
多人数での分業に向いている言語とかいんじゃね?
レスを投稿する


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