Xtext - Xtext
| Stabiele vrijlating | 2.25.0 / 2 maart 2021
|
|---|---|
| Opslagplaats | github |
| Type | Software raamwerk |
| Licentie | Eclipse openbare licentie |
| Website | xtext |
Xtext is een open-source softwareraamwerk voor het ontwikkelen van programmeertalen en domeinspecifieke talen (DSL's). In tegenstelling tot standaard parsergenerators , genereert Xtext niet alleen een parser , maar ook een klassenmodel voor de abstracte syntaxisboom , evenals een volledig functionele, aanpasbare op Eclipse gebaseerde IDE.
Xtext wordt ontwikkeld in het Eclipse Project als onderdeel van het Eclipse Modeling Framework Project en is gelicentieerd onder de Eclipse Public License .
Geschiedenis
De eerste versie van Xtext werd in 2006 gepubliceerd in het openArchitectureWare-project. De laatste versie die werd uitgebracht onder het oAW-project was versie 4.3. Sinds begin 2008 is Xtext ontwikkeld bij Eclipse onder het Eclipse Modeling Project.
Deelnemen aan de jaarlijkse gelijktijdige release van Eclipse , Xtext vrijgegeven versie 0.7.0 (juni 2009), 1.0 (juni 2010), 2.0 (juni 2011), 2.3 (juni 2012), 2.5 (december 2013), 2.6 (mei 2014) en 2.7 (september 2014). Het framework is voornamelijk ontwikkeld door het Duitse bedrijf Itemis.
Functionaliteit
Om een taal te specificeren, moet de ontwikkelaar een grammatica schrijven in de grammaticataal van Xtext. Deze grammatica beschrijft hoe een Ecore- model wordt afgeleid van een tekstuele notatie. Uit die definitie leidt een codegenerator een ANTLR- parser en de klassen voor het objectmodel af. Beide kunnen onafhankelijk van Eclipse worden gebruikt.
Xtext bevat functies die goed integreren met de op Eclipse gebaseerde IDE:
- Syntaxis kleuren
- Code voltooiing
- Statische analyse
- Overzichtsweergave
- Broncodenavigatie
- Indexeren
- Vergelijk weergave
- Zweeft
- Code vouwen
- Hernoemen hernoemen
Xtext-talen en de IDE zijn zeer configureerbaar, omdat de taalinfrastructuur en de IDE zijn bedraad met behulp van afhankelijkheidsinjectie en Guice . De standaardcomponenten kunnen eenvoudig worden vervangen door in plaats daarvan aangepaste te binden.
Sinds versie 2.0 heeft Xtext de ontwikkeling van domeinspecifieke talen voor de Java virtual machine gefaciliteerd , verwijzend naar en compileren naar Java-artefacten met nauwe integratie in Eclipse's Java Development Toolkit. Een herbruikbare bibliotheek met expressietalen maakt rijk gedrag binnen de DSL mogelijk.
Een codegenerator geschreven in Xtend kan voor elke taal worden ingehaakt. Voor JVM-talen is het voldoende om de DSL-concepten toe te wijzen aan Java-artefacten om holistische Java-integratie te krijgen. Er is ook een alternatieve tolk beschikbaar.
Toepassingen
Op het moment dat dit artikel werd geschreven, vermeldde de Xtext-startpagina ongeveer 40 commerciële en niet-commerciële projecten uit verschillende toepassingsdomeinen die Xtext gebruikten.
- AWK, de populaire Domain Specific Language (DSL) is gebaseerd op Xtext.
- De algemene taal Xtend is ook gebouwd met Xtext.
onderscheidingen
- Eclipse Community Awards 2010: "Meest innovatieve nieuwe functie of Eclipse-project"
- Sebastian Zarnekow, commiter, Eclipse Community Awards 2011: "Top Committer"
- Sven Efftinge, projectleider, Eclipse Community Awards 2012: "Top Committer"
Zie ook
Referenties
Bibliografie
- Sven Effinge; Jan Köhnlein; Pieter Friese. "Bouw uw eigen tekstuele DSL met Tools van het Eclipse Modeling Project" . Stichting Eclipse . Ontvangen 03-07-2012 .
- Sven Effinge. "Fowler's DSL-voorbeeld met Xtext" . de blog van sven efftinge . Ontvangen 03-07-2012 .