29

我已经开始使用 Haxe 将我的 ActionScript 3 项目转换为 NME,但是,我想知道 Linux 世界中的 Neko 是什么?我搜索了一下,发现它是一只动画猫!

谁能给我解释一下?

4

3 回答 3

59

对于大多数人来说, Neko只不过是 Haxe 的目标。这在技术上并不正确(它确实有自己的语言,并且可能成为其他语言的目标),但对于大多数人来说,Neko 是 Haxe 输出目标之一。

与 Java 虚拟机 (JVM) 可以以多种语言为目标的方式相同(参见wikipedia上的列表),Neko 是一种理论上可以从多种语言写入的字节码格式。然而,对于 Neko,大多数人似乎使用 Haxe 来创建他们的 *.n 文件。

对于 Haxe 程序员,Neko 目标可让您:

  • 编写命令行工具和实用程序(例如,haxelib 和 haxedoc 是用针对 Neko 的 Haxe 编写的)
  • 编写 Web 应用程序或动态网页 - 使用 mod_neko(或 mod_tora),您可以获得与 PHP 具有相同功能的 Web 处理器,但速度要快一些。
  • 使用 NME(最初从 Neko 开始,它代表 Neko Media Engine)创建游戏,并快速编译它们,目标更接近 CPP 的目标,但编译速度更快,并且输出是跨平台的。
  • 与 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 -main MyFile”进行编译。

由这两者生成的“myfile.n”没有人类可读的源代码——这是 Neko 字节码。您可以在任何安装了 Neko 的计算机上运行它neko myfile.n。您可以通过运行nekotools boot myfile.n.

这是Neko 入门教程,它涵盖了您编写的命令行程序和(非常非常基本的)网页。

于 2013-02-12T09:47:01.117 回答
10

“Neko”是日语中“猫”的意思,这可能就是你找到你所做的事情的原因。

Neko也是一个虚拟机(“VM”),类似于 Java 虚拟机(“JVM”)或 .Net 公共语言运行时(“.Net CLR”)。

Neko 有一种定制的高级语言,可作为易于定位的语言后端(在某种程度上类似于C,但不像LLVM,它更接近于汇编语言)。换句话说:这是一种编程语言可以翻译成的东西,而不是更复杂的“完整”编译(如汇编、字节码或机器码)。Neko 的语言可以翻译成字节码,它是可移植的,通常存储在“.n”文件中。

Neko 是由 Nicolas Cannasse(制作 Haxe 编程语言的人)制作的,这可能就是为什么 Haxe 在其编译器中有一个 Neko 目标,并且 Haxe 工具(例如“haxelib”)使用它。由于这些工具被编译成“.n”文件,它们只需要构建一次,然后它们就可以在任何安装了 VM 可执行文件“neko”的平台上工作。

也许关于 neko 的一个更有趣的地方,以及为什么你应该为 Haxe 开发学习它是它是用于编译时宏的运行时。请参阅本教程,了解如何在编译时运行部分程序并完全访问构建机器,这意味着您甚至可以在编译时执行复杂的任务,例如解析数据文件。

于 2014-09-16T11:01:38.497 回答
6

Neko 为几种不同的语言提供了一个通用的运行时,包括 javascript 和 haxe。编译器将源文件 (.neko) 转换为可以在虚拟机上执行的字节码文件 (.n)。您可以将编译器用作独立于虚拟机的独立命令行可执行文件,或用作 neko 库来执行交互式语言的编译和运行。neko 是由 nicolas cannasse 写的。

你可以在这里找到 Neko 教程

于 2013-02-12T06:46:37.790 回答