私はHaxeを使用してActionScript3プロジェクトをNMEに変換し始めましたが、Linuxの世界でNekoとは何かを知りたいのですが。探してみたら、アニメの猫が見つかりました!
誰か説明してもらえますか?
Neko ほとんどの人にとってHaxeターゲットにすぎません。これは技術的には真実ではありませんが(独自の言語があり、他の言語のターゲットになる可能性があります)、ほとんどの人にとって、NekoはHaxeの出力ターゲットの1つです。
Java仮想マシン(JVM)を複数の言語からターゲットにできるのと同じように( wikipedia のリストを参照)、Nekoは理論的には次のようなバイトコード形式です。複数の言語から書かれていますが、Nekoの場合、ほとんどの人はHaxeを使用して* .nファイルを作成しているようです。
Haxeプログラマーの場合、Nekoターゲットを使用すると次のことができます。
SWFまたはJSのみをターゲットにすることに関心がある場合は、おそらくNekoはあまり必要ありません。ただし、サーバーサイドコードを記述している場合は、パフォーマンスを高く評価します。CPPを記述している場合は、コンパイルが非常に簡単で非常に高速で、CPPと同様に動作する単純なターゲットがあることを高く評価する場合があります。
もちろん、Haxe neko以外では、それは独自の言語です...しかし、少なくとも私には、ほとんどの人がHaxeでそれを使用しているようです。
詳細情報:
Neko言語で記述したい場合( このチュートリアル を参照)、コードを「myfile.neko」として保存し、nekoc myfile.neko
でコンパイルすると、Nekoバイトコードファイル「myfile」がコンパイルされます。 .n "。
Haxe言語で記述したい場合は、ファイルを「MyFile.hx」として保存し、「haxe -neko myfile.n-mainMyFile」でコンパイルすることができます。
これらの両方によって生成される「myfile.n」には、人間が読めるソースコードがありません。これはNekoバイトコードです。 neko myfile.n
を実行すると、Nekoがインストールされている任意のコンピューターで実行できます。 nekotools boot myfile.n
を実行すると、プラットフォーム/ OS用の実行可能ファイル(Nekoがインストールされていない状態で実行可能)に変換できます。
これは Neko入門 のチュートリアルで、作成するコマンドラインプログラムと(非常に基本的な)Webページの両方をカバーしています。
「ねこ」は日本語で "cat" の意味で、おそらくそれがあなたがやったことを見つけた理由です。
Neko は、Java仮想マシン( "JVM")または.Net共通言語ランタイム( ".Net CLR")のような仮想マシン( "VM")でもあります。 ")。
Nekoには、簡単にターゲットを絞った言語バックエンドとして作成されたカスタム高級言語があります(ある意味で C- のようですが、 [〜#〜] llvm [〜#〜])のようではありません 、これはアセンブリ言語に近いです)。言い換えれば、これは、より複雑な「完全な」コンパイル(アセンブリ、バイトコード、マシンコードなど)ではなく、プログラミング言語に変換できるものです。 Nekoの言語はバイトコードに翻訳できます。バイトコードは移植可能で、通常は「.n」ファイルに保存されます。
NekoはNicolasCannasse(Haxeプログラミング言語を作成したのと同じ人物)によって作成されました。これが、HaxeのコンパイラにNekoターゲットがあり、「haxelib」などのHaxeツールがそれを使用している理由です。ツールは「.n」ファイルにコンパイルされるため、一度ビルドするだけで、VM実行可能ファイル「neko」がインストールされている任意のプラットフォームで動作します。
おそらく、nekoについてもっと興味深い点があり、Haxe開発でそれを学ぶ必要がある理由は、それがコンパイル時マクロに使用されるランタイムであるということです。ビルドマシンへのフルアクセスでプログラムの一部をコンパイル時に実行する方法については、 このチュートリアル を参照してください。つまり、コンパイル時にデータファイルの解析などの複雑なタスクを実行することもできます。
Nekoは、javascriptやhaxeなど、いくつかの異なる言語に共通のランタイムを提供します。コンパイラは、ソースファイル(.neko)を仮想マシンで実行できるバイトコードファイル(.n)に変換します。コンパイラは、仮想マシンから分離されたスタンドアロンのコマンドライン実行可能ファイルとして、またはインタラクティブ言語のコンパイルと実行を実行するためのnekoライブラリとして使用できます。 nekoはnicolascannasseによって書かれました。
あなたは見つけることができます ここにNekoチュートリアル