2009-07-21 12 views
27

誰もがPythonのような構文を持つプログラミング言語を指すことができますが、最初からネイティブコードを生成するように設計されていますか?私はBooのみを認識していますが、ネイティブコード生成ではなく、.netを使用しています。まあ、.net/javaバイトコードを生成するpythonのような言語以外のものがあればいいです。Pythonのような構文でネイティブコードを生成するプログラミング言語

答えて

13

Cythonなどがありますが、生成するCコードはPython拡張のためのものですが、全体をパッケージ化することができます( 'import' ;-)の後にネイティブコードを実行します。

3

Javaバイトコードにコンパイルできるものがあれば、Jythonをご覧ください。それらから引用してくださいFAQ

JPythonは、Java(tm)プラットフォーム上で動作するように設計されたPythonプログラミング言語の実装です。 PythonのソースコードをJVM上で直接実行できるJavaバイトコード、コンパイルされたJavaバイトコードによって使用される一連のサポートライブラリ、およびJPython内からJavaパッケージを使用するための些細なサポートをコンパイルするためのコンパイラ。

私はまだ実際には使用していませんが、既存のJavaコードベースと統合する必要があるいくつかのプロジェクトでは検討しています。

ます。またIronPython調べることができますHTH

+0

Javaのバイトコード=ネイティブコード –

+2

@Edを - 質問をお読みください。彼は「まあ、.net/javaバイトコードを生成するようなPythonのような言語以外のものがあればいいです。」 – Rad

+0

Touche、私はそれをもっとよく読んでいたはずです。 –

1

- .NETフレームワーク

+2

* sigh * .NETはネイティブコードではありません。とにかく、少なくとも、デフォルトではありません。これはJavaのような仮想マシンです。 –

11

上のpython inplementationを私は2つの理由から、私は非常にあなたの質問を理解していないことを認めなければならない:

  1. ネイティブコード生成の言語を求めていますが、ネイティブコード生成はその言語とは何の関係もなく、実装の特徴です。 すべてのの言語には、ネイティブコード生成を実装することができます。いくつかのPython実装にはネイティブコード生成機能があります。 JVMバイトコード、CILバイトコード、またはECMAScriptソースコードにコンパイルするCコンパイラがあります。 C 通訳者もあります。 JavaソースコードまたはJVMバイトコードをネイティブコードにコンパイルするコンパイラもあります。

  2. なぜ構文について気にしますか?おそらく、プログラミング言語を選択する上で最も重要な要素ではありません。

とにかく、Nimrod構文(Cソースコードの生成をサポートするか、またはより正確に実装)ネイティブコードの生成をサポートする実装とを有するプログラミング言語のルックスによってWirthianスタイルの間のハイブリッドが(あります最も重要な影響はOberonとDelphiです)とPythonです。

しかし、Pythonic構文を持っているという事実は、ヨーロッパスタイルの言語デザインやWirthianスタイルのOOPが気に入らなければ、まったく助けにならないでしょう。

+4

本当にありません。プログラミング言語全体は、言語構文+コアライブラリ+それが実行される環境です。 'java.lang.Object'ではなく、' System.Object'がJavaではないC#:P – OscarRyz

+11

私は同意するオブジェクト指向プログラミング言語を考えてください。高性能で面倒な構文を持つプログラミング言語は、非常に鋭いナイフのようなものですが、ハンドルには針が付いています。 また、「ヨーロッパスタイルの言語設計」というものはありません。 – paniq

+3

OPの希望は、「当初からネイティブコードを生成するように設計されていた」ものです。 Pythonなど多くの言語は、特定の動的機能のためにネイティブコード生成を非常に困難にします。他の多くはわずかに異なりますが、ネイティブコードに非常に簡単にコンパイルすることができます(Nimrodなど)。だから私はあなたの最初の点に同意しない。 – Ponkadoodle

7

今日、DelightのDバックエンドにPython構文を適用しています。

およびConvergeもあります。

3

PyPyは、PythonでPythonを再実装するプロジェクトです。その目的の1つは、Cを含む複数のバックエンドを使用できるようにすることです。純粋なPythonプログラムをC言語に変換し、ネイティブコードにコンパイルすることができます。それはまだ進行中の作業なので、おそらくプロダクションコードには適していません。 GNOMEプロジェクトの一部である

6

shedskinは、プロジェクトページをshedskin

シェッド皮膚からC++

にはPythonをコンパイルし、最適化C++に純粋翻訳することができ、実験コンパイラ、 ですが、 暗黙的に静的型付けのPython プログラム。 スタンドアロンプ​​ログラムを生成したり、 拡張モジュールをインポートして、より大きなPythonプログラムで使用することができます。

7

ことを強くパイソン、C#、エッフェル塔、Objective-Cのと他のプログラミング言語に影響されCobra

をチェックしてください。これは、静的型と動的型の両方をサポートします。ユニットテストと契約のためのファーストクラスサポートを提供しています。 Cobraは、同じ言語での迅速な開発とパフォーマンスの両方を提供します。

+1

コブラはうまく見えます。私は特にデフォルトでは正しい実数が好きです。それは安全ですが、「損失の多い」浮動小数点は、安全であるときに使用される最適化でなければなりません。デフォルトではありません。 しかし、Cobraは悲しいことにネイティブコードを生成しません。これは、仮想マシンである.NET上で動作します。これは、例えば、各アイテムがVMにいくらかのオーバーヘッドを持っているギガバイトのデータを処理するコードを書くときに、大きな違いを生む可能性があります。 ニムロッドはここに行く道です.Dは合理的な選択肢です。 –

+1

Cobra *はネイティブコードを生成します。 VM上で実行することは必須条件ではありません。 DまたはNimと一緒に行く必要はありません –

関連する問題