* Agence Typo3 Nantes
***Web2007 est un bureau indépendant situé à Genève et a l'habitude de travailler pour des entreprises PARTOUT en France et en Europe
Agence Typo3 Nantes
Article:
La syntaxe abstraite contrarie la syntaxe concrète dans la définition formelle en langages de programmation. Quand la syntaxe concète désigne les suites de caractères que l'utilisateur doit taper, la syntaxe abstraite tend à accorder une structure aux données entrées, évoquant au passage la façon de les stocker en mémoire. Exemplairement, étudiant une expression arithmétique dont la syntaxe concrète est 3*x+5, sa syntaxe abstraite pourra être un arbre dont la racine est un nœud +, de branche gauche un nœud * (ayant comme branche les feuilles 3 et x), de branche droite une feuille 5. La syntaxe abstraite et sa relation avec la syntaxe concrète, en langages de programmation, est fréquement le plus donné par une grammaire hors-contexte en forme de Backus-Naur. Il est significatif que la famille de langages Lisp fait converger la syntaxe abstraite et la syntaxe concrète de forme à les rendre indéfinissables pour le programmeur. Effectivement, les langages Lisp se déterminent par l'utilisation des s-expressions pour la représentation littérale (syntaxique) du code source. Néanmoins en assemblant des s-expressions, on obtient la représentation littérale d'un arbre de syntaxe, dont la traduction en arbre syntaxique abstrait est immédiate. Cette convergence permet d'ajouter à ces langages les macros, autrement dit, des opérateurs accomplissant des transformations de source à source, ce qui permet de créer de nouveaux opérateurs sans altérer la définition du langage ni modifier le compilateur. Une syntaxe concrète pour spécifier une valeur non primitive et spécifique à son genre indique un compositeur. Plusieurs langages présentent des compositeurs pour les conteneurs (tableaux, tables associatives...). Plus rares sont les langages qui proposent une syntaxe concrète pour d'autres type d'objets, évitant ainsi l'utilisation exp de constructeurs. Une forme spéciale de compositeur est l'interpolation de chaîne. Globalement,ununiligne (one liner pour les anglophones) est un programme informatique jetable, pourtant peu banal, écrit pour une tâche ponctuelle en un langage de script tel que Perl ou Ruby, et tenant sur une seule ligne. Des langages qui prescrivent plusieurs phases avant l'exécution, la déclaration exp de variables, de fonctions ou, pire, de classes, ne se prêtent pas aux unilignes. Les unilignesbénificient des qualités DWIM (Do What I Mean) et DRY (Don'tRepeatYourself) propres à certains langages. Puisqu'ununiligne est guère consacré à être réutilisé, les considérations de lisibilité par un tiers sont secondaires. Certainsunilignes sont des assombrissements délibérés. Toutefois, ils peuvent être pédagogiques en démontrant de manière concise certains idiotismes du langage. Il faut néanmoins savoir que certains idiotismes deviennent inapplicables ou dangereux dans le cadre de programmes avec beaucoup de lignes de code.