Go! (langage de programmation)

Go! (langage de programmation)
Page d'aide sur l'homonymie Pour les articles homonymes, voir GO.
Page d'aide sur l'homonymie Cet article concerne un langage de programmation multi-agent créé en 2003. Pour pour le langage de programmation de Google, voir Go (langage). Pour go dans d'autres contexte, voir Go.
Go!
Apparu en 2003
Auteur Francis McCabe Keith Clark
Influencé par Prolog
Licence GPLv2

Go! est un langage de programmation concurrent, originellement conçu par Keith Clark et Francis McCabe en 2003[1]. Il est orienté vers le besoin de programmer des agents d'applications surs, de qualité de production. Il est multi-thread, fortement typé et d'un niveau élevé (au sens de la programmation fonctionnelle). Il a des définitions de relation, de fonctions et de procédures d'action. Les threads exécutent les procédures d'action, les appels de fonctions et les querying relations au besoin. Les threads des différents agents communiquent et se coordonnent en utilisant des messages asynchrones. Les threads à l'intérieur d'un même agent peuvent également utiliser des relations dynamiques partagées agissant comme des registres mémoires.

Sa nature comme langage de programmation multi-paradigme, intégrant des styles de la programmation logique, fonctionnelle et orientée objet[2], est particulièrement mise en œuvre dans les modèles basés sur une ontologie, tel qu'employés par le web sémantique en permettant un système type où les classes OWL peuvent être représentées dans le système type[3]. La conception de Go!, d'après Bordini et al.'s survey[2].

Depuis le lancement du langage de programmation de Google, Go! et Go sont devenus le sujet d'une polémique qui n'est pas résolue au 12 novembre 2009[4].

Sommaire

Modèle de Communication

Les threads à l'intérieur d'un même processus Go!, et donc dans le même agent, peuvent aussi communiquer en manipulant des objets à relation dynamiques, comparable aux registres de tuple de Linda[2], utilisés pour coordonner leurs activités.

Exemple

L'exemple suivant montre le style de type et de déclarations 'ontology-oriented' de Go!.

Gender::= male | female.
 
person <˜ {dayOfBirth:[]=>day. age:[]=>integer.
           gender:[]=>Gender. name:[]=>string.
           home:[]=>string. lives:[string]{}}.
 
person:[string,day,Gender,string]$=person.
 
person(Nm,Born,Sx,Hm)..{
  dayOfBirth()=>Born.
  age() => yearsBetween(now(),Born).
  gender()=>Sx.
  name()=>Nm.
  home()=>Hm.
  lives(Pl) :- Pl=home().
  yearsBetween:[integer,day]=>integer.
  yearsBetween(...) => ..
}.
 
newPerson:[string,day,Gender,string]=>person.
 
newPerson(Nm,Born,Sx,Hm)=>$person(Nm,Born,Sx,Hm).

Notes et références

  1. Clark and McCabe, AAMAS'03, 2003
  2. a, b et c Bordini et al., Informatica, 2006
  3. Clark and McCabe, Applied Intelligence, 2006
  4. (fr+en) http://www.lemonde.fr/technologies/article/2009/11/12/google-lance-son-propre-langage-de-programmation_1266019_651865.html

Voir aussi

Bibliographie

  • K.L. Clark, « Go! for multi-threaded deliberative agents », dans International Conference on Autonomous Agents (AAMAS'03), 2003, p. 964 - 965 [texte intégral, lien DOI] 
  • Erreur dans la syntaxe du modèle ArticleK.L. Clark, « Ontology Oriented Programming in Go! », dans , 2003 [texte intégral] 
  • K.L. Clark, « Go!—A Multi-Paradigm Programming Language for Implementing Multi-Threaded Agents », dans Annals of Mathematics and Artificial Intelligence, vol. 41, no 2-4, 2004, p. 171 - 206 [texte intégral, lien DOI] 
  • K.L. Clark, « Ontology oriented programming in go! », dans Applied Intelligence, vol. 24, no 3, 2006, p. 189 - 204 [texte intégral, lien DOI] 
  • R. Bordini et al., « A Survey of Programming Languages and Platforms for Multi-Agent Systems », dans Informatica, vol. 30, 2006, p. 33 - 44 [texte intégral] 
  • M. Fisher et al., « Computational Logics and Agents - A Roadmap of Current Technologies and Future Trends », dans Computational Intelligence, vol. 23, no 1, 2007, p. 61 - 91 [texte intégral] 

Liens externes


Wikimedia Foundation. 2010.

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

Игры ⚽ Поможем решить контрольную работу

Regardez d'autres dictionnaires:

  • Langage De Programmation — Un langage de programmation est un langage informatique, permettant à un être humain d écrire un code source qui sera analysé par une machine, généralement un ordinateur. Le code source subit ensuite une transformation ou une évaluation dans une… …   Wikipédia en Français

  • Langage De Programmation Exotique — Un langage de programmation exotique est un langage de programmation imaginé comme un test des limites de la création de langages de programmation, un exercice intellectuel ou encore une blague, sans aucune intention de créer un langage… …   Wikipédia en Français

  • Langage de programmation informatique — Programmation informatique Pour les articles homonymes, voir Programmation (homonymie). La programmation dans le domaine informatique est l ensemble des activités qui permettent l écriture des programmes informatiques. C est une étape importante… …   Wikipédia en Français

  • Langage de programmation ésotérique — Langage de programmation exotique Un langage de programmation exotique est un langage de programmation imaginé comme un test des limites de la création de langages de programmation, un exercice intellectuel ou encore une blague, sans aucune… …   Wikipédia en Français

  • Langage de programmation de haut niveau — Langage de haut niveau En informatique, un langage de haut niveau (aussi appelé langage de programmation de haut niveau) est un langage de programmation qui permet au programmeur de s abstraire de détails inhérents au fonctionnement de l… …   Wikipédia en Français

  • Langage de programmation — Programme écrit en Perl. Programm …   Wikipédia en Français

  • Langage de programmation Java — Java (langage) Pour les articles homonymes, voir Java.  Ne doit pas être confondu avec JavaScript …   Wikipédia en Français

  • Langage de programmation C — C (langage) Pour les articles homonymes, voir C. C …   Wikipédia en Français

  • Langage de programmation Python — Python (langage) Pour les articles homonymes, voir Python. Python …   Wikipédia en Français

  • Langage de programmation C plus plus — C++ Apparu en 1985 (dernière révision en 2003) Auteur Bjarne Stroustrup …   Wikipédia en Français

  • Langage de programmation Pascal — Pascal (langage) Pour les articles homonymes, voir Pascal. Pascal …   Wikipédia en Français

Share the article and excerpts

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