Articulo de referencia

NekoVM

NekoVM es una máquina virtual desarrollada por Nicolas Cannasse como parte de las actividades de investigación y desarrollo (I+D) de dos estudios independientes de videojuegos e...

NekoVM es una máquina virtual desarrollada por Nicolas Cannasse como parte de las actividades de investigación y desarrollo (I+D) de dos estudios independientes de videojuegos en Burdeos , Francia : primero en Motion Twin y luego en Shiro Games . El lenguaje nativo de NekoVM es el código de bytes de un lenguaje de programación de alto nivel con tipado dinámico llamado Neko. Esta combinación permite utilizar Neko directamente como lenguaje de scripting integrado o bien compilar otro lenguaje (como Haxe ) a código de bytes de NekoVM para que funcione con NekoVM.

Concepto

Neko cuenta con un compilador y una máquina virtual (VM) con recolección de basura . El compilador convierte un archivo fuente .neko en un archivo de bytecode .n que puede ejecutarse con la VM. Dado que Neko es de tipado dinámico y no tiene clases fijas, el desarrollador solo necesita encontrar la asignación de tiempo de ejecución adecuada (a diferencia de la asignación de tipos de datos ) para que el código se ejecute correctamente. Como se indica en las preguntas frecuentes de Neko : "...es más fácil escribir un lenguaje nuevo o existente en la NekoVM que en la CLR / JVM , ya que no es necesario lidiar con un sistema de tipos de alto nivel. Además, esto significa que los lenguajes pueden interoperar más fácilmente, ya que solo necesitan compartir las mismas estructuras de datos y no siempre los mismos tipos." [ 1 ]

Neko requiere compilación antes de su ejecución, al igual que otros lenguajes de scripting como Apache Groovy . Dado que Neko no necesita ser interpretado en tiempo de ejecución, se ejecuta más rápido. El lenguaje Haxe puede compilarse a código Neko, entre otros.

Máquina virtual

La máquina virtual Neko se utiliza para ejecutar un archivo de código de bytes de Neko; la máquina virtual también tiene la opción de convertir un archivo de código de bytes en un archivo ejecutable (la salida varía según el sistema operativo de destino).

Idioma

Hola Mundo

$print ( "Hola Mundo!" );

Conversiones de tipo

$int ( "67.87" ); // Convierte la cadena "67.87" al entero 67 $float ( 12345 ); // Convierte el entero 12345 al flotante 12345.0000 $string ( $array ( 1 , 2 , 3 )); // Convierte el array [1,2,3] a la cadena "[1,2,3]"

objetos

o = $new ( null ); // nuevo objeto vacío o2 = $new ( o ); // crea una copia de o o2 = $new ( 33 ); // si el parámetro no es un objeto, lanza una excepción o.field = value ; // establece el valor del campo o.field ; // devuelve el valor del campo del objeto o

Métodos

foo = function () { $print ( this . x ); } o = $new ( null ); o . x = 3 ; o . bar = function () { foo (); }; o . bar (); // imprime 3

Alcance de la función

var x = 3 ; f = function () { $print ( x ); } x = 4 ; f (); // imprimir 3

Prototipos

var proto = $new ( null ); proto . foo = function () { $print ( this . msg ) }var o = $ nuevo ( nulo ); o . mensaje = "hola" ; $objsetproto ( o , proto ); o . foo (); // imprime "hola"$objsetproto ( o , null ); // eliminar proto o . foo (); // excepción

Funcionalidad web

Neko incluye los módulos del servidor Apache mod_neko para el lenguaje Neko y mod_tora para alojar el servidor de aplicaciones NekoVM tora . Por lo tanto, puede procesar la entrada del usuario mediante solicitudes GET y POST:

get_params = $loader . loadprim ( "mod_neko@get_params" , 0 ); $print ( "PARAMS = " + get_params ());

Véase también

Referencias

  1. "¿En qué se diferencia Neko del CLR de .Net o de la JVM de Java  ?" . Preguntas frecuentes . NekoVM . Consultado el 28 de marzo de 2021 .
  • Sitio web oficialEdita esto en Wikidata
  • Archivos de listas de correo en Wayback Machine (archivados el 20/12/2013)