Langage de programmation de quatrième génération - Fourth-generation programming language

Un langage de programmation de quatrième génération ( 4GL ) est un langage de programmation informatique appartenant à une classe de langages envisagés comme une avancée par rapport aux langages de programmation de troisième génération (3GL). Chacune des générations de langage de programmation vise à fournir un niveau plus élevé d' abstraction des internes du matériel informatique de détails, ce qui rend la langue plus programmeur -Friendly, puissant et polyvalent. Bien que la définition de la 4GL ait changé au fil du temps, elle peut être caractérisée en fonctionnant davantage avec de grandes collections d'informations à la fois plutôt que de se concentrer uniquement sur les bits et les octets . Les langages prétendument 4GL peuvent inclure la prise en charge de la gestion de base de données , de la génération de rapports , de l'optimisation mathématique , du développement d'interface graphique ou du développement Web . Certains chercheurs affirment que les 4GL sont un sous-ensemble de langages spécifiques à un domaine .

Le concept de 4GL a été développé des années 1970 aux années 1990, chevauchant la majeure partie du développement de 3GL, les 4GL étant identifiés comme des langages « non procéduraux » ou « générateurs de programmes », par opposition aux 3GL étant des langages algorithmiques ou procéduraux. Alors que les 3GL comme C , C++ , C# , Java et JavaScript restent populaires pour une grande variété d'utilisations, les 4GL tels que définis à l'origine ont trouvé des utilisations axées sur les bases de données, les rapports et les sites Web. Certains 3GL avancés comme Python , Ruby et Perl combinent certaines capacités 4GL dans un environnement 3GL à usage général, et des bibliothèques avec des fonctionnalités de type 4GL ont été développées en tant que modules complémentaires pour les 3GL les plus populaires, produisant des langages qui sont un mélange de 3GL et 4GL, brouillant la distinction.

Dans les années 1980 et 1990, des efforts ont été déployés pour développer des langages de programmation de cinquième génération (5GL).

Histoire

Bien qu'utilisé plus tôt dans des articles et des discussions, le terme 4GL a été utilisé pour la première fois formellement par James Martin dans son livre de 1981 Développement d'applications sans programmeurs pour désigner les langages de spécification de haut niveau non procéduraux . D'une certaine manière primitive, les premiers 4GL ont été inclus dans le produit Informatics MARK-IV (1967) et le MAPPER de Sperry (utilisation interne de 1969, version de 1979).

Les motivations de la création du « 4GL » et de l'intérêt continu sont nombreuses. Le terme peut s'appliquer à un grand nombre de produits logiciels. Cela peut également s'appliquer à une approche qui recherche de plus grandes propriétés sémantiques et une plus grande puissance de mise en œuvre. Tout comme le 3GL offrait une plus grande puissance au programmeur, le 4GL a également ouvert l'environnement de développement à une population plus large.

Le premier schéma d'entrée pour le 4GL prenait en charge l'entrée de données dans la limite de 72 caractères de la carte perforée (8 octets utilisés pour le séquençage) où l'étiquette d'une carte identifierait le type ou la fonction. Avec une utilisation judicieuse de quelques cartes, le jeu 4GL pourrait offrir une grande variété de capacités de traitement et de rapport tandis que la fonctionnalité équivalente codée dans un 3GL pourrait englober , peut-être, une boîte entière ou plus de cartes .

Le format de 72 caractères a continué pendant un certain temps alors que le matériel progressait vers des interfaces de mémoire et de terminal plus grandes. Même avec ses limites, cette approche supportait des applications très sophistiquées.

Au fur et à mesure que les interfaces s'amélioraient et permettaient des longueurs d'instructions plus longues et une gestion des entrées axée sur la grammaire, une plus grande puissance s'ensuivit. Un exemple de ceci est décrit sur la page Nomad .

Un autre exemple du pouvoir de Nomad est illustré par Nicholas Rawlings dans ses commentaires pour le Computer History Museum à propos du NCSS (voir la citation ci-dessous). Il rapporte que James Martin a demandé à Rawlings une solution nomade à un problème standard que Martin a appelé le problème de l' ingénieur : « donnez 6 % d'augmentation aux ingénieurs dont les notes d'emploi avaient une moyenne de 7 ou mieux. » Martin a fourni une "douzaine de pages de COBOL, puis juste une ou deux pages de Mark IV , de Informatics ". Rawlings a proposé l'instruction unique suivante, effectuant une opération de définition à la fois ...

