NekoVM


De Wikipedia, la enciclopedia libre
  (Redirigido desde Neko (lenguaje de programación) )
Saltar a navegación Saltar a búsqueda

NekoVM es una máquina virtual desarrollada por Nicolas Cannasse como parte de los esfuerzos de investigación y desarrollo (I + D) en dos empresas independientes de videojuegos en Burdeos , Francia : primero en Motion Twin y luego en Shiro Games . El idioma nativo de NekoVM es el código de bytes para un lenguaje de programación de alto nivel escrito dinámicamente llamado Neko . Este emparejamiento permite que Neko se utilice directamente como un lenguaje de scripting integrado o apuntar a NekoVM compilando algún otro lenguaje (como Haxe ) en el código de bytes de NekoVM.

Concepto

Neko tiene un compilador y una máquina virtual (VM) con recolección de basura . El compilador convierte un archivo .neko de origen en un archivo .n de código byte que se puede ejecutar con la máquina virtual. Dado que Neko se escribe dinámicamente sin clases fijas, un desarrollador solo necesita encontrar el mapeo de tiempo de ejecución adecuado (en contraste con el mapeo de tipos) para que el código se ejecute correctamente. Como dice la FAQ de Neko : "... es más fácil escribir un idioma nuevo o existente en el NekoVM que para el CLR / JVM , ya que no tiene que 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 compilar antes de ejecutarse, como otros lenguajes de scripting como Apache Groovy . Dado que no es necesario interpretar Neko en tiempo de ejecución, se ejecuta más rápido. El lenguaje de programación Haxe puede compilarse en código Neko, entre otros objetivos.

Máquina virtual

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

Ejemplos de

Hola Mundo

$ print ( "¡Hola mundo!" );

Conversiones de tipos

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

Objetos

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

Métodos

foo  =  función ()  { $ imprimir ( esto . x ); } o  =  $ nuevo ( nulo ); o . x  =  3 ; o . barra  =  función ()  {  foo ();  }; o . bar ();  // imprime 3

Alcance de la función

var x =  3 ; f  =  función ()  { $ imprimir ( x ); } x  =  4 ; f ();  // imprimir 3

Prototipos

var proto =  $ nuevo ( nulo ); proto . foo  =  function ()  {  $ print ( este . msg )  }var o =  $ nuevo ( nulo ); o . msg  =  "hola" ; $ objsetproto ( o , proto ); o . foo ();  // imprimir "hola"$ objsetproto ( o , nulo );  // eliminar proto o . foo ();  // excepción

Funcionalidad web

Neko incluye un módulo mod_neko para el servidor Apache . Como tal, puede procesar la entrada del usuario mediante solicitudes GET y POST:

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

Ver también

  • Haxe
  • OpenFL

Referencias

  1. ^ "¿En qué se diferencia Neko del CLR de .Net o del JVM de Java?" . FAQ . NekoVM . Consultado el 28 de marzo de 2021 .

enlaces externos

  • Sitio web oficial
  • Archivos de la lista de correo en Wayback Machine (archivado el 20 de diciembre de 2013)
Obtenido de " https://en.wikipedia.org/w/index.php?title=NekoVM&oldid=1034137501 "