Xtext es un marco de software de código abierto para desarrollar 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 clase para el árbol de sintaxis abstracta , además de proporcionar un IDE basado en Eclipse personalizable y con todas las funciones. [2]
Lanzamiento estable | 2.25.0 / 2 de marzo de 2021 [1] |
---|---|
Repositorio | github |
Tipo | Marco de software |
Licencia | Licencia pública de Eclipse |
Sitio web | xtext |
Xtext se está desarrollando en Eclipse Project como parte del Eclipse Modeling Framework Project y tiene licencia de Eclipse Public License . [ cita requerida ]
Historia
La primera versión de Xtext se publicó en 2006 en el proyecto openArchitectureWare. La última versión lanzada bajo el proyecto oAW fue la versión 4.3. Desde principios de 2008, Xtext se ha desarrollado en Eclipse en el marco del Eclipse Modeling Project. [3]
Junto con el lanzamiento simultáneo anual de Eclipse , Xtext lanzó la versión 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 marco es desarrollado principalmente por la empresa alemana Itemis. [4]
Funcionalidad
Para especificar un idioma, el desarrollador debe escribir una gramática en el lenguaje gramatical de Xtext. Esta gramática describe cómo un modelo Ecore se deriva de una notación textual. A partir de esa definición, un generador de código deriva un analizador ANTLR y las clases para el modelo de objetos. Ambos se pueden utilizar independientemente de Eclipse.
Xtext incluye características que se integran bien con el IDE basado en Eclipse:
- Coloración de sintaxis
- Finalización de código
- Análisis estático
- Vista exterior
- Navegación por el código fuente
- Indexación
- Comparar vista
- Hovers
- Plegado de código
- Cambiar el nombre de la refactorización
Los lenguajes Xtext y el IDE son altamente configurables, ya que la infraestructura del lenguaje y el IDE están conectados mediante inyección de dependencia y Guice . Los componentes predeterminados se pueden reemplazar fácilmente vinculando los personalizados en su lugar.
Desde la versión 2.0, Xtext ha facilitado el desarrollo de lenguajes específicos de dominio para la máquina virtual Java , refiriéndose y compilando artefactos Java con una estrecha integración en Java Development Toolkit de Eclipse. Una biblioteca de lenguajes de expresión reutilizable permite un comportamiento enriquecido dentro del DSL.
Se puede conectar un generador de código escrito en Xtend para cualquier idioma. Para los lenguajes JVM, es suficiente mapear los conceptos de DSL a los artefactos de Java para obtener una integración holística de Java. También hay disponible un intérprete alternativo . [ aclaración necesaria ]
Usos
En el momento de escribir este artículo [ ¿cuándo? ] , la página de inicio de Xtext enumeró alrededor de 40 proyectos comerciales y no comerciales de varios dominios de aplicaciones que utilizan Xtext. [5]
- AWK, el popular lenguaje específico de dominio (DSL) se basa en Xtext.
- El lenguaje de uso general Xtend también está construido con Xtext. [ cita requerida ]
Premios
Ver también
Referencias
- ^ "Xtext - Notas de la versión" . eclipse.org . Consultado el 5 de abril de 2021 .
- ^ github / xtext , Eclipse Foundation, 2021-02-04 , consultado 2021-02-08
- ^ Efftinge, Sven. "Xtext - ¡Ingeniería del 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 anunciaron los ganadores de los premios Eclipse Community Awards" . www.eclipse.org . Consultado el 16 de febrero de 2018 .
- ^ Skerrett, Ian. "Se anunciaron los ganadores de los premios Eclipse Community Awards" . www.eclipse.org . Consultado el 16 de febrero de 2018 .
- ^ Guindon, Christopher. "Se anuncian los ganadores del premio Eclipse Community Award" . www.eclipse.org . Consultado el 16 de febrero de 2018 .
Bibliografía
- Sven Efftinge; Jan Köhnlein; Peter Friese. "Construye tu propio DSL textual con herramientas del Proyecto de Modelado 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 .