Genie (lenguaje de programación)
Genie | ||
---|---|---|
Desarrollador(es) | ||
? | ||
Información general | ||
Extensiones comunes | .gs | |
Paradigma | Multiparadigma: imperativo, estructurado, orientado a objetos | |
Apareció en | 2008 | |
Diseñado por | Jamie McCracken | |
Última versión estable | 0.52.3 (01 de mayo de 2021) | |
Sistema de tipos | Fuerte, Estático | |
Influido por | Python, Boo, D, Delphi | |
Sistema operativo | Toda plataforma con GLib | |
Licencia | LGPL 2.1+ | |
[editar datos en Wikidata] |
Genie es un lenguaje de programación de alto nivel, moderno, y de propósito general en desarrollo activo desde el año 2008.[1] Fue diseñado como un dialecto alternativo más simple y limpio para el compilador Vala, preservando al mismo tiempo la misma funcionalidad del lenguaje Vala. La sintaxis de Genie se deriva de numerosos lenguajes modernos como Python, Boo, D y Delphi.
Al igual que Vala, Genie usa el sistema de tipos GObject para crear clases e interfaces declaradas en el código fuente de Genie, sin imponer requisitos adicionales de tiempo de ejecución (es decir, a diferencia de Python, Java o Mono, este no requiere una máquina virtual).
Genie permite el acceso a las bibliotecas de C, especialmente las basadas en GObject (como GTK+), sin necesidad de utilizar otro API. Durante la compilación, el código se traduce primero a código fuente y cabeceras de C, que se compilan entonces al código de máquina con cualquier compilador C disponible como GCC, lo cual permite el desarrollo de software multi-plataforma.
Aunque tanto Vala como Genie son desarrollados y promovidos por el proyecto Gnome, los programas desarrollados en Genie no dependen del entorno de escritorio Gnome, y usualmente requieren solo de GLib.
Diferencias con Vala
Genie usa el mismo compilador y bibliotecas que Vala; de hecho, los dos se pueden utilizar juntos.[2] Las diferencias son solo sintácticas.
Sangría
Como un lenguaje que toma a Python como referencia, Genie utiliza espacios en blanco o tabuladores en lugar de llaves para delimitar bloques.
Ejemplos de código
Un simple "Hola Mundo"
En este ejemplo se utiliza de forma explícita cuatro espacios para el sangrado.
[indent = 4] init print "Hola, mundo!"
Otro ejemplo:
init a:int = 0 if (a > 0) print "a es mayor que 0" else print "a no es mayor que 0"
Objetos
Sin ninguna declaración explícita para el sangrado, por defecto se usa la tabulación.
class Ejemplo def run() stdout.printf("Hola, mundo!\n") init var ejemplo = new Ejemplo() ejemplo.run()
Referencias
Enlaces externos
- Página principal de Genie (en inglés)
- Página principal de Vala (en inglés)
- Página de Barry Kauler sobre Genie (en inglés)
- Página de Nicolas Joseph con muchos ejemplos de código
- Documentación de la API
- Charla IRC sobre Genie en Gnome hispano, febrero de 2010
- Código de Genie para principiantes
- Genie Doc
Datos: Q1106293