Go! est un langage de programmation concurrent, originellement conçu par Keith Clark et Francis McCabe en 2003Clark and McCabe, AAMAS'03, 2003. 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 objetBordini et al., Informatica, 2006, 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 typeClark and McCabe, Applied Intelligence, 2006. La conception de Go!, d'après Bordini et al.'s survey.

Depuis le lancement du langage de programmation de Google, Go! et Go sont devenus le sujet d'une polémique sur le nom du langage qui n'est pas résolue au https://www.lemonde.fr/technologies/article/2009/11/12/google-lance-son-propre-langage-de-programmation_1266019_651865.html.

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, utilisés pour coordonner leurs activités.

Notes et références

Voir aussi

Bibliographie

Liens externes Lets Go! textbook by Francis McCabe Dépôt Github du projet

Catégorie:Langage de programmation