Langage de programmation de quatrième génération

Un article de Wikipédia, l'encyclopédie libre.
(Redirigé depuis L4G)
Aller à : navigation, rechercher

Un langage de programmation de quatrième génération (L4G) (4GL en anglais) est un type de langage de programmation apparu en 1980, proche des langues naturelles, qui permet d'écrire plus de choses avec moins de lignes de programmes et moins d'erreurs. Facile à apprendre, il permet de décrire certaines opérations de manière non procédurale et permet d'obtenir rapidement des résultats à partir de courts programmes[1],[2].

Il n'existe pas de distinction formelle entre la 3e et la 4e génération de langages de programmation. Le mot L4G est utilisé comme buzzword pour vendre des langages de programmation, et selon Holger Herbst en 1997, la plupart des L4G sont en fait des langages de 3e génération auxquels a été ajouté une syntaxe déclarative basée sur SQL[3]. De nombreux logiciels de base de données tels que DBase, Oracle ou Informix incluent un langage de programmation de 4e génération. Celui-ci est similaire à un langage généraliste tel que Pascal et comporte des constructions additionnelles qui permettent un lien étroit avec le moteur de base de données telles que des commandes permettant de manipuler les bases de données[4].

Selon un sondage réalisé à Hong-Kong en 1994, les caractéristiques essentielles d'un L4G sont un langage facile à apprendre, qui accélère le travail de programmation, dans lequel il y a un ensemble d'outils permettant de construire rapidement des menus ainsi que des formulaires électroniques et des rapports. La majorité des sondés ont trouvé difficile de répondre à la question « quelle est la définition d'un L4G ? »[5].

Quatre générations[modifier | modifier le code]

Les langages de programmation sont souvent catégorisés en quatre générations.

Les première et deuxième générations de langage de programmation sont dits de bas niveau: Dans ce type de langage le programmeur doit écrire les instructions d'une manière facile à comprendre pour le matériel informatique. Chaque ligne de code correspond à une seule opération effectuée par le système informatique. De tels langages sont également dépendants de la machine: Un programme écrit pour un ordinateur donné ne pourra pas être utilisé sur un autre type d'ordinateur[6].

La première génération — le langage machine — sont les instructions sous forme de suites de 0 et de 1 (opcode) telles qu'elles vont être exécutées par un processeur. Chaque type de processeur avait - et a toujours - une palette d'instructions qui lui est propre[7]. Le langage machine est la seule forme compréhensible par l'ordinateur[6]. Aujourd'hui plus personne n'écrit en langage machine[8].

La deuxième génération, celle du langage assembleur, existe depuis 1955[8]. Dans ce type de langage les opcodes sont écrits sous une forme alphanumérique plus facile à retenir[6]. Par exemple l'instruction dont la suite de bits est 01101001 sur le processeur 6502, s'écrit LDA en langage d'assemblage et correspond à une opération load accumulator[7]. Les programmes écrits dans ce langage doivent être traduits en langage machine en vue d'être exécutés. Tout comme dans la première génération, il existe différentes palettes d'instructions en fonction du type de processeur[7]. Par rapport aux programmes écrits dans des langages de 3e génération, l'exécution des programmes écrits dans le langage assembleur est généralement plus rapide. L'écriture et la maintenance de tels programmes demande cependant plus de temps[6]. Le langage assembleur est utilisé dans des situations où le temps de réponse du processeur est d'importance critique[8]. Bien que cette génération soit un progrès significatif par rapport à la génération précédente, elle reste très primitive par rapport aux possibilités offertes par les langages de 3e et de 4e génération[7].

Les langages de 3e et 4e génération sont dits de haut niveau: Les langages sont plus proches des langues naturelles, ce qui rend les programmes plus faciles à écrire. Ils sont généralement indépendants de la machine: le même programme pourra être utilisé sur plusieurs types d'ordinateurs sans avoir été altéré - toutefois un programme écrit en langage de haut niveau est souvent conçu pour utiliser un système d'exploitation en particulier[6].

Les langages de 3e génération sont apparus au début des années 1960, ils ont permis d'écrire des programmes d'une manière plus familière, proche de l'anglais, et qui ne dépendent pas du processeur qui sera utilisé. Ce qui a apporté un progrès significatif par rapport aux deux générations précédentes. Le premier langage de ce type a été FORTRAN, en 1957[7],[8]. Les langages de programmation de 3e génération tels FORTRAN, COBOL, BASIC ou Pascal sont de style procédural, alors que les langages C++, Java, Python et Ruby sont de style orientés objet. Les programmes écrits dans ces langages doivent être traduits par un compilateur ou un interpréteur avant d'être exécutés[6].

