X



最も美しいプログラミング言語は? Part6

■ このスレッドは過去ログ倉庫に格納されています
0059デフォルトの名無しさん
垢版 |
2010/03/29(月) 13:07:51
美しいプログラミング言語には、マクロ、つまり実行前にプログラムを書き換える機能はあった方がいいのかな?
それとも、ない方がいいのかな?
0062デフォルトの名無しさん
垢版 |
2010/03/29(月) 16:00:21
>>61
コンパイラはネイティブコードを吐いたりしない。
実行後にネイティブコードに変換されんだよ。

常識だぞこんなこと。
0064デフォルトの名無しさん
垢版 |
2010/03/29(月) 16:29:14
>>63
ngen にしたってすぐじゃないだろ。
インストール時か最初の実行時であって、コンパイル時でないことは明白。

けど ngen の話になるんだ?
それもと「すぐに」というのは ngen 使うから「すぐに」と言いたかったのか。
ngen ってただのキャッシュだよ。根本的なこと勘違いしてんじゃね?
0065デフォルトの名無しさん
垢版 |
2010/03/29(月) 16:30:30
けど ngen の話になるんだ?
それもと「すぐに」というのは ngen 使うから「すぐに」と言いたかったのか。

→けどどうして ngen の話になるんだ?
→それとも「すぐに」というのは ngen 使うから「すぐに」と言いたかったのか。
0067デフォルトの名無しさん
垢版 |
2010/03/29(月) 17:13:24
トークンを置換するプリプロセッサマクロと、
構文木を変形するいわゆるLispのマクロは、一絡げにできないだろう
0070デフォルトの名無しさん
垢版 |
2010/03/30(火) 06:55:57
初カキコだがweb に特化すれば php, perl, java は美しい。

それぞれの言語でサイト作った感想から言えば、
phpはどんな環境でもそれなりに動くという点で美しい。
それこそ月300円の鯖にでも納品できる。
スレ的な美しさとは違うだろうが、これも言語仕様による
美しさだと思うがな。

個人的に一番好きなのはPerlだったりするが。
力技が一番効く言語だと思うし。なんでもあり。
0073デフォルトの名無しさん
垢版 |
2010/03/30(火) 08:58:58
>>70
>初カキコだがweb に特化すれば php, perl, java は美しい。
自分が使ったことのある言語を羅列してるだけだろ。
クライアントとサーバーサイドの違いを認識しているのかも怪しい。
0075デフォルトの名無しさん
垢版 |
2010/03/30(火) 19:26:09
>>60-65
実行前
xxx.exe
return
実行後

実行前
xxx.exe
実行後
return

xxx.exe
実行前
実行後
return

xxx.exe
実行前
実行
return
実行後

一体どれのことを言ってるんだ
007658
垢版 |
2010/03/31(水) 11:50:38
>>53 の「最終的にスタックマシンで実行される」に対して
実行時にはネイティブコードだよ出来なことを言ったつもりだった。
IL インタプリタなんかウォッチ式を評価するとき位しか使われないよね。
0079デフォルトの名無しさん
垢版 |
2010/03/31(水) 17:19:40
中間コード⇒ネイティブ
って最適化されてるん?
まさか中間コードを置き換えただけってことはないよね
0080デフォルトの名無しさん
垢版 |
2010/03/31(水) 17:41:06
http://msdn.microsoft.com/ja-jp/library/ht8ecch6(VS.80).aspx
MSIL (Microsoft Intermediate Language) は、実行する前に .NET Framework の Just-In-Time (JIT) コンパイラによってネイティブ コードに変換する必要があります。
ネイティブ コードは CPU 固有のコードで、JIT コンパイラと同じコンピュータ アーキテクチャ上で実行されます。
JIT コンパイルは、実行時に呼び出されることがないコードがあることを考慮しています。
つまり、ポータブル実行可能 (PE) ファイル内にあるすべての MSIL をネイディブ コードに変換するために時間とメモリを費やすのではなく、
実行時に必要になった MSIL を変換し、その結果生成されたネイティブ コードを保存して、以降の呼び出しで利用できるようにしておきます。
0081デフォルトの名無しさん
垢版 |
2010/03/31(水) 17:47:18
>>64
http://msdn.microsoft.com/ja-jp/library/ht8ecch6.aspx
ネイティブ イメージ ジェネレータ (Ngen.exe) を使用して、
JIT コンパイラと同様に MSIL アセンブリをネイティブ コードに変換します。

