This programming language may be used to instruct a computer to perform a task.
Go! is an agent-based programming language in the tradition of logic-based programming languages like Prolog.
The authors of Go! describe it as "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 Linda-style tuple stores."
The authors also propose that the language is suitable for representing ontologies due to its integration of logic, functional, object-oriented and imperative styles of programming.
It can be downloaded from 
Not to be confused with Go