4e génération[modifier | modifier le code]

Le terme de « langage de 4e génération » a été pour la première fois formalisé par James Martin en 1982 dans son livre Applications Development Without Programmers[9] (« développement d'applications sans programmeurs ») pour désigner des langages de programmation de haut niveau. Comme le titre de l'ouvrage l'indique, le but de ce type de langage était de permettre à des développeurs non professionnels (par exemple des ingénieurs non informaticiens) de développer leurs propres applications.

Les langages de 4e génération sont apparus dans les années 1970. Contrairement aux langages polyvalents de troisième génération, les langages de 4e génération sont conçus pour résoudre des problèmes spécifiques[8]. Il n'existe pas de définition formelle des langages de 4e génération. Les programmeurs reconnaissent qu'ils ne sont pas procédural, qu'ils sont plus proches des langues naturelles que les langages de 3e génération, et plus faciles à utiliser[6].

De tels langages permettent aux programmeurs d'écrire des programmes avec peu de code, ce qui augmente leur productivité. Les programmes écrits dans ces langages s'exécutent plus lentement et sont plus gourmands en ressource, et les programmeurs préféreront dans certains cas utiliser un langage de 3e ou de 2e génération[6]. Les langages de 4e génération sont souvent utilisés pour accéder aux bases de données[6]. Les catégories principales sont les langages de reporting, les langages de requête (SQL, Prolog, …) et les générateurs de programme[8]. SQL est un langage utilisé pour écrire des demandes de recherche d'informations dans une base de données[6].

Le fait que le langage soit dédié implique que les opérations spécifiques au domaine traité sont incluses dans le lexique du langage là ou des langages généralistes (tels que le langage C) demandent l'emploi de bibliothèques logicielles complémentaires ou des développements spécifiques. Le haut niveau d'abstraction implique des programmes plus brefs et plus lisibles[2] dans le champ dédié du langage, en contrepartie ces programmes sont moins polyvalents et permettent moins d'optimisation que des langages de bas niveau et/ou généralistes.

Le but recherché de tels langages est de diminuer le coût de développement de logiciels et ils sont souvent utilisés comme outils CASE (sigle de computer aided software engineering - génie logiciel assisté par ordinateur)[10],[11].

Exemples[modifier | modifier le code]

Base de données[modifier | modifier le code]

Mathématiques[modifier | modifier le code]

Statistiques[modifier | modifier le code]

Gestion d'entreprise[modifier | modifier le code]

Voir aussi[modifier | modifier le code]

Notes et références[modifier | modifier le code]

  1. (en) Colin Ritchie, Database Principles and Design, Cengage Learning EMEA - 2008, (ISBN 9781844805402)
  2. a et b (en) Seema Kedar et Sanjay Thakare, Principles Of Programming Languages,Technical Publications - 2009,(ISBN 9788184315776)
  3. (en) Holger Herbst, Business Rule-Oriented Conceptual Modeling, Springer - 1997,(ISBN 9783790810042)
  4. (en) Colin Ritchie, Relational Database Principles,Cengage Learning EMEA - 2002,(ISBN 9780826457134)
  5. (en) Mehdi Khosrowpour, Managing Social and Economic Change With Information Technology, Idea Group Inc (IGI) - 1994, (ISBN 9781878289261)
  6. a, b, c, d, e, f, g, h, i et j (en) Deborah Morley et Charles S. Parker, Understanding Computers: Today and Tomorrow, Comprehensive, Cengage Learning - 2009,(ISBN 9780324830132)
  7. a, b, c, d et e (en) Michael Ekedahl, Programming with Microsoft Visual Basic 2008: An Object-Oriented Approach, Cengage Learning - 2009, (ISBN 9780324786248)
  8. a, b, c, d, e et f (en) J.B. Dixit,Computer Programming, Firewall Media - 2007, (ISBN 9788131800683)
  9. (en) James Martin, Application development without programmers, Prentice-Hall - 1982,(ISBN 9780130389435)
  10. (en) InfoWorld 27 août 1990, Vol. 12, N° 35, (ISSN 0199-6649)
  11. (en) Allen Kent et James G. Williams, Encyclopedia of Computer Science and Technology,(ISBN 9780824722715)

Articles connexes[modifier | modifier le code]