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 oMétodos
foo = function () { $print ( this . x ); } o = $new ( null ); o . x = 3 ; o . bar = function () { foo (); }; o . bar (); // imprime 3Alcance de la función
var x = 3 ; f = function () { $print ( x ); } x = 4 ; f (); // imprimir 3Prototipos
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ónFuncionalidad 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
- ↑ "¿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 .
Enlaces externos
- Sitio web oficial

- Archivos de listas de correo en Wayback Machine (archivados el 20/12/2013)
- Lenguajes de programación de tipado dinámico
- Software libre programado en C
- Software libre programado en OCaml
- Lenguajes de programación orientados a objetos
- Lenguajes de programación basados en prototipos
- Software que utiliza la licencia MIT.
- Máquinas virtuales basadas en pila