ただし、Ngen.exe の動作は、以下の 3 つの点で JIT コンパイラの動作と異なります。
・MSIL からネイティブ コードへの変換を、アプリケーション実行中ではなく、実行前に行います。
・メソッドを 1 つずつではなく、アセンブリ全体を一度にコンパイルします。
・生成したコードを、ディスク上のファイルとしてネイティブ イメージ キャッシュに保持します。
0083デフォルトの名無しさん
垢版 |
2010/03/31(水) 17:57:09
>>79
getter, setterをインライン展開するぐらいには最適化する。デバッガ上で実行すると最適化しないので、誤解をしている人もいるけど。
0088デフォルトの名無しさん
垢版 |
2010/04/06(火) 04:04:08
Haskellはflipとかポイントフリースタイルとかそういうのをやんなければ
かなり読みやすい部類だと思うぜ
簡潔なラムダとか関数適用演算子とかは他の言語にも欲しい
0089デフォルトの名無しさん
垢版 |
2010/04/06(火) 22:02:41
flip はまぁ分かるが、Haskell のポイントフリースタイルは
冗長な記述が省かれて読みやすくなる場合も結構あるぞ。

たとえば演算子をリフトアップで定義する場合。
instance (Num a) => Num (Hoge a) where
  (+) = liftA2 (+)

この場合 (+) x y = liftA2 (+) x y なんて冗長で、
こんな定義が何行も続くとかえって読みにくいだろ。
0093デフォルトの名無しさん
垢版 |
2010/04/21(水) 21:05:59
>>91

友人がメッチャScalaプッシュしてくるんだけど、どう断れば良いか
分からん。(興味無いとか、ピンと来ないとか言ってはいるんだが)

ちなみにおいらはLisperで最近Haskellに手を染め始めたところ
友人はPerl使い。

なんかビシッと言う方法無い?
0102デフォルトの名無しさん
垢版 |
2010/05/06(木) 10:31:41
objective-Cが最強。
0103デフォルトの名無しさん
垢版 |
2010/05/06(木) 12:55:17
Macなんか使ってる時点で人生終了w
0114デフォルトの名無しさん
垢版 |
2010/05/07(金) 18:50:32
どっちにしろ >>102 は池沼
0117デフォルトの名無しさん
垢版 |
2010/05/08(土) 00:52:50
1番美しいのは Haskell で結論出たんじゃないの?

これから 2番目に美しい言語を語ろうず これはなかなか難しいぞな

ココでそれからWindowsとかMacとか言ってるヤツはな、全然面白くないから
死ね な? 氏ねでも市ねでもなく 死ね OK?
0124デフォルトの名無しさん
垢版 |
2010/05/09(日) 20:31:15
規格化されてる。複数の実装が存在する。ユーザーの数。ライブラリ数。
書籍。プログラムの速度。この辺で、まとも。
まともでないのは、よく分からない、かつ、速度が遅くて、
メリットの不明な機能の作成に熱心な方々。
0127デフォルトの名無しさん
垢版 |
2010/05/09(日) 21:24:58
数値計算、金融計算、OS、言語処理系、組み込み系で考えたら、
他の言語の方が特化しているのは確かだろうけど、
多方面で扱うこと考えたらC++じゃないか
OOPやテンプレートで簡潔に書ける場面は存在するし
純粋な何々指向は、その縛りでかえって複雑になったり、
後々で不純物が混じったり。
なら、初めから不純物含んだものの方が目的達成するのがはやそう
という、プログラムの組めない奴の妄想
メリットが不明なのは、boostのconceptとか、lambdaとかファンクタとか
0128デフォルトの名無しさん
垢版 |
2010/05/09(日) 21:40:59
スレタイの「美しさ」とは無関係な議論だな
もうスレタイ的な意味の議論は終了してしまったから他の話をやってるだけか

templateは俺は嫌い
総称型、ダックタイピング、コンパイル時計算、メタプログラミングと
少なくとも4種類の目的の異なる仕事を(汚く/無理やり)扱っているのが
好きになれない
そもそも本当に全てが必要か、という問題もあるわけだが

