Go! is a concurrent programming language, first publicly documented by Keith Clark and Francis McCabe in 2003. It is a multi-paradigm programming language that is oriented to the needs of programming secure, production quality, agent based applications. It is multi-threaded, strongly typed and higher order (in the functional programming sense). It has relation, function and action procedure definitions. Threads execute action procedures, calling functions and querying relations as need be. Threads in different agents communicate and coordinate using asynchronous messages. Threads within the same agent can also use shared dynamic relations acting as memory stores.
Go! | |
---|---|
Paradigm | concurrent |
Designed by | Francis McCabe, Keith Clark |
First appeared | 2003 |
License | GPLv2 |
References
- Clark, Keith L.; McCabe, Francis G. (2003). "Go! for multi-threaded deliberative agents". International Conference on Autonomous Agents: 964–965. doi:10.1145/860575.860747.
- Clark, K.L.; McCabe, F.G. (2003). "Ontology Oriented Programming in Go!" (PDF).
{{cite journal}}
: Cite journal requires|journal=
(help) - Clark, K.L.; McCabe, F.G. (2004). "Go!—A Multi-Paradigm Programming Language for Implementing Multi-Threaded Agents". Annals of Mathematics and Artificial Intelligence. 41 (2–4): 171–206. doi:10.1023/B:AMAI.0000031195.87297.d9.
- Clark, K.L.; McCabe, F.G. (2006). "Ontology oriented programming in go!". Applied Intelligence. 24 (3): 189–204. doi:10.1145/860575.860747.