Xtext es un marco de software de código abierto para el desarrollo de lenguajes de programación y lenguajes específicos de dominio (DSL). A diferencia de los generadores de analizadores sintácticos estándar , Xtext genera no solo un analizador sintáctico , sino también un modelo de clases para el árbol de sintaxis abstracta , además de proporcionar un IDE basado en Eclipse con todas las funciones y personalizable. [ 2 ]
Xtext se está desarrollando en el Proyecto Eclipse como parte del Proyecto Eclipse Modeling Framework . Está licenciado bajo la Licencia Pública de Eclipse . [ 3 ]
Historia
La primera versión de Xtext se publicó en 2006 en el proyecto openArchitectureWare. La última versión publicada bajo el proyecto oAW fue la versión 4.3. Desde principios de 2008, Xtext se ha desarrollado en Eclipse bajo el Proyecto de Modelado de Eclipse. [ 4 ]
Uniéndose al lanzamiento simultáneo anual de Eclipse , Xtext lanzó las versiones 0.7.0 (junio de 2009), 1.0 (junio de 2010), 2.0 (junio de 2011), 2.3 (junio de 2012), 2.5 (diciembre de 2013), 2.6 (mayo de 2014) y 2.7 (septiembre de 2014). El framework es desarrollado principalmente por la empresa alemana Itemis. [ 5 ]
Funcionalidad
Para especificar un lenguaje, el desarrollador debe escribir una gramática en el lenguaje de gramática de Xtext. Esta gramática describe cómo se deriva un modelo Ecore a partir de una notación textual. A partir de esta definición, un generador de código deriva un analizador ANTLR y las clases para el modelo de objetos. Ambos pueden utilizarse independientemente de Eclipse.
Xtext incluye características que se integran bien con el IDE basado en Eclipse:
- Coloreado de sintaxis
- Autocompletado de código
- Análisis estático
- Vista esquemática
- Navegación del código fuente
- Indexación
- Comparar vista
- Flotadores
- plegado de código
- Refactorización de cambio de nombre
Los lenguajes de Xtext y el IDE son altamente configurables, ya que la infraestructura del lenguaje y el IDE están conectados mediante inyección de dependencias y Google Guice . Los componentes predeterminados se pueden reemplazar fácilmente por componentes personalizados.
Desde la versión 2.0, Xtext ha facilitado el desarrollo de lenguajes específicos de dominio para la máquina virtual Java , haciendo referencia a artefactos Java y compilándolos con una estrecha integración en el kit de herramientas de desarrollo Java de Eclipse. Una biblioteca de lenguajes de expresiones reutilizables permite un comportamiento avanzado dentro del DSL.
Un generador de código escrito en Xtend puede integrarse con cualquier lenguaje. Para lenguajes de la JVM, basta con mapear los conceptos del DSL a artefactos Java para lograr una integración completa con Java. También está disponible un intérprete alternativo.
Usos
En el momento de escribir este artículo, la página principal de Xtext mostraba alrededor de 40 proyectos comerciales y no comerciales de varios dominios de aplicación que utilizaban Xtext. [ 6 ]
- Una implementación de AWK, el popular lenguaje específico de dominio (DSL), se basa en Xtext.
- El lenguaje de propósito general Xtend también está construido con Xtext.
Premios
- Premios de la comunidad Eclipse 2010: "Característica o proyecto Eclipse nuevo más innovador" [ 7 ]
- Sebastian Zarnekow, colaborador, Premios de la Comunidad Eclipse 2011: "Mejor colaborador" [ 8 ]
- Sven Efftinge, líder del proyecto, Premios de la Comunidad Eclipse 2012: "Mejor colaborador" [ 9 ]
Véase también
Referencias
- ^ "Xtext - Notas de la versión" . eclipse.dev . Consultado el 29 de mayo de 2023 .
- ^ github/xtext , Fundación Eclipse, 4 de febrero de 2021 , consultado el 8 de febrero de 2021
- ^ Web, EclipseWeb (31-01-2013). "Eclipse Xtext" . projects.eclipse.org . Recuperado el 24-11-2024 .
- ^ Efftinge, Sven. "Xtext - ¡Ingeniería de lenguaje simplificada!" . www.eclipse.org . Consultado el 16 de febrero de 2018 .
- ^ itemis. Obtenido de http://www.itemis.com .
- ^ Obtenido de http://www.eclipse.org/Xtext/community.html .
- ^ Gayowski, Lynn. "Se anuncian los ganadores de los premios comunitarios Eclipse" . www.eclipse.org . Consultado el 16 de febrero de 2018 .
- ^ Skerrett, Ian. "Se anuncian los ganadores de los premios comunitarios Eclipse" . www.eclipse.org . Consultado el 16 de febrero de 2018 .
- ^ Guindon, Christopher. "Se anuncian los ganadores del premio comunitario Eclipse" . www.eclipse.org . Consultado el 16 de febrero de 2018 .
Bibliografía
- Sven Efftinge; Jan Köhnlein; Peter Friese. "Crea tu propio DSL textual con herramientas del Proyecto de Modelado de Eclipse" . Fundación Eclipse . Consultado el 3 de julio de 2012 .
- Sven Efftinge. "Ejemplo de DSL de Fowler con Xtext" . Blog de Sven Efftinge . Consultado el 3 de julio de 2012 .
- Eclipse (software)
- Software que utiliza la Licencia Pública de Eclipse.
- banco de trabajo de lenguaje
- generadores de analizadores sintácticos