Lingo

Image manquante
Langage_progr.png
image:Langage_progr.png

Cet article fait partie de la série
Langages de programmation
Langages à objets
Ada 95 - C++ - C#
Common Lisp
Delphi - Eiffel - Java
Nice - Oz - Python
Simula - Smalltalk
Visual Basic
Langages impératifs
APL - ASP - Assembleur
BASIC - C - COBOL
Forth - FORTRAN - Logo
Pascal - Perl - PHP
Langages fonctionnels
Erlang - Haskell
ML/OCaml - Oz
Lisp/Common Lisp
Scheme
Langages déclaratifs
Clips - Oz - Prolog
Langages concurrents
Ada 95 - Erlang
Java - Oz
Langages balisés
HTML - SGML - XML
Dialectes XML
S-expressions
Voir aussi
Conception - Codage
Tests - Optimisations

Lingo est le langage de programmation qui accompagne le logiciel Macromedia Director.

Sommaire

Origine du nom

Le mot Lingo signifie en anglais argot, au sens de langage vernaculaire, langue spécialisée appartenant à un groupe précis (ex. l'argot des typographes).

Caractéristiques du langage

La syntaxe du Lingo est très simple et très lisible, elle rappelle (de loin) le Basic ou le Pascal.

Syntaxe

Voici un exemple de fonction :

 on multiplie(a,b) 
     return a*b
 end multiplie
 

Les fonctions commencent en effet toutes par on [nom de fonction][(arguments)] et se terminent par end [nom de fonction]. Lingo est un langage très laxiste, on est par exemple autorisé à ne pas mettre les parenthèses après le nom de la fonction (on multiplie a, b).

À noter, les variables sont typées dynamiquement et il n'existe pas de différencitaion entre le "=" d'afectation et le "=" de comparaison.

 if a=1 then
    b=2
 else
    if a="une chaîne" then
       b=3
    end if
 end if
 

Après des années d'évolution syntaxique, Lingo est devenu un langage "pointé" assez classique et, donc, très lisible.


Director est un logiciel dédié à l'interactivité. Par conséquent Lingo permet l'interception facile d'un grand nombre d'évènements tels que : preparemovie (avant l'affichage), startmovie (au moment de l'affichage), mousedown (clic maintenu), mouseup (clic relâché), etc. Certains scripts intercepteurs évènements concernent l'ensemble du programme, d'autres peuvent ne s'appliquer qu'à des objets précis, comme les sprites (occurrence d'un objet - par exemple graphique - sur la scène).

 on mouseup 
         -- lorsque l'on clique sur l'objet auquel s'applique ce scipt''
    if the mouseh<320 then
         -- si la position horizontale de la souris est inférieure à 320
       puppetsound(1, "bing")
         -- on déclenche le son nommé "bing" sur la piste 1.
    end if
 end
 

Quelques éléments de syntaxe :

par exemple dans maCouleur = #rouge, le mot #rouge ne signifie rien pour Lingo en revanche il permet un code lisible pour le programmeur.
les opérateurs sont les mêmes qu'il faille comparer des entiers, des chaînes, ou quoi que ce soit d'autre.
monTableau = [] ou monTableau = [1,2"a",0,"b"]
monTableau = [[1,2],[1,5]]
monTableau = [#age:24, #sexe:"masculin", #taille: 1.80]

Points, rectangles, quads

Lingo permet de manipuler des variables de coordonnées telles que les points, les rects et les quads.

ex : [[[point(10,10),point(10,30),point(30,40), point(10,40)]]].

l'intérêt de ce genre de variables est que Lingo propose des fonctions prédéfinies permettant par exemple de savoir si un point donné est inclus dans un rectangle donné. Par ailleurs, on peut appliquer des opérations arithmétiques à ces variables. Exemple : point(10,10)+point(5,5) donnera : point(15,15)

Types de scripts

Il existe en fait trois types de scripts en Lingo (et c'est une source potentielle d'erreurs), qui prédéterminent l'utilisation qui pourra être faite desdits scripts :

un exemple de script parent :
 property pNombre 
 -- déclaration d'une variable interne à l'objet
 
 on new me, n
   pNombre = n
   return me
 end
 
 on incremente me
   pNombre = pNombre +1
 end
 

Si ce script se nomme "nombre", on l'instanciera par exemple de cette manière :

 monNouveauNombre = new(script "nombre", 10)
 

et on invoquera sa fonction "incremente" de cette manière :

 monNouveauNombre.incremente()
 

Implémentations

Le Lingo est un langage propriétaire, il n'en existe donc qu'une seule implantation.

Avenir

Dans sa version MX2004, le logiciel Director accepte l'usage de deux langages différents : le Lingo, et une implémentation de Javascript/ECMAScript adaptée. On peut imaginer, à terme, que Lingo disparaîtra.

See also: Lingo, APL (langage), Active server pages, Ada (langage), Assembleur (langage), Basic, CLOS, COBOL, C (langage)