2009-09-26 24 views

Respuesta

28

¿Tal vez A No-Frills Introduction to Lua 5.1 VM Instructions contiene lo que estás buscando?

También hay una tabla del conjunto de instrucciones Lua 5,0 (Figura 5) en:

Ierusalimschy, R .; Figueiredo, L. H .; Celes, W. (2005), "La implementación de Lua 5.0", J. of Universal Comp. Sci. (7): 1159-1176

Puede encontrar el texto completo con una búsqueda en Google Scholar y creo que es el lua.org también. Esta referencia es utilizada por la página de Lua en Wikipedia, que siempre es un buen lugar para buscar tales cosas. :-)

+1

LuaForge se cerró. Entonces, tu enlace está muerto. ¿Recuerdas qué proyecto estuvo involucrado? Tal vez fue migrado a github ... –

+0

El enlace ahora apunta a una búsqueda de Google Scholar para ese artículo. Devuelve hits en varios dominios diferentes (incluido un enlace directo al archivo en luaforge). – thsutton

+0

Gracias por la actualización. –

51

La definición oficial está en lopcodes.h.

+16

Es curioso cómo alguien que cotiza su libro recibe el cheque cuando proporciona la _reference_. Oh bien, +1 de mi parte – Bahbar

+2

@Bahbar, me alegraste ese día con ese comentario: P –

5

Puede leer The Implementation of Lua 5.0 en línea.

+0

Muy interesante, ya que siempre quise saber cómo funciona todo en algunos detalles relacionados con el código. –

6

Las únicas especificaciones para Lua son el idioma, las bibliotecas estándar y la API C. Los creadores de Lua ha dejado intencionadamente en la máquina virtual especificada por un par de razones principales:

  • Lua puede ser totalmente implementado con cualquier arquitectura subyacente (VM, intérprete, compilador, etc.)
  • La distribución oficial de Lua doesn No tiene que preocuparse por mantener la compatibilidad de VM entre las versiones

Esto significa, por ejemplo, que generalmente no debe usar Lua VM como destino para un compilador. Si desea saber cómo la máquina virtual de distribución Lua oficial funciona como un ejemplo para su propia curiosidad, consulte las otras respuestas.

+1

Lo es. Al igual que el _todo código fuente oficial de Lua_. – jv110

+0

@ jv110 Lo malinterpretas. El código fuente de Lua es simplemente una implementación de referencia de Lua, no es "El" Lua. La única * especificación * para Lua es el lenguaje en sí y la API C. Cualquiera puede implementar esa especificación usando cualquier mecánica subyacente que quiera: VM, intérprete, FPGA/ASIC (chip físico). Los creadores de Lua lo han dejado sin especificar a propósito para hacer que el lenguaje sea lo más flexible posible. – Cogwheel

+0

Te estás perdiendo el punto. Él claramente preguntó sobre el bytecode oficial, que es (por _far_) la implementación más común. No importa si otras implementaciones lo usan o no. – jv110

Cuestiones relacionadas