10/05/07 11:37:28
◆新言語の要件 v0.1◆
(1)ハードウェアを直接操作する低レベルの記述が可能
(2)プログラマーが勘違いしてプログラマーの意図と違う動作をしないように言語仕様が直感的で学習が容易
(3)最新のオサレ機能が使えてワクワクしながらプログラミング可能
◆主な要望◆
・デバドラ屋だって、オサレ言語で開発したい!
・プログラマーの言語仕様の学習不足によるヒューマンエラーを最小限にするために、できるだけ小さな言語仕様にしたい。
・組込み屋だけど、関数型とダックタイピングしたい。
・shared_ptrの構文糖が欲しいな
・低レベル記述性(絶対条件) > 構文の美しさ(読みやすさ、学習の容易さ) > 再利用性(抽象性)
・算術演算以外の演算子は後置
・割込み、例外、非同期IOとかを統一扱えるイベント機能が欲しい。
3:デフォルトの名無しさん
10/05/07 11:40:03
286* 名前:デフォルトの名無しさん [] 投稿日:2010/04/27(火) 19:07:54
C言語の問題点。
1、コンパイラを軽く書きたいので色々端折ってる
2、軽く書きたいと良いながら、先読みが必要だったりする
3、軽く書けるので膨大な方言が発生し、それの取りまとめで仕様がボロボロ
4、機能の追加が必要最小限に留められているので、色々中途半端
C++の問題点
1、C言語との互換性を重視したので、記号が珍妙
2、追加、追加が多すぎて、なにがなんだか状態
3、オブジェクト指向の学識が高まるのと歩調を合わせた結果仕様が複雑
4、C言語の欠点を引き継いでしまってる
さて、以上の欠点は総て、言語が生まれた当時はまだ分かっていないことや、
当時では無理だったことが、後年解決された事など、色々に理由があって、
単に順調に成長した言語だから発生したとも言える。
そこで、プログラミング言語40年の歴史から学べる知見を総動員して、
C言語的なプログラミング言語を過去の遺産にとらわれず、今、開発
するとすればどんな仕様になるのだろうか?という事。
4:デフォルトの名無しさん
10/05/07 11:42:16
450 名前:デフォルトの名無しさん [sage] 投稿日:2010/04/30(金) 16:32:34
GC有り言語とGC無し言語ではメモリに関する考え方がまるで違うから、
学習者からすれば一つの言語に混在するのは良くないんじゃないかな。
低レベルならC/C++でいいけど、
何でも有りすぎて「やっちゃいけない」ことが多すぎるから、
できることを減らしていいからミスが少なくなるようなコンパクトな文法がいいな。
標準ライブラリの整理(scanfなんかいらない)や充実も必要に思う。
良い言語の条件は、
・読みやすい・メンテしやすいこと(他人の書いたperlコードなんて読みたくない)
・ライブラリが充実してること(画像読み取りぐらいは標準ライブラリに欲しい)
・熟練者じゃなくてもミスのないプログラムが書けること
なんじゃないかなと思う。
5:デフォルトの名無しさん
10/05/07 11:48:25
◆新言語の位置づけ◆
Ruby, Python, Haskell, OCaml, Scala, Clojure, Erlang, …
烏合のごとく言語が生まれてきているのにどれも似たようなLLばかりで、ハードウェア制御のような低レベル処理を行える言語が無い。
一方、Cは40年使われ続けてきているわけで、そろそろ置き換えられる言語が出てきてもいいだろう。
そこで、C程度の性能が出せて、Cが使われている分野を全てカバーでき、
過去の互換性に囚われて構文を妥協せず、今時の機能を使えてCよりもプログラミングしやすい新言語を作りたい。
6:デフォルトの名無しさん
10/05/07 11:48:50
えらい早漏さんだな
7:デフォルトの名無しさん
10/05/07 11:49:39
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
8:デフォルトの名無しさん
10/05/07 11:50:05
580* 名前:デフォルトの名無しさん [sage] 投稿日:2010/05/02(日) 00:57:35
ミニマリストにとってはマクロは魅力なのよ。下のほうからシームレスに弄れるし。
低水準言語だとForthなんかがそんな感じだよね。
まあ、マクロ無しでもインライン&引数評価なし関数で十分代用できるけどね。
これでもまだ落とし穴たくさんあるけど。
816* 名前:デフォルトの名無しさん [sage] 投稿日:2010/05/05(水) 01:52:41
最近じゃめっきりアセンブラを使うことは減ったが
アセンブリでやる必要があるのはOSだけじゃないがね。
ちょいスレチな風味だが
直I/Oとか割り込みハンドラなどの低レベルライブラリが
CPU毎に異なってるのが組み込み屋の悩みだな
メーカ提供のライブラリの出来も千差万別だし
言語の話と離れるが、共通化してくれたらいいのにね
9:デフォルトの名無しさん
10/05/07 11:50:40
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
10:デフォルトの名無しさん
10/05/07 12:01:59
新しい言語はGoogle GoやDに勝たないとダメだと思う
11:デフォルトの名無しさん
10/05/07 12:04:59
とりあえず新言語名はI言語(アイ言語)にしませう
12:デフォルトの名無しさん
10/05/07 12:10:59
Mona OSとかもあるし、
Mona言語とかしぃ++(thi++)言語でいいんじゃね?
13:デフォルトの名無しさん
10/05/07 12:36:48
Monoでも良いぞ
14:デフォルトの名無しさん
10/05/07 12:38:44
i-Mono
15:デフォルトの名無しさん
10/05/07 12:50:23
Programming Language I に決定。
16:デフォルトの名無しさん
10/05/07 13:07:32
>>1
速度にこだわった低級言語といえばアセンブラ
17:デフォルトの名無しさん
10/05/07 13:08:26
>>5
文法はJavaベースで
18:デフォルトの名無しさん
10/05/07 13:10:38
自分がコンピュータ史上の人物として名を残したいのは分るけど
スレタイの事に労力を費やすなら、Dとか有望株を改良したりドキュメントを翻訳したり
積極的に採用して著名なアプリを作るとかしたほうがいいとおもうんだが。
こんな事は5スレ目だから、何度も言われているかな?
19:デフォルトの名無しさん
10/05/07 13:12:53
>>18
何を言っているんだ。このスレッドは雑談スレッドだぞ。
新しい言語を作るという妄想に浸りながら雑談するのが正しいスタイルだ。
新入り君はそこのところ勘違いしないほうがいい。
20:デフォルトの名無しさん
10/05/07 13:13:16
>>18
その発想は無かった
21:デフォルトの名無しさん
10/05/07 13:13:24
1スレの>>1はもういないだろ。
今は、話題に集まった奴が適当なことを言い合ってるだけ。
22:デフォルトの名無しさん
10/05/07 13:15:56
>>18
そんな色気は仕様が固まってから考えれば良いこと。
Dで良いと思う人はDに行けば良い、
Cで良いと思う人はCを使えば良い、
LWLが好きな人は好きで居続ければ良い、
COBOLしか分からない人はそれで良い、
23:デフォルトの名無しさん
10/05/07 13:22:55
私見、
Dの問題点、CのリプレイスではなくてC++の置き換えを目指してる、
曰く、Cとして読める構文はCと同じ動きをする事等など。
Cの問題点、既出
LWLの問題点、論外、
JAVAの問題点、論外、
COBOLの問題点、論外。
これらはランタイムを必要とする。
関数型言語、論外
Cの代替を目指す言語にはならない。
24:デフォルトの名無しさん
10/05/07 13:28:50
>>23
COBOLってランタイムいるの?
25:デフォルトの名無しさん
10/05/07 13:29:26
Cにだってcrtというランタイムがあるんだが
26:デフォルトの名無しさん
10/05/07 13:30:32
>>24
主にI-Oセクションだけどね。
27:デフォルトの名無しさん
10/05/07 13:31:56
・enumがいいかんじにswitch周りで使えるといいな。
・3項演算子はif式がよいんだか、よくないんだか?
・多値があるとよさそう。
・インクルードは自動生成がいい。
っていうかんじですか?
28:デフォルトの名無しさん
10/05/07 13:33:45
・インクルードは不要。自動生成してもいいが必須ではない。
29:デフォルトの名無しさん
10/05/07 13:34:00
>>27
>・多値があるとよさそう。
おいらはこれに反対なんだけど、議論にならないので放置してる(w
30:デフォルトの名無しさん
10/05/07 13:35:37
・多値の戻り値は、一つのリスト型で行う。リスト型から要素を取り出す暗黙のキャストがあってもいい。
31:デフォルトの名無しさん
10/05/07 13:40:00
多値はリストじゃなくてタプルだろう。
もっというとstructだろう。って言い出すとまた前スレッドを蒸し返せるよ
32:デフォルトの名無しさん
10/05/07 13:46:20
関数に多値を許すことの最大の欠点は、C言語とバイナリー互換が
取れないこと。文法がC言語と違ってもC言語と同じ形式のバイナリー
フォーマットを維持できれば、旧来の資産を継承できるんだけどね。
まぁその辺はトレードオフなので、多値戻しが好きな人はそっちで煮詰めて欲しい
と思う。頑張れって思う。良い仕様が出来たら説得されちゃう用意は何時でもある。
だけど今の議論はちょっと、あり得ない、LWL作ってるのか?とか思う。(wwww
33:デフォルトの名無しさん
10/05/07 13:50:22
C側から新言語によるオブジェクトを呼び出させい場合は、単値のみにするとか、ラッパーを作るとか、何かすればいいんじゃないの。
既存の言語の古い制約に引きづられて、新言語の仕様を妥協はしない方がいい。
34:デフォルトの名無しさん
10/05/07 13:54:31
>>33
きみがそのらっぱーなら、どうぞ、どうぞ。
ちぇけらっちょ♪