Domain-specific programming language

Domain-specific programming language

Langage dédié


En informatique on distingue deux types de langages : les langages généralistes (General Purpose Languages) comme PL/1, Ada ou C++, et les langages dédiés (Domain Specific Languages ou DSL) comme les langages de formules dans un tableur.

Un langage dédié peut être défini par une grammaire ou par un métamodèle.

Sommaire

Contexte

Un langage dédié est créé pour résoudre certains problèmes spécifiques dans un domaine particulier, et n'a en principe pas vocation à résoudre des problèmes en dehors de ce contexte. En comparaison, on crée des langages généralistes pour résoudre des problèmes dans beaucoup de domaines. Les langages généralistes sont nécessairement "Turing Complete".

Le domaine peut aussi être un domaine de gestion. Des exemples de domaines de gestion sont :

  • les langages dédiés de polices d'assurance vie, développés en interne de grandes compagnies d'assurance ;
  • les langages dédiés de simulation de combat ;
  • les langages dédiés de calcul de salaire ;
  • les langages dédiés de facturation.

Utilisation en ingénierie logicielle

On s'est beaucoup intéressé aux langages dédiés pour améliorer la productivité et la qualité de l'ingénierie logicielle. Les langages dédiés peuvent fournir un ensemble robuste d'outils pour une ingénierie logicielle efficace. De tels outils commencent à faire leurs preuves dans le développement du logiciel associé à des systèmes critiques.

Le kit SCR (Software Cost Reduction) en est un exemple [1]. Ce kit est une suite d'utilitaires qui incluent une spécification d'éditeur pour créer une spécification d'exigences, un browser graphique de dépendance pour afficher des dépendances variables, un outil de vérification de cohérence pour trouver les cas manquants dans les formules de spécification, un vérificateur de modèle, un outil permettant de vérifier les propriétés du programme par rapport à la spécification, et un générateur d'invariant qui construit automatiquement des invariants sur la base des exigences.

On trouve un nouveau développement dans la programmation orientée langage, une méthodologie intégrée d'ingénierie logicielle basée principalement sur la création, l'optimisation, et l'utilisation des langages dédiés.

Avantages

  • Les langages dédiés permettent d'exprimer des solutions avec les tournures idiomatiques au niveau d'abstraction du domaine traité. En conséquence, les experts du domaine eux-mêmes peuvent comprendre, valider, modifier, et souvent même développer des programmes en langage dédié.
  • Les langages dédiés facilitent la documentation du code.
  • Les langages dédiés améliorent la qualité, la productivité, la fiabilité, la maintenabilité, la portabilité et les possibilités de réutilisation.
  • Les langages dédiés permettent la validation au niveau du domaine. Aussi longtemps que les éléments du langage sont sûrs, toute phrase écrite avec ces éléments peut être considérée comme sûre.

Inconvénients

Exemples de langages dédies

  • Lex et Yacc : langages dédié à la création de parseurs;
  • csound : langage dédié à la musique;
  • La macro «loop» de Common Lisp : langage dédié aux boucles.
Ce document provient de « Langage d%C3%A9di%C3%A9 ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Domain-specific programming language de Wikipédia en français (auteurs)

Игры ⚽ Поможем сделать НИР

Regardez d'autres dictionnaires:

  • Domain-specific entertainment language — Domain specific entertainment languages are a group of domain specific languages that are used describe computer games or environments, or potentially used for other entertainment such as video or music. Contents 1 Game languages 2 Interactive… …   Wikipedia

  • Domain-specific language — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concurrent computing …   Wikipedia

  • Domain-specific modeling — (DSM) is a software engineering methodology for designing and developing systems, such as computer software. It involves systematic use of a domain specific language (DSL) to represent the various facets of a system. DSM languages tend to support …   Wikipedia

  • Fourth-generation programming language — A fourth generation programming language (1970s 1990) (abbreviated 4GL) is a programming language or programming environment designed with a specific purpose in mind, such as the development of commercial business software.[1] In the history of… …   Wikipedia

  • Multi-paradigm programming language — A multi paradigm programming language is a programming language that supports more than one programming paradigm. As Leda designer Tim Budd holds it: The idea of a multiparadigm language is to provide a framework in which programmers can work in… …   Wikipedia

  • Third-generation programming language — A third generation language (3GL) is a programming language designed to be easier for a human to understand, including things like named variables, abstract data types, and algebraic expression syntax. Another crucial difference compared to… …   Wikipedia

  • Programming language — lists Alphabetical Categorical Chronological Generational A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that… …   Wikipedia

  • Domain-specific multimodeling — Domain specific multimodeling[1] is a software development paradigm where each view is made explicit as a separate domain specific language (DSL). Successful development of a modern enterprise system requires the convergence of multiple views.… …   Wikipedia

  • Programming language theory — (commonly known as PLT) is a branch of computer science that deals with the design, implementation, analysis, characterization, and classification of programming languages and programming language features. It is a multi disciplinary field, both… …   Wikipedia

  • Lisp (programming language) — Infobox programming language name = Lisp paradigm = multi paradigm: functional, procedural, reflective generation = 3GL year = 1958 designer = John McCarthy developer = Steve Russell, Timothy P. Hart, and Mike Levin latest release version =… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”