WLangage


WLangage
WLangage
Apparu en 1992 (dernière révision en 2001)
Auteur PC SOFT
Paradigme procédural, structuré, orienté objet
Typage statique, dynamique, faible
Influencé par BASIC, Pascal, C++
Implémentations WinDev, WebDev, WinDev Mobile, WDscript
Système d'exploitation Multiplate-forme (Windows, Windows CE, Linux)

Le WLangage[1] est un langage de programmation de 4e génération[2] inclus dans les outils de développement WinDev, WebDev et WinDev Mobile. Il est propriétaire et ne peut être manipulé qu'avec les outils PC SOFT et WDscript. Le WLangage est né en 1992 avec la première version de WinDev.

Même s'il y a explicitement une première phase précoce de compilation, le bytecode WLangage est exécuté par une machine virtuelle ou converti en code natif lors de l'exécution par un compilateur à la volée (just in time, JIT). Le framework est disponible sous Windows (32 bits, 64 bits et CE) et sous Linux.

Le WLangage peut également s'appuyer sur le framework Java pour une partie de ses fonctionnalités, ce qui permet une indépendance relative et limitée du fichier exécutable par rapport au système d'exploitation cible. Il en va de même dans WebDev, où le WLangage peut s'appuyer sur le framework PHP, sans toutefois permettre d'utiliser toutes les possibilités de ce dernier[3].

Initialement prévu pour Windows, une partie des fonctions du WLangage est basée sur l'API Microsoft Windows.

Sommaire

Programmation

Le WLangage est un langage de programmation procédurale qui permet la programmation impérative et la programmation orientée objet. C'est en fait un langage de programmation multi-paradigme.

Le WLangage contient des fonctions de haut niveau, telle que la fonction EcranVersFichier, qui effectue les affectations du contenu des champs d'une fenêtre vers des tables stockées dans un fichier ou des variables, auxquelles les champs ont été préalablement reliés (databinding).

Typage

Le WLangage autorise une utilisation souple du typage. Les variables doivent être typées mais les paramètres formels des procédures ou les itérateurs de boucles peuvent ne pas l'être. Il est ainsi possible dans un même projet de combiner des procédures avec typage strict pour profiter de la rigueur du typage statique et des procédures sans typage pour profiter de la souplesse du typage dynamique et du duck typing.

Orientation objet

Le WLangage permet l'utilisation de classes et inclut entre autres :

Limitation importante : il est impossible de créer des classes qui hériteraient des éléments graphiques de base (appelés champs dans la terminologie WinDev). En fait, ces champs ne peuvent pas être instanciés ni manipulés comme des objets: il n'y a pas la possibilité d'ajouter par programmation un champ à un écran vierge autrement que par copie d'un champ déjà existant (clonage) ou via des API.

Gestion des instances

L'allocation des instances est toujours dynamique, que la variable objet soit une variable locale, une variable globale, un membre de classe ou que l'instance soit créée par l'ordre allouer (new si on code en anglais). Une variable ou un membre objet manipule en fait une référence sur l'instance. Lorsqu'une instance est créée, son constructeur est exécuté.

La gestion des instances se fait par comptage de références, c'est-à-dire que chaque instance possède un compteur du nombre de variables ou de membres qui la manipulent. Lorsque plus aucune variable ou membre ne manipule une instance, son compteur de références arrive à 0, son destructeur est exécuté et l'instance est libérée. Dans la grande majorité des cas, il n'est donc pas nécessaire de se préoccuper de la libération des instances allouées, quelle que soit la méthode d'allocation. Cette technique permet l'exécution du destructeur lorsqu'une instance n'est plus utilisée, ce qui permet de libérer rapidement les ressources utilisées par l'instance (socket, fichier, ...). Dans le cas de références circulaires entre instances, il est nécessaire de forcer la libération d'une instance du cycle par l'ordre libérer (delete si on code en anglais) pour libérer les autres instances du cycle.

Gestion des erreurs et des exceptions

Le WLangage se différencie d'autres langages en distinguant deux catégories d'erreurs qui peuvent survenir lors de l'exécution et en proposant des mécanismes automatiques de traitement des erreurs.

