Aller au contenu

Programmation 4GL/Bases du langage

Un livre de Wikilivres.

Comme pour tout langage de programmation, voici le programme traditionnel:

main

    display "Hello World!!"

end main

Comme on peut le constater, ce programme contient trois lignes de code que nous allons tout de suite détailler.

main

Défini le point d'entrée du programme, à la manière du langage C. Notez toutefois l'absence de paramètres.

display "Hello World!!"

Affiche le texte Hello World!! à l'écran.

end main

Indique la fin du programme. L’exécution se termine à ce point.

Le 4GL étant un langage compilé, il faut compiler ce programme.

L'extension par défaut est évidemment 4gl, copier/collez donc le code précédent dans un fichier nommé hello.4gl.

La compilation s'effectue ensuite par la commande:

c4gl hello.4gl 

Cela génère un fichier a.out exécutable.

Pour générer un fichier avec un nom plus parlant, on utilise l'option -o:

c4gl hello.4gl -o hello.4ge

Ce qui crée le fichier hello.4ge.

Pour exécuter le programme, il suffit de taper son nom dans un terminal, ou de cliquer sur son icône.

Éléments de syntaxe

[modifier | modifier le wikicode]

Identificateurs

[modifier | modifier le wikicode]

Les identificateurs commencent toujours par une lettre ou un caractère souligné. Les mots-clés et les symboles sont insensibles à la casse et peuvent contenir uniquement des lettres, chiffres et le caractère souligné.

Exemples:

toto

ma_var

ma_VAR

m4_v4r148l3

4GL contient un certain nombre de mots clefs que nous détaillerons par la suite, la plupart des ressources disponibles sur Internet contiennent des exemples avec ces mots clefs en majuscules. Ce langage étant insensible à la casse, ça n'est absolument pas nécessaire. Les exemples de ce livre seront donc tous à priori en minuscule. La coloration syntaxique de votre éditeur de texte préféré sera donc mis à contribution.

Les commentaires peuvent être introduits par # (comme en shell)ou être inclus entre accolades { }. Il n'est pas nécessaire de positionner ces caractères en début de ligne.

# Ceci est est commentaire mono ligne comme en shell
{ Ceci est un commentaire
  qui s’étale sur plusieurs
  lignes.
   }

Contrairement à certains langages, la fin des instructions est implicite, lorsque la syntaxe est correcte évidemment.

Exemple 1:

# Une instruction qui affiche 'Hello'
display "Hello"

# Incrémente la variable i de 1, puis b de 2
let i = i + 1
let b = b + 2

Exemple 2:

# À l’exécution le résultat est le même que dans l'exemple précédent
display "Hello" let i = i + 1 let b = b + 2

Évidemment, il est préférable d'écrire le programme comme illustré dans la première version, une instruction par ligne.

Déclarations de variables

[modifier | modifier le wikicode]

Les variables sont déclarés par l'instruction:

define ma_var mon_type

Ce qui a pour effet de définir une variable nommée ma_var de type mon_type. En fonction du compilateur, les variables peuvent être définies à une valeur par défaut. Il est néanmoins conseillé d'initialiser les variables avant utilisation.

Cette instruction define doit être la première d'un fichier ou d'une fonction, sous peine de générer une erreur de compilation.

Il existe pour les variables 3 types de portées en 4GL, en fonction de l'emplacement de l'instruction define.

  • Globale
    • les variables définies à l'intérieur d'un bloc globals ... end globals sont accessibles partout. Il est recommandé de placer ces définitions dans un fichier spécifique et d'inclure ce fichier dans chacun des modules.
  • Locale à un fichier
    • les variables définies au début d'un fichier source, et à l'extérieur de toute fonction, sont locales au fichier, et sont donc accessibles dans tout le fichier.
  • Locale à une fonction
    • les variables définies au début d'une fonction, sont locales à la fonction et ne sont donc pas accessibles en dehors de celle-ci.