私はJavaScript の開発を容易にするためにCoffeeScriptを使用しています。これは、JavaScript にコンパイルされるクリーンな構文を持つ言語です。
では、構文を簡素化し、機能を強化するために、C/C++ ソース コードにコンパイルする確立されたプログラミング言語は何ですか?
私はJavaScript の開発を容易にするためにCoffeeScriptを使用しています。これは、JavaScript にコンパイルされるクリーンな構文を持つ言語です。
では、構文を簡素化し、機能を強化するために、C/C++ ソース コードにコンパイルする確立されたプログラミング言語は何ですか?
Haxe言語は、C++、C#、Java、JavaScript、Python (実験的)、PHP、Flash、および NekoVM に出力できます。
GHC (Glasgow Haskell Compiler)-fvia-c
には、 C にコンパイルするためのオプション ( ) がありました。
ただし、v7 以降では、LLVM を使用して、外部の C コンパイラを経由する代わりにネイティブ コードを生成していると思います。
OOCは非常に新しいですが、非常に優れています。
PHPプログラムをC++に変換するHipHopがあります。
Qtのドキュメントを引用:
メタオブジェクト コンパイラである moc は、Qt の C++ 拡張機能を処理するプログラムです。moc ツールは、C++ ヘッダー ファイルを読み取ります。Q_OBJECT マクロを含む 1 つ以上のクラス宣言が見つかった場合、それらのクラスのメタオブジェクト コードを含む C++ ソース ファイルを生成します。特に、メタオブジェクト コードは、シグナルとスロットのメカニズム、実行時の型情報、および動的プロパティ システムに必要です。moc によって生成された C++ ソース ファイルをコンパイルし、クラスの実装にリンクする必要があります。
つまり、C++ が C++ に変わったようなものです。探しているものに適合するかどうかはわかりません。
プログラミング言語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に前処理したりしています。
Embeddable Common Lisp (ECL)は、Common Lisp を C にコンパイルできます。
LLVM 用の C バックエンドを作成して、ほとんど何でも C に翻訳できると思いますが、より深い問題は「なぜ?」ということです。現在、これを行うツールがない理由は、C にコンパイルする場合は、代わりに何らかの中間マシン コード言語をターゲットにしてみませんか? (たとえば、LLVM または JVM)
昔は、適切な vm 言語がなかったため、C にコンパイルするという考えはもう少し擁護されていましたが、今日ではそうする正当な理由はあまりありません。とはいえ、特定のインタープリター言語を使用して C/C++ にコンパイルしようとするプロジェクトはまだたくさんあります。たとえば、Python から C++ へのコンパイラは次のとおりです。
ほとんどの主要なプログラミング言語はチューリング完全であるため、実際には同等であり、それらで記述されたプログラムは相互に変換できると主張する人もいるかもしれません。
とは言うものの、他の人が言及しているように、Cコードを生成するバックエンドが存在する(または開発の初期段階で使用されていた)言語はかなりあります。これにより、言語の実装からバイナリコード生成に伴う複雑さが解消されたためです。 。これは、コードが実際に読み取り可能であることを意味するものではありません(意図しないしゃれ)。コンパイルされた形式よりも読み取り可能でした。
リストへの私の貢献に関しては、lexとyaccの「プログラム」(それらがそれと見なすことができる場合)は通常、Cコードに変換されます-それの恐ろしい、絡み合った混乱ですが、それでもCコードは...
clangはC++をCにコンパイルできると聞いていますが、それで何かが「単純化」されるとは思えません。
Matlab (Embedded Matlab) のサブセットは C にコンパイルできます。組み込みコーダー ツールボックスが必要です。
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
ほとんどの言語を使用して C コードを生成できますが、実際には何をしようとしているのかによって異なります。本当にコードを読めるようになりたいですか?Windows アプリケーションを作成しようとしているだけですか?
習得が容易で普遍的に役立つ言語を探しているなら、Python は常に良い選択であり、C/C++ ができるすべてのことを行うことができます。