- Xl (langage)
-
XL (langage)
Pour les articles homonymes, voir XL.XL est un langage de programmation extensible, basé sur la programmation par concepts, développé depuis 2000 par Christophe de Dinechin.
Pour le langage XML destiné à l'implémentation de services web, voir XL (XML langage).
État du développement et historique
Le design de XL a commencé aux alentours de 1992, sous le nom LX (Langage eXpérimental). Le projet a été mis dans le domaine du logiciel libre en 2000, dans le cadre du projet "Mozart" qui visait à fournir des capacité de métaprogrammation multi-langage. Les premiers compilateurs étaient écrits en C++, mais cela rendait l'écriture d'extensions de compilateurs compliquée, car C++ ne permettait pas d'offrir le niveau d'abstraction voulu (par exemple un équivalent de
translate
). Les aspects multi-langage rendaient les arbres syntaxiques difficile à manipuler en respectant la sémantique de chaque langage.Une réécriture complète du compilateur a commencé en 2003, abandonnant l'idée de support multi-langage qui avait montré ses limites, et focalisant sur la facilité d'écriture des extensions. L'arbre syntaxique a été réduit à sept types de noeud seulement pour représenter tous les programmes. Ce nouveau compilateur s'est auto-compilé en 2004 (bien qu'avec des capacités réduites et une dépendance à C++ dans le code généré). Depuis, tout le développement se fait en XL.
En 2007, le langage offre un grand nombre de fonctionalités avancées, mais manque encore d'une librairie fonctionnelle.
Ancêtres
XL a été inspiré par un grand nombre d'autres langages. Dans l'ordre alphabétique :
- Ada inspired some of large-scale program support, exception handling, tasking, and supportability aspects.
- Basic notably in the more modern variants that dispense of line numbers and support structured programming, showed how simple the syntax of a programming language could be. Basic is one of the first modern languages to not mandate parentheses around subroutine calls.
- C was used as the standard to expect in terms of runtime and machine-level support. XL will not require a virtual machine to run.
- C++ and the Standard template library demonstrated the need for good support of generic types, including implicit instantiation of generics (which Ada lacks).
- Fortran's continued performance lead over C and C++ for numerical-intensive applications helped identify which language constructs would prevent useful optimizations.
- Java demonstrated the importance of a large, portable support library. Java containers also showed the limitations of an approach not based on generic programming. Interfacing with Java code remains an interesting challenge for XL.
- Lisp extensibility was considered as a key factor in its survival and relevance to this day. Lisp was the first language to normalize object-oriented features, despite having been designed years before object-oriented ideas were invented.
- Prolog demonstrated that alternative programming models are sometimes useful and highly productive. Every effort was made to ensure that a Prolog-style plug-in could be written for XL.
- Visual Basic showed how the parse tree representation can be dissociated from its visual presentation. Few people edit VB Forms textually. It is expected that XL edit-time plug-ins will one day provide similar capabilities, by directly manipulating the parse tree.
Lien externe
Catégorie : Langage de programmation
Wikimedia Foundation. 2010.