12

C コードから動的にロード可能で呼び出し可能なライブラリを作成したいのですが、C で作成したくありません。コードはセキュリティ クリティカルなので、自分のコードが信頼できる言語が必要です。正しい。私のオプションは何ですか?

もっと具体的に言うと、C プログラマーにはあれも#includeこれもでき-lて、C で書いたように自分のライブラリを使い始めてほしいです。 C ライブラリにリンクしてリンクします。理想的には、C をサポートするすべてのプラットフォームでそれが可能になることを望みますが、Linux、Windows、および MacOS で解決します。

4

8 に答える 8

5

ネイティブ コードにコンパイルされるものすべて。それで、「ネイティブ コードにコンパイルされる言語」ということで、Google で検索するかもしれません。たとえば、ネイティブコードにコンパイルされ、バッテリーが含まれているプログラミング言語を参照してください。

多くの場合、これには C++ が選択されます。ネイティブ コードにコンパイルし、インターフェイスをシンプルに保ち、アダプター レイヤーを簡単に記述できるようにします。

Objective C と Fortran も可能です。

于 2013-05-07T20:35:32.427 に答える
4

ABI互換の言語、またはネイティブコードになると説明できる言語を探しているようです。リンカーによって受け入れられる有効なオブジェクト ファイル (通常は .obj または .o ファイル) にコンパイルできる限り、それが主な基準になります。また、C (または密接に関連する言語/そのバリアント) で記述されたクライアント コードの便宜上、ヘッダー ファイルを記述します。

他の人が述べたように、C 以外の言語を選択するにはかなりの理由が必要です。C は低レベル/システム ソフトウェアのリンガ フランコだからです。アセンブラーはオプションですが、プラットフォーム間での移植は困難です。Dは移植性に優れていますが、あまり普及していませんが、最小限の労力で安全で効率的なネイティブ コードを生成するように設計されています。他にもたくさんあります。

于 2013-05-07T22:45:08.827 に答える
2

理論的には、それは Fortran になります: 間接性が少なくなります (例: 私の配列は [ここ] であり、単なるここへのポインターではありません。これはほとんどのデータ構造と変数に当てはまりますが、すべてではありません)。

ただし... Fortran には多くの落とし穴や癖があります。おそらく、C ほどではありませんが、Fortran よりも C の使い方をよく知っているでしょう。「自分のコードを知っている」というコメントの背後にあるポイントはどれですか?しかし、コンパイラが何をしているのか本当に知っていますか?

あなたのことを知っているので、私はあなたのことを信頼して引き受ける準備ができています.Cのために.ほとんどのプログラマーはそうではありません. Java または C# r スクリプト言語を使用している場合、ローカルの JVM または JIT コンパイラが何をするのかを知らないし、知ることもできません。これはセキュリティ モデルのブラック ホールです。

セキュア コンピューティングの毛むくじゃらの男たちが独自のアセンブラを書いていると言う人は無視してください。確かに、コンパイラを知ってください。

于 2013-05-08T22:51:47.440 に答える