7

別のスレッドにこの引用がありました

  1. Erlang VM BEAM と HiPE は、ほとんどが C で書かれています。
  2. リンクされたドライバーは、ほとんどが C で記述されています (VM にプラグインされ、外部との通信を提供します)。

Ada の強力な型付け、モジュール性、実行時チェック、並列処理などは C よりも優れているという意見をいくつか読みました。

Ada を使用してコンパイルされた Erlang は、C で作成された Erlang よりも明らかに優れていますか?

ただの仮説Q。

4

3 に答える 3

11

通常、私はこのようなトピックについてあなたにたくさんのイタチの言葉を投げかけますが、この正確な質問が研究されていることがわかりました (.doc ファイルです。申し訳ありません)。

Rational には、両方の言語の大量のコードと、バグ率、修正時間などについて数年にわたってコンパイルされた大量のデータを含むコンパイラがありました。好奇心から、同社のエンジニアの 1 人が数値を計算しました。

答えは「Cの開発費がAdaを超える」でした。要約のタイトルを読み進めると、Ada で同じコードを書くと、C で書くコストの約半分のコストがかかると彼らが考えていることがわかります。

これを読んでいる人は皆、その結論に穴を開けることを切望していることを私は知っています. 私もそうでした。しかし、彼らは私がレポートで思いつくあらゆる角度から見ていました。

于 2009-07-06T16:25:40.000 に答える
4

どのように「より良い」?より速いほど良いですか?バグが少ないほど良いですか?よりポータブルなほど良いですか?より読みやすいように良いですか?より拡張可能な方が良いですか?

「より良い」議論の適切な定義については、どちらの方法でも行うことができます。ただし、C よりも移植性に優れたコンパイル済み言語は存在しないということは、神聖な理由にすぎません。したがって、アプリケーションの移植性を高めることが目標の 1 つである場合、C は優れた選択肢です。

Ada よりも C を理解している人の方が多い。erlang 拡張機能を Ada で作成した場合、単純にこの言語に精通している人が少ないため、作成ははるかに困難になる可能性があります。

C コードは非常にパフォーマンスが高い場合がありますが、C と Ada をコンパイラの最適化なしで比較することはできません。

Ada の型チェックは役に立つかもしれませんし、実際の問題になるかもしれません。VM は、重要な部分について独自の型チェックを行うと想定されます。Ada の RTTC のオーバーヘッドは、まったく不要な負担を課す可能性があります。

于 2009-07-06T15:28:19.857 に答える
0

おそらくですが、あなたの Ada コンパイラはどの言語で書かれていましたか? エイダ?FIRST Ada コンパイラを作成するコンパイラはどうですか?

ソフトウェアを構築しているある時点では、形式的なセマンティクスとソフトウェア プロセスが、コード化された言語よりもはるかに重要になります。

于 2009-07-06T15:20:44.783 に答える