【发布时间】:2013-02-12 06:43:00
【问题描述】:
我已经开始使用 Haxe 将我的 ActionScript 3 项目转换为 NME,但是,我想知道 Linux 世界中的 Neko 是什么?我搜索了一下,发现它是一只动画猫!
谁能给我解释一下?
【问题讨论】:
我已经开始使用 Haxe 将我的 ActionScript 3 项目转换为 NME,但是,我想知道 Linux 世界中的 Neko 是什么?我搜索了一下,发现它是一只动画猫!
谁能给我解释一下?
【问题讨论】:
Neko 对大多数人来说只不过是 Haxe 的目标。这在技术上并不正确(它确实有自己的语言,并且可能成为其他语言的目标),但对于大多数人来说,Neko 是 Haxe 输出目标之一。
与 Java 虚拟机 (JVM) 可以以多种语言为目标的方式相同(请参阅wikipedia 上的列表),Neko 是一种理论上可以从多种语言写入的字节码格式。然而,对于 Neko,大多数人似乎使用 Haxe 来创建他们的 *.n 文件。
对于 Haxe 程序员,Neko 目标可让您:
如果您只对定位 SWF 或 JS 感兴趣,那么您可能对 Neko 的需求不大。但是,如果您正在编写服务器端代码,您会喜欢它的性能,如果您正在编写 CPP,您可能会喜欢有一个简单的目标,它非常容易编译,而且编译起来非常快,并且行为类似于 CPP。
当然,在 Haxe neko 之外是它自己的语言……但至少在我看来,大多数人只是将它与 Haxe 一起使用。
更多信息:
如果您想用 Neko 语言编写(请参阅 this tutorial),您可以将代码保存为“myfile.neko”并使用 nekoc myfile.neko 编译,这将编译 Neko 字节码文件“myfile.n”。
如果您想用 Haxe 语言编写,您可以将文件保存为“MyFile.hx”并使用“haxe -neko myfile.n -main MyFile”进行编译。
这两个生成的“myfile.n”没有人类可读的源代码——这是 Neko 字节码。您可以通过运行neko myfile.n 在任何安装了 Neko 的计算机上运行它。您可以通过运行nekotools boot myfile.n 将其转换为适用于您的平台/操作系统的可执行文件(在没有安装 Neko 的情况下运行)。
这是一个关于Getting Started With Neko 的教程,它涵盖了您编写的命令行程序和(非常非常基本的)网页。
【讨论】:
“Neko”是"cat" 的日语,这可能就是你找到你所做的事情的原因。
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 开发学习它是因为它是用于编译时宏的运行时。请参阅this tutorial,了解如何在编译时运行部分程序并完全访问构建机器,这意味着您甚至可以在编译时执行复杂的任务,例如解析数据文件。
【讨论】:
Neko 为几种不同的语言(包括 javascript 和 haxe)提供了一个通用运行时。编译器将源文件 (.neko) 转换为可以在虚拟机上执行的字节码文件 (.n)。您可以将编译器用作独立于虚拟机的独立命令行可执行文件,或用作 neko 库来执行交互式语言的编译和运行。 neko 是 nicolas cannasse 写的。
你可以找到Neko Tutorial here
【讨论】: