- 1 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 19:45:18 ]
- プログラミング言語処理系の開発に興味のある人達のスレッドです。
字句解析・構文解析から,データフロー解析,ループ並列化,データ分散,SSA変換, CPS変換,レジスタ割付,命令スケジューリング,ソフトウェアパイプライン, SIMD命令生成,VLIW向けクラスタリング,スクラッチメモリ向け最適化,リンク時最適化, JIT,動的バイナリ変換等の各種最適化,それにVM,GC,低消費電力化などなど。 意味論に関する話題も歓迎です。 前スレ 1 pc.2ch.net/tech/kako/981/981672957.html 2 pc2.2ch.net/test/read.cgi/tech/1021136715/ 3 pc5.2ch.net/test/read.cgi/tech/1070089173/ 4 pc5.2ch.net/test/read.cgi/tech/1100097050/ 5 pc8.2ch.net/test/read.cgi/tech/1106129164/ 6 pc8.2ch.net/test/read.cgi/tech/1115335709/ 7 pc8.2ch.net/test/read.cgi/tech/1129287390/ 関連リンクは多分 >>2-10 あたり
- 701 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 04:57:30 ]
- 釣って釣られて盛り上がるのが醍醐味ですが何か?
- 702 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 04:57:59 ]
- >>700
自分たちでも理解できるレベルになったのが、 嬉しくてしょうがないんだろう。ほっといてやれ……
- 703 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 05:03:01 ]
- それじゃそろそろprogram representationsとインテンショナル・プログラミングの話をしようか
- 704 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 07:29:09 ]
- >>696
C言語の事でつか?
- 705 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 10:24:35 ]
- >>694
embeddedのIT業界でのデフォはそれで正解 ただ、ここは言語すれなので
- 706 名前:654 mailto:sage [2005/12/13(火) 11:07:54 ]
- 期待されても大して何もでないぞ。
埋め込まれた言語っていってもHTMLファイル (データ記述のための言語で書かれたデータなんでデータでもあり言語でもあり) にスクリプトを〜くらいしか念頭にはなかったし。 (ちなみにJavaScriptあたりをイメージしてた。PHPはよーしらんです。) まぁ、ライブラリで提供される正規表現を言語内に埋め込まれた言語と見る というのもあるかなとは思う。 それに整数など数値演算が埋め込まれた言語というのは 理論上そういう観点もありえなくはないかなという気がする。 こういうのは視点の問題であって一つの存在が一通りにしか解釈できないと 決まったものでもないわけで。 大体今時の言語の文法定義自身が再帰的に部分文法を"埋め込んで"定義されてるわけで この観点から言えば埋め込まれてる言語とホスト(宿主)言語の区別ってのは 結構便宜的なモンでしかないんじゃないかと思う。 分けて考えるのが便利なときは分けて考えることもできるし、 全体で一個の文法と見るのが便利ならばそう見ても問題ない。 余談だけどそう思ってみると 数値演算につきものの演算子の結合や優先順位の規則の文法的表現ってのは 言語の文法定義の中でもそれ以外の部分とは若干異質な部分でもある。 言語定義をする人は皆、当たり前なんで慣れてしまっているけどね。
- 707 名前:654 mailto:sage [2005/12/13(火) 11:37:54 ]
- 例をあげて考えてみる。
まずはライブラリなどとして提供されるユーザ定義のデータ型が ベースとなる言語に埋め込まれてベースとなる言語を拡張している例。 データ型といっても整数演算くらいだと見慣れているだろうし、 あんまりピンとこないかもしれない。 けども複雑なテキストデータは実際にパースしないといけないわけだから 単に観念の問題ではなくて技術的にも結構言語チックではある。 既に出ている正規表現もそうだし、例えば昔、私が多項式型を作ったときには 多項式のインスタンスを文字列リテラルで初期化するようにしてみたことがあって このような場合だと単にユーザ定義のデータ型のリテラル (正確にはそのように見立てた文字列リテラル)の癖に その中に「変数」(数学的には不定元か)や「演算子」なんかがあって その"埋め込まれた"リテラルの扱いはミニ言語っぽくなる。 多項式はデータ・値として4則演算の対象であると同時に 実際に値を代入(数式処理的には「置換」)することで関数のように評価もできたりする。 逆に通常一個の言語として見ている言語の定義を 幾つかのミニ言語を埋め込んで組み立ててあるとみることも実際に可能。 例えばC++を 式言語を制御構造言語に埋め込んでそれを関数宣言言語に埋め込んで、 それらと単純型宣言言語を合わせてクラス宣言言語に埋め込んで、 さらにそれをtemplate宣言言語に埋め込んだものとして考えることもできる。 この時例えばtemplate宣言言語は関数型言語として見ることができて 実際にそのようにプログラミングすることもできるというのが テンプレート・メタプログラミングだったりする。
- 708 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 12:16:37 ]
- >>706-707
禿しく納得した。あんたにゃ脱帽。
- 709 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 13:23:05 ]
- >>654って例の、外国人とRubyに悩まされてる人か?
もしそうならかなり煮詰まってるな。
- 710 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 14:06:54 ]
- >>709
な、なぜそう思うのかな?
- 711 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 15:08:51 ]
- >>709の元ネタがよくわからん罠
- 712 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 15:12:04 ]
- ttp://pc8.2ch.net/test/read.cgi/prog/1127261540/924
と思われ。
- 713 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 15:12:40 ]
- いずれにせよ、Rubyに好意を持っていない所から類推すると、
研究畑の人間だと思われる。
- 714 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 15:14:23 ]
- >654は別にRubyについては何も書いてないよな。
- 715 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 16:12:53 ]
- >>713
研究の人はルビー嫌いなの?
- 716 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 16:22:54 ]
- >>715
いんや、少なくとも>>712のリンク先のそのまたリンク先のヨーロッパ人研究者には大好評のようだゾ。
- 717 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 16:32:43 ]
- 日本の研究の人は、自分よりも名前が売れていることでRubyを妬んでいるのです
- 718 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 16:44:49 ]
- 妬むかどうかはさておきRubyの人が(昔はリーマンしながら作ってたようだけども)
いまやオレ言語で食えているのがウラマヤシクないと言えば嘘になろう。 プログラミング言語研究も成熟してきた昨今、 どうしても言語研究で食っていこうとすれば全く新しい俺言語の開発ではなく 言語の一部(例えば既存言語の拡張とか最適化とか)をテーマにすることに ならざるを得ないが、言語屋の多くは俺言語への夢ってモンをやっぱり持ってるからな。 まぁそういう研究屋業界の世知辛い世情はRubyの人も(出身は言語屋なわけだし) 分かってるからあくまで彼が自称するのは言語オタクであって 研究者とは名乗らないし、開発に徹して研究者的な活動には深入りしないのだろう。
- 719 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 16:47:28 ]
- >>710
>>714の言う通りRubyについちゃ何も言ってないんだけど、 >>654の最後の「風変わりな実装」と「Windowsに移植」ってとこでそう推測した。 あと>>707であげられている例やら「埋め込まれた言語」に対する態度やらから そうなのかなあと。 過去ログを調べたら、例の人を2chで初めて見かけたのは2ヶ月以上前だ。 まあ>>654とは別人だろうな。
- 720 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 16:50:22 ]
- >>712の引用のしかたにワロタ
マ板経由かよw
- 721 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 16:51:47 ]
- 別段Rubyに含むところはないが
Unitテストもなしに6万行もあるバギーな拡張ライブラリはキライw 特にキャストやテンプレートを濫用して型がスパゲティ化しているプログラムはw
- 722 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 17:16:30 ]
- Rubyとかそういう問題じゃないな。
他の言語でもそれは嫌だぞ。
- 723 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 17:28:21 ]
- >>722
まぁ、そういうことですよw Rubyが使われてるプログラムの移植でヒドい目に合ってるからRubyの話題も出るけど それは多分に使い方の問題であってRubyの問題じゃない。 例えば、C++でそんなデカイもんを作るなら最初からC++で書いてRubyから呼び出すとか、 RubyでBisonやflexやXMLパーサ用のコードを生成するとかなんて構造・設計は 勘弁なってくらいでいずれも問題はRubyそのもの良し悪しや好き嫌いの話ではない。 以上誤解のないように。
- 724 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 17:30:15 ]
- 謹んで訂正>>723
誤> 例えば、C++でそんなデカイもんを作るなら最初からC++で書いてRubyから呼び出すとか、 正> 例えば、C++でそんなデカイもんを作るなら最初からC++で書いておいてくれればよいわけで、 Rubyから呼び出すとか、
- 725 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 17:43:02 ]
- やっぱRubyじゃ巨大プロジェクトの開発は無理か。
せいぜい数千行程度?
- 726 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 18:25:20 ]
- さぁ?
「やっぱ」とあるが>>723-724はそういう問題ではないだろう。 まぁ、一応Script言語はそれ単体であまり大きな規模の開発を行うことは 想定してないとは思うので個人的にそういう目的に用いることをオススメはしないが、 どこにそのラインがあるかは自明でないのでキッパリ無理とも言い切れない。
- 727 名前:デフォルトの名無しさん [2005/12/13(火) 18:27:04 ]
- >>725
別にRubyで何万行書いてもいい。 むしろRubyだけで書く限りであればそれほど問題はないと思う。 Rubyがアホなとこは、そうやって書くと思いっ切り遅くなることがわかってるから、 現実は他の速い言語で拡張ライブラリ作ってツギハギしてくしかないってこと。 拡張ライブラリが順調に動いている内はいい。が、そこでバグが発生したりすると もうグダグダになる。拡張ライブラリが絡むと環境やモジュール連続性もなく まず原因の特定が困難で専用のデバグ環境もない。もはやまともなデバグなど 期待できない。だから拡張ライブラリを書いた場合は事前のテストが重要となる。 が、現実はこれをまともにやっている人間は少ないようだ。 ほんとは他の言語で書かす拡張ライブラリみたいなアホな非常口は言語の 作者の目の届かない所でもあるし、とっとと廃止した方がいいのだけど、 Rubyはそれをいつまでもやめないし、既にRubyの仕様上速くなる手段は 閉ざされており、もう誰もがアホだとわかっていてもその非常口に突っ込んで 自滅するしかない、という悪循環がどうみても出来上がっていました。 ありがとうございました。
- 728 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 18:30:33 ]
- 精子コピペすか?
- 729 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 18:34:25 ]
- わかってはいるが、わかるわけにはいかん!
というやつだね。 墓穴は掘り終わりましたか?
- 730 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 18:41:06 ]
- >>727
遅くなるって言うけど 手軽さではなく早さが求められるようなプロジェクトで Script言語を選んじゃう見識は問われないの?
- 731 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 18:51:28 ]
- 言語というより、開発手法や設計のお話だな。
- 732 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 18:52:31 ]
- この件でRubyの拡張ライブラリがヤバイ事はよくわかった。
- 733 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 18:59:05 ]
- そういやRubyはVMにできないみたいな話が以前のスレにあった気がするけどあれってなぜ?
- 734 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 19:08:15 ]
- そろそろスレ違いに気づけ。
Rubyヤバイとかは専用スレがあるんだからそこで騒げ。
- 735 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 19:11:25 ]
- >>725
デカいプロジェクトだと開発以前に、運用で却下。 保守できる人間が少ないのは怖いし。 もっともここで話す問題ではないが。
- 736 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 19:29:06 ]
- そう思うなら余所逝けよ。
- 737 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 22:21:58 ]
- ちょっと勘違いしてるようだけど、数千行のRubyコードって
数十万行のLispコードに匹敵する処理内容が記述できるでしょ。 なので、スクリプト言語≒簡易処理というのは全くの思い違いだと思うよ。 速度が遅くなるのは同意だけど、
- 738 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 22:24:27 ]
- オ〜レ〜〜〜。オ〜レ〜〜〜。ジャカジャカジャン!
ま・つ・け・ん・さあ〜んば〜〜〜
- 739 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 22:48:17 ]
- 数十万行のC言語のコード、というならともかく・・・
- 740 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 23:16:02 ]
- >>737
だいぶ勘違いしてるようだけど、RubyとLisp比較するなら 記述量的にはあんま変わらない気がするけどな。 速度気にするならまともなコンパイラ付いてるLispで書いた方が 良かったんじゃないの? Rubyと違って処理系も色々選択できるし、拡張ライブラリを 速度のために別言語で書く、みたいな馬鹿馬鹿しい問題もない。
- 741 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 23:27:55 ]
- Lispは、チェックを省いてプロトタイプを作ろうとすると、めちゃくちゃ少ないコード記述量に
なるけど、パフォーマンスを考えてチューニングしようとしたり、エラーチェックを厳密に やろうとすると他の言語と同じぐらいになってしまう。
- 742 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 23:55:27 ]
- >>741
憶測だけで言ってない? つか、付けたしだけで速くなるなら別の言語で書き直すよりは そっちの方がいいよね。 下のサイト見ると行数もそれほど変わらないし チューニングコード入れなくても速いみたいだが。 元々速度では勝負にならん差があるけど。 Ruby shootout.alioth.debian.org/benchmark.php?test=all&lang=ruby&lang2=ruby Lisp shootout.alioth.debian.org/benchmark.php?test=all&lang=cmucl&lang2=cmucl shootout.alioth.debian.org/benchmark.php?test=all&lang=sbcl&lang2=sbcl
- 743 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 00:14:14 ]
- >>742
Rubyが速度で上回るのはstartupだけか。 ひでえなこりゃ。 Rubyってコンパイラ作れないの?
- 744 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 00:31:28 ]
- ハッキリ言ってしまえば、速度なぞ時間がすぐに解決するんだけどなw
リアル社会を知らない音質Lisperはアクキンにしる!
- 745 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 00:33:18 ]
- >>743
コンパイラは作ってもあまり意味がないというか、 そもそも作る人がいないという話だった気がする。
- 746 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 00:33:43 ]
- >>743
作れるはずだし、 作ってる人も(複数人)いるっぽい。 実用になったという話は聞いてないけど。
- 747 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 00:41:45 ]
- >>744
Rubyはそう言われてきたJavaと事情がだいぶ違うし 言語仕様的に無理かも。 あと10年待とうね。
- 748 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 00:44:51 ]
- プロセッサがマルチコア方向にシフトしてきてるっぽいので、
ネイティブスレッドに対応しないと辛いかもね。
- 749 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 00:49:15 ]
- >>742
おいおい、そこのコードは速度を上げるために かなりチューニングしてるぞ。 少なくかけるところをあえて速度が上がるような 書き方してる。
- 750 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 00:49:52 ]
- だから、コード量は、本当はlispはめちゃくちゃ少ないよ。
- 751 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 00:50:18 ]
- PythonはPython自身で書かれたり他の言語やVMに変換して速くしたりできるっぽい
そういう意味ではPythonの方は将来期待できるかも
- 752 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 00:53:09 ]
- これなんて象徴的だよな。
本当は5行で終わるところを12行かけて書いてる。 コメントにその5行のコードが書いてあるw shootout.alioth.debian.org/benchmark.php?test=ackermann&lang=cmucl&id=0
- 753 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 00:56:25 ]
- Pythonって構文をちょっと変えたLispそのものだからな
- 754 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 01:03:49 ]
- 出来るだけタイプ量少なくすることで競うならperlが最強。
- 755 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 01:04:33 ]
- >>752
そのコメント部だけのコードでも動的言語の割には結構速度出るね。 やっぱこの差はネイティブコンパイルしてるからかね。
- 756 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 01:04:59 ]
- >>754
C++は最下位。
- 757 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 01:08:10 ]
- >>756
COBOLだろ
- 758 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 01:12:24 ]
- >>754
LispやSmalltalkなんかは前提とするコアイメージ弄くればなんでも1行で書けるよ。 それに配布物も本体とコアファイルの2ファイルだけで perlみたいにごちゃごちゃライブラリディレクトリ掘ったりする必要ないし。
- 759 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 02:01:41 ]
- いや待て、言語同士を競争させるのにコアやライブラリを弄っちゃいかんだろ。
- 760 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 02:13:34 ]
- Smalltalkならいじるのが当たり前なんだが
- 761 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 02:31:30 ]
- ライブラリ弄っていいんだったらどの言語でも1〜数行で終わって
比較する意味ないじゃん。
- 762 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 03:17:26 ]
- ライブラリ弄るとかいう発想じゃなくて、LispやSmalltalkでは
言語環境が最初から違うスタート地点に立てる、という観点が 使ったことのない人には想像つかないのかな。 OSで言えば最初からスタンバイ状態になってると考えればいい。 そもそも「出来るだけタイプ量少なくすることで競う」って話だし。
- 763 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 03:19:35 ]
- いやいや駄目でしょ。
Lispは結構知ってるし、Smalltalkもある程度は知ってるけどさ。 標準ライブラリで、標準のコアで勝負でしょ。
- 764 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 03:22:05 ]
- まあ拡張を定義した部分まで行数に入れるんだったら
もちろんいい。
- 765 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 03:23:18 ]
- 他の言語じゃ不可能な時点で勝負にもなんないね。
- 766 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 03:23:25 ]
- あと、その言語として自然な記述で比べること。
7行プログラミングスレみたいな奇怪なコードならCでも短くなるけど、 そういうコードで比べるのも反則。
- 767 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 03:23:52 ]
- >>765
別に不可能じゃないよ。ライブラリなんてどの言語でも書ける。
- 768 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 03:27:34 ]
- >>766
ああいう奇怪なコードで書くのがPerlの自然な流儀ですが何か?
- 769 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 03:27:56 ]
- こんな夜中に何を必死になってんだ
- 770 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 03:46:42 ]
- >>767
知ってていってるならしょうがないが 開発環境と実行環境が一体化してるもんだから 単なるライブラリとは違う。
- 771 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 03:59:21 ]
- いくらそんなこと言ったって、同じにしなくちゃ駄目だろう。
やっぱりライブラリを作ってこれ使えば一行とか言ってるのと同じぐらい 反則に俺には感じる。
- 772 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 04:00:09 ]
- いい加減宗教戦争は勘弁して下さいよ、本当に。
- 773 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 04:56:09 ]
- スレの質が急激に低下してまいりました
- 774 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 05:33:44 ]
- >>1 に出てくる語句について教えてください。
「データ分散」って何ですか? NUMAとかのヘテロなアーキテクチャでの話? 「スクラッチメモリ」って何ですか? CellのSPEが持っているような プロセサ固有のメモリ?
- 775 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 05:54:04 ]
- >>773
おまえが上質なネタを投下しろよ
- 776 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 06:08:41 ]
- >>775
おまえが上質なネタを投下しろよ
- 777 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 06:51:03 ]
- >>774
>>1に聞けよ
- 778 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 08:16:38 ]
- HTML化されてる最初のスレはかなりレベル高かったみたいだね。
今の>>1-5のテンプレはいつごろからあったんだろ?
- 779 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 14:52:11 ]
- >>774
厳密にはともかく概ねそれで合ってんじゃない? >>772 宗教戦争になるのは 優劣を計ろうとしていながら物差しがちゃんと定義&評価されてないからだと思う。 言語設計ということを理解するに当たって既存の言語を比較対照することそのものは 悪くないと思うのだけれど、基準が独りよがりすぎるから感情論になる。 それにRubyがでてくるのは話の流れとしてまだわかるが Lispはいくらなんでも唐突過ぎる。 イキナリRubyと比較してるが使われる局面も設計時の背景や目的も明らかに違うから 何を比較したいのだかよーわからんことになってる。 言語設計の課題は設計目的にどのくらい適っているかどうかだし、 言語選択の問題は開発対象の性質に言語がどのくらい適合しているかだろう。 いずれにせよ目的も基準もハッキリしない漠然とした優劣は問題ではない。
- 780 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 14:55:35 ]
- プログラムの長さ、記述量が問題になっていたようだが…
情報理論の教えるところによって符号化という視点で考えれば プログラムもまたプログラムの仕様という情報を符号化したもの。 言語が違えば符号化の体系が違うと考えられるわけで、 単純にコードの文字数を云々することにはあまり意味がない。 例えばコードの中でよく使われるパターンが短く、 あまり使われない構文が長くといった設計上の戦略もある筈だから どういう目的で設計されているかということを考える必要がある。 また誤り訂正符号などの例のように純粋に内容の情報 (プログラムなら例えば中心となる内容はデータ構造とアルゴリズムだろう) だけでなく誤りを見つけやすくするための付加情報が含まれるケースもある。 特にプログラミング言語という符号体系は人と機械の間をとりもつ際の ユーザ側インターフェイスであるわけで 人の認知科学的な処理特性を無視することはできない。 例えば制御文と式と宣言文の構文が分かれていたり、 意味が連想しやすい名前がキーワードに使われるとか、 ユーザが把握しやすい動作モデルを提供するというのは 文字数単位でコード量(端的にはタイプする量)が増えても そういう観点からは意味がある。
- 781 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 15:01:42 ]
- >>778
4からじゃね?
- 782 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 15:07:53 ]
- >>779-780
なげーよ 日記なら他所でやれ
- 783 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 15:20:39 ]
- 言語の設計には必ず設計目的があり、
設計目的はその時点での背景がある。 そういうことを考えずに闇雲に優劣をつけようとするのは無意味なことだ。 以下に技術的背景が言語設計に及ぼした影響について幾つか例を挙げる。 まず言語は既存言語の存在を前提にしている。新しいものは特にそうだ。 Javaの例で言えば: JavaはCが存在していて必要ならば使うことができることが前提だから 比較的汎用指向の言語でありながら Cで書くことが適切であるようなハードウェアレベルの記述機能を 潔くスッパリ切り捨てた設計ができている。 例えば、バイトコード&仮想マシンの採用やポインタ演算の放棄などがそうだろう。 Javaではそれらと引き換えにより厳密な静的型検査が可能になり、 それがバイトコードの検証といったセキュリティ技術、 ひいてはモバイル・コードの実現といった当初の設計目標を支援している。
- 784 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 15:21:25 ]
- また、言語は設計当時の技術水準を前提にして設計されているし、
当時重要であった課題を優先して解決するように設計されている。 FORTRANの例で言えば: FORTRANの行指向な言語設計は行単位に1枚のカードが使われていた ハードウェア技術に大きな影響を受けている。 構文解析が案外面倒な面倒な算術式のパース技術が取り入れられた背景としては 当時算術演算を手軽に記述できる言語が他になく正にそれが求められていたからだ。 その一方で計算機のメモリやディスクの容量が限られていたこともあって プログラム規模が当時は現代より比較的小さかったので ユーザ定義のデータ型への需要は相対的に小さかったためそういう機能は貧弱だ。 LISPの例で言えば: 何よりAI研究で必要な柔軟なデータ形式である リンクリストやそれを利用したツリーを簡単に操作できることが優先目標だったから それが充実している一方で、算術式はお世辞に読みやすいとは言えないし、 効率のよいランダムアクセス可能な配列といった機能はなかった。 (近年LISPを語る際によく言及される、 メタな機構が充実したのはちょっと後のことで誕生当時の古LISPでのことではなかった筈だ。 言語のメタな構造がLISPが解く意図するツリー構造と相性がよかったこと、 元々の適用分野がAI研究だったことなどが影響しているのだろう。)
- 785 名前:訂正 mailto:sage [2005/12/14(水) 15:24:35 ]
- 解く意図する→得意とする
- 786 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 15:25:54 ]
- ここは公開オナニー劇場ですか
- 787 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 15:26:55 ]
- 宗教戦争なんてしてたっけ。
- 788 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 15:27:18 ]
- >>782
日記など書く趣味はないよ。 言語戦争の発端のグチを>>654-の記事の一部にポロっと書いた責任を取って 正攻法で技術論に戻して収拾しようとしてるだけ。
- 789 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 15:33:02 ]
- ウザス
2、3行で要約しろよ
- 790 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 15:36:33 ]
- 冗長でも誤りを見つけやすくするため云々は一理あるけど、
冗長に書かないといけないせいで入るバグもあるから トレードオフであることは意識しないとね。 「把握しやすい」ってのも、 その感覚はユーザによってばらつきがとても大きい。 これを意識しないで話すと宗教戦争になる。
- 791 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 15:41:37 ]
- >>787
顛末は例によってRubyが貶されて信者が暴れただけ。
- 792 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 16:10:36 ]
- >>783-784
知識の垂れ流し、結構なことです。 が、ここはお前の落書き帳じゃねーんですよ。 各言語の歴史的経緯についてなんかは言語仕様書の冒頭にでも 書いてありそうなことだし、こんな所で長々と解説されても信憑性も 疑わしいわでだんだん話が薄っぺらくなっていくだけですよ。 こちらとしては、そんなものより要点だけ数行でまとめて書いてくれると 読みやすいわ疲れないわでとてもありがたいわけですよ。
- 793 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 16:12:53 ]
- ウザス
2、3行で要約しろよ
- 794 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 16:14:04 ]
- >>793
一行で要約できますた。 「ここはお前の落書き帳じゃねーんですよ。 」
- 795 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 16:25:20 ]
- つまり過剰な冗長さは悪し、という例ですな。
- 796 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 16:29:39 ]
- 長くなると(読解力が不足がち人には)ウザイってのはそうだろうけど
(なら読み飛ばせば?とも思うのではあるけども 読み飛ばしてもくれずわざわざウザイと書いてしまう 不思議な心理があるようですね。) 信憑性が薄くなるってのはよくわからないな。信憑性は内容の問題でしょ? 読解しきれないと内容が理解できないからそういう読み手にとっては 信憑性が薄く「感じられる」というなら納得。 ちなみに要約、要約と言ってるけど 要約というのも情報処理だから当然情報量が減るわけですが、 そこはわかってますか? 要約された梗概ばっか読んでたら そりゃ目は楽だろうけども身のある話はできませんぜ? 要約なんてのは言わば骨格標本みたいなもので肉はないんだから。 それにこの程度のことで知識の垂れ流しと言われるのも心外。 議論のためのほんのとっかかりのつもりだし、 ちょっと年寄りの言語屋なら別に知るともなしに知ってるような話であって 自慢するほどの知識じゃない。 …と>>792を見た瞬間に思ったけども、>>794にある要約が>>792の真意なら あまり意味はない単なる煽りなわけで無視したほうがいいのかな?
- 797 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 16:32:08 ]
- >>795みたいな茶々いれの冗長性はどんなもんすかね?
- 798 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 16:37:55 ]
- >>796
一行で要約できますた。 「無視したほうがいいのかな?」
- 799 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 16:42:58 ]
- 梗概が読めなかった。「こうがい」って読むのか。
- 800 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 16:53:40 ]
- >>796
>自慢するほどの知識じゃない。 そう。 あなたの知識の垂れ流しは、言わばほとんど無駄な情報=ノイズなわけですよ。 あなたの言う骨と肉で例えると、見るに耐えないブヨブヨです。 すなわち骨が入ってるのかどうかさえ確認するのは困難です。 それをいちいち探りながら読んでいると時間も掛かり頭痛も絶えないわけでして、 長文をお書きならもうちょっと読ます文章を心掛けて書いて頂けませんか? ということですが、お分かりになられませんかね。
|

|