65

私はJavaScript の開発を容易にするためにCoffeeScriptを使用しています。これは、JavaScript にコンパイルされるクリーンな構文を持つ言語です。

では、構文を簡素化し、機能を強化するために、C/C++ ソース コードにコンパイルする確立されたプログラミング言語は何ですか?

4

14 に答える 14

17

Haxe言語は、C++、C#、Java、JavaScript、Python (実験的)、PHP、Flash、および NekoVM に出力できます。

于 2011-07-08T00:05:47.497 に答える
14

ValaGenieは、GObject型システムを使用し、Cコードにコンパイルする言語です。私はそれらを使ったことがありませんが、それらは面白そうです。GObjectはGTKで使用されている型システムですが、GTKから分離できると思います。

于 2011-07-07T20:38:17.540 に答える
9

GHC (Glasgow Haskell Compiler)-fvia-cには、 C にコンパイルするためのオプション ( ) がありました。

ただし、v7 以降では、LLVM を使用して、外部の C コンパイラを経由する代わりにネイティブ コードを生成していると思います。

于 2011-07-11T09:40:49.087 に答える
9

OOCは非常に新しいですが、非常に優れています。

于 2011-07-12T21:29:17.003 に答える
8

PHPプログラムをC++に変換するHipHopがあります。

于 2011-06-27T20:58:22.003 に答える
7

Qtのドキュメントを引用:

メタオブジェクト コンパイラである moc は、Qt の C++ 拡張機能を処理するプログラムです。moc ツールは、C++ ヘッダー ファイルを読み取ります。Q_OBJECT マクロを含む 1 つ以上のクラス宣言が見つかった場合、それらのクラスのメタオブジェクト コードを含む C++ ソース ファイルを生成します。特に、メタオブジェクト コードは、シグナルとスロットのメカニズム、実行時の型情報、および動的プロパティ システムに必要です。moc によって生成された C++ ソース ファイルをコンパイルし、クラスの実装にリンクする必要があります。

つまり、C++ が C++ に変わったようなものです。探しているものに適合するかどうかはわかりません。

于 2011-06-27T21:07:40.597 に答える
4

プログラミング言語IBMInformix4GLは、Cコードへの多段階変換を経て、コンパイルされ、独自のランタイムライブラリ、ESQL / C(Embedded SQL in C)ランタイムライブラリ、およびシステムのCライブラリにリンクされます。

  • program.4gl-元のソースコード
  • program.4ec-ESQL/Cが埋め込まれ入力操作が拡張されたCコード
  • program.ec-ESQL/Cが埋め込まれたCコード
  • program.c-純粋なCコード
  • program.o-オブジェクトコード
  • program- 実行可能

この.4ecフェーズは一種の歴史的な事故です。元々、ESQL/Cコンパイラは拡張入力操作とESQL/Cの両方を処理していましたが、拡張操作がESQL / Cコンパイラから削除されたとき(ESQL / Cライブラリとコンパイラが大幅に書き直されたとき)、拡張入力操作は元のESQL/Cコンパイラからそれを処理するコードを切り出すことによって処理されました。

かなりの数の人々が、別の言語からI4GLソースを書き込むコードジェネレーターを作成したり、密接に関連するソースコードをI4GLコンパイラーに送信する前にI4GLに前処理したりしています。

于 2011-07-08T00:40:49.713 に答える
4

Embeddable Common Lisp (ECL)は、Common Lisp を C にコンパイルできます。

于 2011-07-10T16:44:55.100 に答える
3

LLVM 用の C バックエンドを作成して、ほとんど何でも C に翻訳できると思いますが、より深い問題は「なぜ?」ということです。現在、これを行うツールがない理由は、C にコンパイルする場合は、代わりに何らかの中間マシン コード言語をターゲットにしてみませんか? (たとえば、LLVM または JVM)

昔は、適切な vm 言語がなかったため、C にコンパイルするという考えはもう少し擁護されていましたが、今日ではそうする正当な理由はあまりありません。とはいえ、特定のインタープリター言語を使用して C/C++ にコンパイルしようとするプロジェクトはまだたくさんあります。たとえば、Python から C++ へのコンパイラは次のとおりです。

http://shed-skin.blogspot.com/

于 2011-06-27T21:05:13.520 に答える
1

ほとんどの主要なプログラミング言語はチューリング完全であるため、実際には同等であり、それらで記述されたプログラムは相互に変換できると主張する人もいるかもしれません。

とは言うものの、他の人が言及しているように、Cコードを生成するバックエンドが存在する(または開発の初期段階で使用されていた)言語はかなりあります。これにより、言語の実装からバイナリコード生成に伴う複雑さが解消されたためです。 。これは、コードが実際に読み取り可能であることを意味するものではありません(意図しないしゃれ)。コンパイルされた形式よりも読み取り可能でした。

リストへの私の貢献に関しては、lexyaccの「プログラム」(それらがそれと見なすことができる場合)は通常、Cコードに変換されます-それの恐ろしい、絡み合った混乱ですが、それでもCコードは...

于 2011-07-07T21:18:10.530 に答える
0

clangはC++をCにコンパイルできると聞いていますが、それで何かが「単純化」されるとは思えません。

于 2011-06-27T20:59:45.890 に答える
0

Matlab (Embedded Matlab) のサブセットは C にコンパイルできます。組み込みコーダー ツールボックスが必要です。

于 2011-07-07T20:54:10.553 に答える
0

Oracle の PRO*C/C++ は組み込み SQL 言語です。これにより、組み込み SQL ステートメントを必要な C/C++ SQL ライブラリーへの関数呼び出しに置き換えるプリコンパイラーによって処理される C/C++ に SQL ステートメントを含めることができます。プリコンパイラからの出力は、実行可能ファイルにコンパイルできる標準 C/C++ です。

http://en.wikipedia.org/wiki/Pro*C
http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14407/toc.htm

于 2011-06-27T21:05:55.040 に答える
-1

ほとんどの言語を使用して C コードを生成できますが、実際には何をしようとしているのかによって異なります。本当にコードを読めるようになりたいですか?Windows アプリケーションを作成しようとしているだけですか?

習得が容易で普遍的に役立つ言語を探しているなら、Python は常に良い選択であり、C/C++ ができるすべてのことを行うことができます。

于 2011-06-27T21:04:08.433 に答える