OOPのための言語としてもC++はあまり良くないよね
純粋じゃない、というのはさておき、GC無いのとオブジェクトが
自己記述的じゃないのがOOP言語として見るとちょっとな
0129デフォルトの名無しさん
垢版 |
2010/05/09(日) 22:12:16
最近にublasを知って、templateが好きになったんだが、たぶん、
すぐに嫌いになるかもしれない。普通に配列で書く方が速そうだし。
数値計算するのに、C++は不要だろうが視認性が良いんだ。
GCのある言語だと数値計算、やたら遅いイメージが拭えないし。
純粋なOOPに、どれだけメリットと恩恵があるのか疑問。
SmalltalkよりJavaが勝利したあたりで、それほど必要だとも思えない
0130デフォルトの名無しさん
垢版 |
2010/05/09(日) 22:17:48
>>129
Javaも純粋じゃないけど、GCとまともに使える例外があって
オブジェクトが自己記述的だから、C++よりはずっと自然にOOPしやすいでしょ
まあJavaはJavaで融通が利かないから俺は好きじゃないんだけどな
0131デフォルトの名無しさん
垢版 |
2010/05/10(月) 00:19:45
GCはプログラミングがルーズになるし制御できない部分が気持ち悪い
作ったものくらい自分で始末しろとw
0135デフォルトの名無しさん
垢版 |
2010/05/10(月) 01:32:52
OCaml全然詳しくねーけど、チラ見した感じではなーんか微妙

関数型のくせにstringがmutableとか、意味不明なセンスの悪さをそこかしこに感じる
structural subtyping一見良さそうだけど、実行時情報ねーから
ダウンキャスト(風のこと)はできないっしょ?
"O"とかいいつつ、あれで下手にOOの真似事やろうとすると怪我すると思う

あとは、ありがちだけどライブラリが未成熟で、Unix系以外ではあんま使い物に
ならないっぽいよね
0136デフォルトの名無しさん
垢版 |
2010/05/10(月) 01:53:47
OCamlの良いところはな、OCamlかじってなんとも言えない気持ちの悪さ
を感じた時にHaskellかじると、なんだ関数プログラミング言語って実は
分かりやすいじゃんって思えるところナンテネ
0137デフォルトの名無しさん
垢版 |
2010/05/10(月) 01:59:47
一般的なプログラミング言語は計算能力において等価だから、
一昔前の言語で能力的には既に十分。

残された問題は、複雑なロジックをいかに簡潔に記述できるか、
それが他人にも理解されるかというだけ。
進歩の方向性はそれくらいしか考えられない。

0138デフォルトの名無しさん
垢版 |
2010/05/10(月) 12:03:50
>>136
これ正に俺だ
最初にHaskell触った時は全然理解できなかったけど
OCamlを触った後に再びHaskell触ったら割とすんなりなじむことができた
OCamlの表記法はなんともなじめなかったけど
0139デフォルトの名無しさん
垢版 |
2010/05/10(月) 20:50:48
言語進化とか言いながら、単に暗黙の前提仮定が増えただけだったりする。
ルールを知らないと読むこともできない。言語解説書バカ売れ。
制限は減ったのかもしれないけどな。
0147デフォルトの名無しさん
垢版 |
2010/05/12(水) 05:55:53
半年くらい前にここ覗いた時は何かJavaキチガイコテが連投してた気がするんだけど、
あいつは結局あの後どうなったん?
0149デフォルトの名無しさん
垢版 |
2010/05/12(水) 10:54:05
>>148
thx
超大雑把に流し読みしたが、誰かがガチで叩いたのかw
面白い流れを見逃したかもしれんなぁ

つーかよくあんなの真面目に叩く気になったもんだ、良くも悪くもすげーな
まぁこんなとこ見てる俺が言えた義理じゃねーけど
0152デフォルトの名無しさん
垢版 |
2010/05/13(木) 12:57:23
彼は特定のアセンブラ言語ではなく、アセンブラ言語の本質的な特性を好んでいるのだろう。
lispだって複数の言語の総称だ。
0153デフォルトの名無しさん
垢版 |
2010/05/14(金) 03:10:01
通訳無しにプロセッサと話せるのはアセンブラだけだしな
厳密には機械語だが、まぁ本質は同じだ
■ このスレッドは過去ログ倉庫に格納されています

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