NekoVM - NekoVM
![]() | tento článek potřebuje další citace pro ověření.Červen 2020) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
![]() | |
Paradigma | Objektově orientovaný, strukturovaný, na základě prototypu, skriptování |
---|---|
Navrhl | Nicolas Cannasse |
Vývojář | Motion Twin, Shiro hry |
Poprvé se objevil | 2005 |
Stabilní uvolnění | 2.3.0 / 24. října 2019 |
Psací disciplína | Dynamický |
Jazyk implementace | C, OCaml |
Plošina | IA-32, x86-64 |
OS | Okna, Operační Systém Mac, Linux |
Licence | MIT |
Přípony názvu souboru | .neko .n |
webová stránka | nekovm |
Hlavní, důležitý implementace | |
Neko, Haxe |
NekoVM je virtuální stroj vyvinutý Nicolasem Cannasseem jako součást výzkum a vývoj (VaV) úsilí ve dvou indie video hra firmy v Bordeaux, Francie: nejprve v Motion Twin a poté v Shiro hry. Rodným jazykem NekoVM je bytecode pro vyšší úroveň dynamicky zadáno programovací jazyk volala Neko. Toto párování umožňuje Neko použít přímo jako vložený skriptovací jazyk nebo cílit na NekoVM kompilací jiného jazyka (například Haxe ) na NekoVM bytecode.
Pojem
Neko má překladač a a virtuální stroj (VM) s odvoz odpadu. Kompilátor převede zdrojový soubor .neko na soubor .b bytecode .n, který lze spustit pomocí virtuálního počítače. Vzhledem k tomu, že Neko je dynamicky zadáváno bez pevných tříd, potřebuje vývojář pouze najít správné běhové mapování (na rozdíl od mapování typů), aby se kód správně spustil. Jako Neko FAQ říká: "... je snazší napsat nový nebo existující jazyk na NekoVM, než je to pro CLR / JVM, protože se nemusíte zabývat systémem vysokých úrovní. To také znamená, že jazyky mohou snadněji spolupracovat, protože potřebují sdílet pouze stejné datové struktury a ne vždy stejné typy. “[1]
Neko vyžaduje kompilaci před spuštěním, stejně jako jiné skriptovací jazyky, jako je Apache Báječný. Protože Neko nemusí být za běhu interpretováno, provádí se rychleji. The Haxe programovací jazyk lze mimo jiné zkompilovat do kódu Neko.
Virtuální stroj
Neko virtuální stroj se používá ke spuštění souboru Neko bytecode, VM má také možnost převést soubor bytecode na spustitelný soubor (výstup se mění v závislosti na cílovém operačním systému).
Příklady
Ahoj světe
$ tisk("Ahoj světe!");
Zadejte převody
$ int("67.87"); // Převede řetězec „67,87“ na celé číslo 67$ float(12345); // Převede celé číslo 12345 na float 12345.0000$ řetězec($ pole(1,2,3)); // Převede pole [1,2,3] na řetězec „[1,2,3]“
Objekty
Ó = $ nový(nula); // nový prázdný objekto2 = $ nový(Ó); // vytvoří kopii oo2 = $ nový(33); // pokud parametr není objekt, vyvolá výjimkuÓ.pole = hodnota; // nastaví pole na hodnotuÓ.pole; // vrací hodnotu „pole“ objektu o
Metody
foo = funkce() { $ tisk(tento.X);}Ó = $ nový(nula);Ó.X = 3;Ó.bar = funkce() { foo(); };Ó.bar(); // vytiskne 3
Rozsah funkcí
var X = 3;F = funkce() { $ tisk(X);}X = 4;F(); // tisk 3
Prototypy
var proto = $ nový(nula);proto.foo = funkce() { $ tisk(tento.zpráva) }var Ó = $ nový(nula);Ó.zpráva = "Ahoj";$ objsetproto(Ó,proto);Ó.foo(); // vytisknout „ahoj“$ objsetproto(Ó,nula); // odebrat protoÓ.foo(); // výjimka
Webové funkce
Neko zahrnuje a mod_neko modul pro Apache serveru. Jako takový může zpracovávat vstupy uživatelů pomocí požadavků GET a POST:
get_params = $ zavaděč.zatížení(„mod_neko @ get_params“,0);$ tisk("PARAMS ="+get_params());
Viz také
Reference
- ^ „Jak se Neko liší od CLR .Net nebo JVM Java?“. Neko FAQ. Citováno 9. ledna 2011.