# ABAL

ABAL est un langage de programmation, conçu en 1987 par Michel Joubert, Eric Vignaud et Lain James Marshall, et distribué par la société Prologue (aux Ulis en France).
ABAL (Advanced Business Application Language) est un langage déclaratif, procédural et orienté objet (ABAL++).
ABAL est un langage semi-compilé, le code source est traduit en T-code par les traducteurs (Atr et/ou Otr) et des éditeurs de liens (Ald et/ou Old) sous forme d'un fichier informatique .at qui n'est pas exécutable directement et interprété.
Les programmes ABAL sont exécutables grâce à un exécuteur spécifique à chaque système d'exploitation (Windows, Twinserver, Useit, Unix/SCO).
Il existe différents types d'exécuteurs : 16Bits et 32Bits (exa, exa32, wexa, wexa32) pour répondre aux spécificités des différents systèmes d'exploitation et des besoins applicatifs.
ABAL avait été conçu, dès le départ en 1987, pour permettre aux programmes d'être totalement portables non seulement sur des systèmes d'exploitation et architectures différents mais aussi à travers le temps. Ainsi les applications, écrites avec la première Version 1, sont toujours exécutables avec les familles de versions les plus récentes, Version 2 (orientation objet), Version 3 (architecture 32bits et graphiques) et Version 4 (interfaçage avec SQL).
Au début de l'année 1991, la version à orientation objets portables et d'attachement dynamiques, ABAL++ avait été présentée en détail à des membres de la société Sun Microsystèmes par Michel Joubert et Iain James Marshall.
L'exécuteur s'appuie sur des BDA (bibliothèques dynamiques) pour ajouter des fonctionnalités :
* Screener : Bibliothèque interface graphique
* Visual : Bibliothèque interface graphique
* Audio : Bibliothèque interface cartes sons
* FAC : Bibliothèque accès fichier
* TTY : Bibliothèque accès port COM
* MODEXT : Bibliothèque Critéria/ODBC
* BDAMAIL : Bibliothèque Communication avec serveur de messagerie électronique (envoi/réception, décodage/encodage pièces jointes, …)
* BDANET : Bibliothèque pour utilisation de sockets HTTP client et serveur
* GRAPHABAL : Bibliothèque gestion de graphique (camembert, histogramme, etc.)
* …à compléter…
L'exécuteur s'appuie aussi sur des bibliothèques systèmes spécifiques à chaque système d'exploitation (DLL sous Windows, .so sous Useit, .xp sous Twinserver).
Le langage ABAL est une réécriture complète en langage C du langage BAL (Business Application Language, conçu par Michel Joubert). ABAL a évolué depuis de nombreuses années : ABAL, ABAL2, ABAL3 et maintenant ABAL4. ABAL se compose d'un éditeur de texte (Aed), d'un éditeur de lien (Ald/Old), d'un traducteur (Atr/Otr) et d'un débogueur (Exadb/Wexadb).
Il existe un intégré de développement qui regroupe l'éditeur, l'éditeur de lien, le traducteur et le débogueur.
La société Prologue :
* est aussi l'auteur et le distributeur d'une base de données propriétaire : Criteria
* est concepteur et diffuseur de Useit (distribution Linux orientée gestion des entreprises)
Le langage ABAL, pour les systèmes à base de UNIX et LINUX, a été acheté par la société SOLOGIC. En collaboration avec Iain James Marshall de la société AMENESIK, le langage a été entièrement réactualisé, après près de dix longues années de négligence de la part de PROLOGUE. Cette version d'ABAL, nommée OPEN ABAL, a été étendue sur les quatre axes suivants :
* Le TCODE de la langage ABAL a été étendu de 32 à 64 bits permettant l'utilisation natif d'entiers 8, 16, 32 et 64 bits, autant par les programmes eux-mêmes que par l'environnement d'exécution.
* OPEN ABAL a été porté sur les systèmes LINUX modernes des éditeurs UBUNTU 20.04 et RED HAT 9.3
* OPEN ABAL est opérationnel sur des systèmes UBUNTU sous WSL (Windows Subsystem for Linux)
* OPEN ABAL a été adapté pour fonctionner avec les bases de données MySQL, MARIADB, POSTGRESQL et SQL SERVER a travers d'ODBC, au lieu de la base de données Criteria.
* OPEN ABAL a été étendu pour offrir de nouvelles fonctions graphiques à travers l'environnement d'affichage HTML WEB nommé OPEN LTS.
* OPEN LTS permet d'accéder aux applications OPEN ABAL depuis des Browser Internet Chrome, Edge, Firefox, Opera, Safari, depuis des environnements Windows, Linux et MacOS sur des platforms PC, Max, iPad, iPhone, et Android.
Ainsi, les applications écrites en ABAL versions 2,3 et 4 voient leur avenir assuré.