2

私はほんの数時間前に、特定の疑似コードを変換し、スタックとキューの作業を保護して、c/c++ 実行可能コードに変換する疑似コード トランスレータの作業を開始しました。翻訳者には教育の目的があります。

私はまだプロジェクトを設計しています。

どうすればこれができるかを考え始めました。これを行うための最良の方法は、最初に疑似コードを分析し、それを c/c++ コードに変更してから、コンパイルして exe にすることであると考えました。

これは、クライアント マシンに ac/c++ コンパイラがインストールされている必要があることを意味します。

私は .NET クラス (System.Collections.Generic.Queue(Of T)およびSystem.Collections.Generic.Stack(Of T)) を使用しているため、これに対する解決策は、Visual Studio が c/c++ コードをコンパイルするために使用するのと同じコンパイラを使用することであると考えました。

私はこのプロセスについて調査してきましたが、私の知る限り、ビジュアル スタジオ ツールを使用して c/c++ コードをコンパイルする唯一の方法は、Visual Studio コマンド プロンプトから cl.exe を実行することです。MSDNでその情報を見つけました(ac/c++ プログラムを手動でコンパイルする方法に関する記事)

私の最初の質問は、.NET Framework の USER バージョン (つまり、ユーザーが Visual Studio を持っていないと仮定した場合) には ac/c++ コンパイラが含まれていますか? はいの場合、それはビジュアル スタジオの cl.exe に含まれているものと同じですか? どうすればアクセスできますか? いいえの場合、トランスレータのセットアップに含めることができる IDE なしの無料のコンパイラはありますか?

ここでは、疑似コード文字列を実行可能な c/c++ コードに変換することについて話していることに注意してください。出力文字列はユーザ​​ー PC からコンパイルする必要があります。それがプロジェクトの目的です。

4

2 に答える 2

0

.Net フレームワークにはコンパイラは含まれていません。これは、コンパイラによって生成されたバイナリ ファイルを実行するためのものです。

たとえば、Visual Studio Express の無料ダウンロード スキームを使用して、コンパイラを無料で入手できます。それにはいくつかのライセンス制限があります (私の記憶が正しければ「商用利用禁止」 - つまり、顧客の 1 人があなたの製品を使用した場合、彼らは生成した結果のコードを販売できず [契約の範囲内にある] ということになります)。 MS]))。残念ながら、これは「IDE なし」ではありませんが、ダウンロードの一部であるコンパイラは IDE なしで使用できます。したがって、「IDE なし」が単にプログラムでコンパイラを実行できるようにしたい場合は、動作します。

コンパイラ (.Net バリアント) を含むが IDE コードを含まないパッケージが本当に必要な場合は、別のソリューションを見つける必要があります。DDK (デバイス ドライバー キット) には、ネイティブの C および C++ コンパイラーが含まれています。しかし、私の知る限り、.Net コードは生成されません [私は間違っている可能性があります]。

編集: 独自のコードを記述している場合は、を使用してコンパイルできるようですがCSharpCodeProvider、これは のコマンドライン コンパイラとは異なりcl.exeます。

于 2013-05-18T07:13:48.670 に答える
0

The long, the short, and the ugly is "no". The only C++ compiler remotely suitable for inclusion as a library is Clang, it's free and not toooooo bad to work with, and you'll have to write your own .NET binding, and don't forget to have fun with providing your own linker and stdlib.

于 2013-05-18T07:36:33.860 に答える