Page d'accueil encyclopedie-enligne.com en page d'accueil
Liste Articles: [0-A] [A-C] [C-F] [F-J] [J-M] [M-P] [P-S] [S-Z] | Liste Catégories | Une page au hasard | Pages liées

Lingo


image:Langage_progr.png
Cet article fait partie de
la série Langages de programmation
Langages orientés objet
Ada 95 - C++ - C#
Common lisp object system
Delphi - Eiffel - Java - Nice
Langages impératifs
APL - ASP
Assembleur
BASIC - C - Pascal
Perl - PHP - Python
Langages fonctionnels
ML/OCaml - Lisp/Common Lisp
Forth - Logo - Scheme
Langages déclaratifs
Clips - Prolog
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.



This site support the Wikimedia Foundation. This Article originally from Wikipedia. All text is available under the terms of the GNU Free Documentation License Page HistoryOriginal ArticleWikipedia