¿Qué es el formato de archivo LUA?
Un archivo .lua contiene el código fuente de una extensión de programa o aplicación, típicamente para un juego o aplicación embebida, escrito en el lenguaje de programación Lua. El código fuente es una colección de comandos, instrucciones y definiciones de variables escritos utilizando una sintaxis definida. .lua es un archivo de texto plano que se puede abrir y editar con cualquier editor de texto; sin embargo, se recomienda abrir dichos archivos en herramientas de edición que admitan el resaltado de sintaxis. Un archivo .lua puede contener una serie de comandos cortos, así como el código completo de un programa o módulo.
La sintaxis de Lua se inspira en Pascal, y el lenguaje utiliza matrices asociativas (llamadas *tablas*) y semántica extensible a través de metatablas. Lua es descrito por sus desarrolladores como:
- Robusto y probado: utilizado por muchos desarrolladores y proyectos aclamados, incluidos los complementos de Adobe Lightroom, el sistema de plantillas Scribunto de Wikipedia, CCTV y firmware embebido, y juegos como World of Warcraft (complementos de interfaz de usuario) y el Angry Birds original.
- Rápido: ampliamente considerado como el lenguaje de scripting interpretado más rápido; LuaJIT, su variante compilada justo a tiempo, amplía aún más el rendimiento.
- Multiplataforma: Lua se distribuye como código fuente ANSI C independiente de la plataforma, ejecutándose en Linux, Windows, macOS, Android, iOS, sistemas embebidos y computadoras centrales.
- Integrable: bien documentado y fácil de integrar a través de su API de C con código escrito en otros lenguajes, tanto compilados como de scripting.
- Simple y potente: ofrece soporte para metacaracterísticas (metatablas y metamétodos) que se pueden ampliar según sea necesario.
- Ligero y gratuito: el intérprete añade aproximadamente 300 KB a una aplicación, y el lenguaje se publica bajo la licencia MIT.
Lua fue creado en 1993 por los ingenieros informáticos Roberto Ierusalimschy, Waldemar Celes y Luiz Henrique de Figueiredo en la Pontificia Universidad Católica de Río de Janeiro (PUC-Rio). Es mantenido por el laboratorio de investigación LabLua dentro del Departamento de Informática de dicha universidad. «Lua» significa «luna» en portugués. Se han desarrollado múltiples versiones del lenguaje desde su creación; la versión estable actual es Lua 5.4, introducida en 2020, que trajo un nuevo recolector de basura generacional y un subtipo de entero distinto. El bytecode de Lua precompilado se almacena en archivos .LUAC y lleva un encabezado mágico binario \x1BLua en lugar de texto legible.
Seguridad y protección
RIESGO: MEDIUMUn archivo .lua es CÓDIGO fuente, por lo que leerlo es seguro, pero EJECUTAR uno no confiable no lo es: los scripts de Lua pueden llamar a os.execute, io.open, os.remove y cargar bibliotecas nativas, por lo que un script malicioso puede eliminar archivos, filtrar datos o ejecutar comandos del sistema; exactamente cómo algunos archivos .lua de «scripts gratuitos» y trampas de juegos atacan a los usuarios. Lee siempre un .lua descargado antes de ejecutarlo, obtén complementos/mods de juegos solo de fuentes acreditadas y desconfía de los scripts ofuscados o de bytecode (.luac) que no puedes inspeccionar. Dentro de un anfitrión con sandbox (por ejemplo, Roblox), el riesgo es menor, pero los «scripts» de ingeniería social siguen siendo un vector de estafa común.
Detalles del formato
en pocas palabrasProgramas que abren archivos LUA
Detalles técnicos
especificación profunda| Tipo de archivo | Código fuente de texto plano (UTF-8 o ASCII) |
| Tipo MIME | text/x-lua |
| Firma de archivo (bytes mágicos) | Ninguna para archivos fuente: texto plano sin encabezado binario. El bytecode precompilado utiliza 1B 4C 75 61 (ESC + «Lua») |
| Paradigma de sintaxis | Multiparadigma: procedimental, orientado a objetos mediante metatablas y funcional |
| Estructura de datos principal | Tabla (matriz asociativa): el único tipo compuesto, que sirve como matrices, diccionarios y objetos |
| Sintaxis de comentarios | -- para una sola línea; --[[ ... --]] para comentarios de bloque |
| Soporte de Shebang | El archivo fuente puede comenzar con #!/usr/bin/env lua para ejecución directa en sistemas tipo Unix |
| Entorno de ejecución estándar | lua (intérprete), luac (compilador de bytecode), luajit (compilador JIT) |
| API de integración con anfitrión | API de C compacta (lua_State, luaL_newstate, lua_call); enlaces disponibles para C++, Python, Java y otros |
| Biblioteca estándar | io, os, string, table, math, coroutine, package, utf8, debug - huella mínima por diseño |
| Soporte de corrutinas | Corrutinas asimétricas de primera clase mediante coroutine.create / coroutine.resume / coroutine.yield |
| Recolector de basura | Marcado y barrido tricolor incremental; modo generacional opcional introducido en Lua 5.4 |
| Tipos numéricos | Subtipos distintos de entero (64 bits por defecto) y flotante (doble precisión) desde Lua 5.3 |
| Sistema de módulos | require() resuelve fuentes .lua y extensiones binarias de C (.so / .dll) a través de package.path / package.cpath |
| Licencia | Licencia MIT (código abierto, gratuito para cualquier uso, incluido el comercial) |
| Lanzado | Lua created in 1993 at PUC-Rio (Pontifical Catholic University of Rio de Janeiro) |
| Estándar abierto | Sí · libre de regalías |
| Especificación | www.lua.org |
Conversiones de LUA
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos LUA.