Le développement de la 4GL a été influencé par plusieurs facteurs, les contraintes du matériel et du système d'exploitation ayant un poids important. Lorsque le 4GL a été introduit pour la première fois, un mélange disparate de matériel et de systèmes d'exploitation a exigé un support de développement d'applications personnalisé qui était spécifique au système afin d'assurer les ventes. Un exemple est le système MAPPER développé par Sperry . Bien qu'il remonte au début, le système a fait ses preuves dans de nombreuses applications et a été porté sur des plates-formes modernes. La dernière variante est intégrée à l'offre BIS d' Unisys . MARK-IV est maintenant connu sous le nom de VISION:BUILDER et est proposé par Computer Associates .

Le chemin de fer de Santa Fe a utilisé MAPPER pour développer un système, dans un projet qui était un exemple précoce de 4GL, de prototypage rapide et de programmation par les utilisateurs . L'idée était qu'il était plus facile d'enseigner aux experts ferroviaires à utiliser MAPPER que d'enseigner aux programmeurs les « subtilités des opérations ferroviaires ».

L'un des premiers langages (et portables) possédant des propriétés 4GL était Ramis développé par Gerald C. Cohen chez Mathematica , une société de logiciels mathématiques. Cohen a quitté Mathematica et a fondé Information Builders pour créer un 4GL similaire orienté reporting, appelé FOCUS .

Les types 4GL ultérieurs sont liés à un système de base de données et sont très différents des types antérieurs dans leur utilisation des techniques et des ressources qui ont résulté de l'amélioration générale de l'informatique avec le temps.

Une tournure intéressante de la scène 4GL est la réalisation que les interfaces graphiques et le raisonnement associé effectué par l'utilisateur forment un « langage » mal compris.

Les types

Il existe différents types de 4GL :

  • Programmation pilotée par table (sans code), généralement exécutée avec un framework d'exécution et des bibliothèques. Au lieu d'utiliser du code, le développeur définit sa logique en sélectionnant une opération dans une liste prédéfinie de commandes de manipulation de mémoire ou de table de données. En d'autres termes, au lieu de coder, le développeur utilise la programmation d'algorithmes pilotés par table (voir également les tables de contrôle qui peuvent être utilisées à cette fin). Un bon exemple de ce type de langage 4GL est PowerBuilder . Ces types d'outils peuvent être utilisés pour le développement d'applications commerciales consistant généralement en un package permettant à la fois la manipulation de données commerciales et la création de rapports. Ils sont donc fournis avec des écrans d'interface graphique et des éditeurs de rapports. Ils offrent généralement une intégration avec des DLL de niveau inférieur générées à partir d'un 3GL typique lorsque le besoin se fait sentir d'opérations spécifiques au matériel/système d'exploitation.
  • Les langages de programmation générateurs de rapports prennent une description du format de données et du rapport à générer et à partir de là, ils génèrent directement le rapport requis ou ils génèrent un programme pour générer le rapport. Voir aussi RPG
  • De même, les générateurs de formulaires gèrent les interactions en ligne avec les utilisateurs du système d'application ou génèrent des programmes pour le faire.
  • Des 4GL plus ambitieux (parfois appelés environnements de quatrième génération ) tentent de générer automatiquement des systèmes entiers à partir des sorties des outils CASE , des spécifications des écrans et des rapports, et peut-être aussi de la spécification d'une logique de traitement supplémentaire.
  • Les 4GL de gestion des données tels que SAS , SPSS et Stata fournissent des commandes de codage sophistiquées pour la manipulation des données, le remodelage des fichiers, la sélection des cas et la documentation des données dans la préparation des données pour l'analyse statistique et la création de rapports.
  • Langages dits « XTalk », développés initialement avec Hypercard d'Apple en 1987. Hypercard était le géniteur de programmes plus modernes et puissants tels que SuperCard, Toolbook et LiveCode.

Certains 4GL ont des outils intégrés qui permettent de spécifier facilement toutes les informations requises :

Environnements low code

Au XXIe siècle, les systèmes 4GL sont apparus comme des environnements ou des plates-formes « low code » pour le problème du développement rapide d'applications sur de courtes périodes de temps. Les fournisseurs fournissent souvent des exemples de systèmes tels que le CRM, la gestion des contrats, le suivi des bogues à partir desquels le développement peut se produire avec peu de programmation.

Exemples

Usage général / polyvalent

Langages de requête de base de données

Générateurs de rapports

L'extraction de données à partir de fichiers ou de bases de données pour créer des rapports dans une large gamme de formats est effectuée par les outils de génération de rapports.

Langages de manipulation, d'analyse et de reporting des données

Créateurs de logiciels

Optimisation mathématique

Développement d'applications GUI basées sur une base de données

Plateformes de développement Low code / No code

Peintres d'écran et générateurs

Langages de développement Web

Voir également

Les références