Programmation 4GL/Bases du langage
Hello World!!
[modifier | modifier le wikicode]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.
Compilation
[modifier | modifier le wikicode]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
.
Exécution
[modifier | modifier le wikicode]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
Mots clefs
[modifier | modifier le wikicode]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.
Commentaires
[modifier | modifier le wikicode]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. }
Instructions
[modifier | modifier le wikicode]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.
- les variables définies à l'intérieur d'un bloc
- 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.