【问题标题】:What is Neko anyway?Neko到底是什么?
【发布时间】:2013-02-12 06:43:00
【问题描述】:

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

谁能给我解释一下?

【问题讨论】:

    标签: haxe neko


    【解决方案1】:

    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 语言编写(请参阅 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 的教程,它涵盖了您编写的命令行程序和(非常非常基本的)网页。

    【讨论】:

    • 感谢您的详细回答,您能否解释一下,*.n 文件是什么?有没有链接可以让我学习如何使用 neko 编写网络应用和 CPP 定位?
    • 更新了我的答案,希望能回答你的问题:)
    • 这肯定回答了我的问题,感谢您的描述性回答
    • 嗨西莫!我只想支持 Jason 在这里所说的——我使用 Neko 进行 Web 开发,我永远不会梦想再次回到 php。速度很棒(与 php 相比),但主要原因是出色的 Haxe 语言 - 使用纯粹的乐趣,并不断改进! (haxe.org)
    • 说到NME,我大部分核心NME开发都是用Neko target,后来编译成Flash、Html5、Cpp、Android……
    【解决方案2】:

    “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,了解如何在编译时运行部分程序并完全访问构建机器,这意味着您甚至可以在编译时执行复杂的任务,例如解析数据文件。

    【讨论】:

    • 谢谢,这很有用!
    【解决方案3】:

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

    你可以找到Neko Tutorial here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-06
      • 2013-05-05
      • 2010-11-19
      • 2012-06-16
      • 2011-04-02
      • 2016-04-13
      • 2012-03-07
      • 2013-08-14
      相关资源
      最近更新 更多