Une erreur, ou erreur non fatale, est une erreur qui se produit en conditions normales lors de l'exécution. Par exemple l'échec de l'ouverture d'un fichier est une erreur non fatale, l'exécution continue pour permettre le traitement de l'erreur. L'erreur peut être traitée par programmation, comme dans la majorité des autres langages, en testant la valeur de retour de la fonction appelée ou en vérifiant une variable d'état (nommée ErreurDétectée). Cependant l'intérêt du WLangage repose sur toute une panoplie de traitements automatiques sans programmation qui permettent de gérer les erreurs qui se produisent dans une procédure :

  • poursuite de l'exécution de la procédure au label spécifique CAS ERREUR
  • sortie de la procédure en renvoyant une valeur d'échec prédéfinie et/ou en relayant l'erreur à l'appelant
  • affichage du message d'erreur avec différentes propositions pour l'utilisateur : réessai de l'opération (utile pour les erreurs de fichiers par exemple), fin de l'application, ...
  • exécution d'une procédure

Une exception, ou erreur fatale, est une erreur qui se produit en conditions anormales lors de l'exécution. Par exemple l'accès au troisième élément d'un tableau n'en contenant que deux génère une exception, l'exécution en cours s'interrompt de la même manière qu'en C++ ou C#. L'exception peut être traitée par programmation grâce aux instructions QUAND EXCEPTION et QUAND EXCEPTION DANS. Dans ce cas également, WinDev propose des traitements automatiques sans programmation :

  • poursuite de l'exécution de la procédure au label spécifique CAS EXCEPTION
  • exécution d'une procédure

Bilingue

Le WLangage permet de programmer en français et en anglais. Exemple :

sChaine est une chaîne
sChaine = DateVersChaine(DateDuJour())

Info("Nous sommes le " + sChaine)

ou en anglais :

sChaine is string
sChaine = DateToString(Today())

Info("Nous sommes le " + sChaine)

Il est possible de traduire automatiquement le code d'une langue à l'autre[4].


Par ailleurs, l'environnement permet la traduction des zones de saisie et des textes utilisés dans la programmation et destinés à l'utilisateur final de l'application (jusqu'à 20 langues dans un même programme).

Hello world

Info("Hello world !")

Notes et références

  1. W-Langage est l'ancienne orthographe de WLangage.
  2. Selon son éditeur, WLangage est un langage de cinquième génération. Or, WLangage est un langage de programmation impérative et non pas de programmation logique ou de programmation par contraintes, ce n'est donc pas un langage de 5e génération.
  3. Par exemple, les fonctions LDAP ou encore la prise en charge d'autres SGBD que HyperFileSQL et MySQL (ce qui explique pourquoi l'accès natif à MySQL est gratuit).
  4. Mais cela est plus dû à l'éditeur de code de WinDev, WebDev et WinDev Mobile.

Wikimedia Foundation. 2010.

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

Regardez d'autres dictionnaires:

  • W-Langage — WLangage WLangage Apparu en 1992 (dernière révision en 2001) Auteu …   Wikipédia en Français

  • W-langage — WLangage WLangage Apparu en 1992 (dernière révision en 2001) Auteu …   Wikipédia en Français

  • NDX — WinDev WINDEV Développeur PC SOFT Dernière version 14, réf 01F140029t (le 20 mai 200 …   Wikipédia en Français

  • WinDev — Développeur PC SOFT Dernière version 16, réf 01F160057k (21 juin 201 …   Wikipédia en Français

  • Windev — Développeur PC SOFT Dernière version 14, réf 01F140029t (le 20 mai 200 …   Wikipédia en Français

  • WebDev — Développeur PC SOFT Dernière version 15, réf 30F150061n (26 mai&# …   Wikipédia en Français

  • Introduction à la programmation objet — Programmation orientée objet La programmation orientée objet (POO) ou programmation par objet, est un paradigme de programmation informatique qui consiste en la définition et l assemblage de briques logicielles appelées objets ; un objet… …   Wikipédia en Français

  • Langage-objets — Programmation orientée objet La programmation orientée objet (POO) ou programmation par objet, est un paradigme de programmation informatique qui consiste en la définition et l assemblage de briques logicielles appelées objets ; un objet… …   Wikipédia en Français

  • Liste des langages de programmation — Le but de cette Liste des langages de programmation est d inclure tous les langages de programmation existants, qu ils soient actuellement utilisés ou historiques, par ordre alphabétique. Ne sont pas listés ici les langages informatiques de… …   Wikipédia en Français

  • Objet (programmation) — Programmation orientée objet La programmation orientée objet (POO) ou programmation par objet, est un paradigme de programmation informatique qui consiste en la définition et l assemblage de briques logicielles appelées objets ; un objet… …   Wikipédia en Français


Share the article and excerpts

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

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.