Go! (programming language): Difference between revisions

Content deleted Content added
Jonovision (talk | contribs)
I have no idea how Tripcom's use of tuple-based stores has anything to do with this article. No references. Spam?
Jonovision (talk | contribs)
Heck, this text has been just pasted together from various papers by various editors, so better to just use McCabe's own words.
Line 29:
== Design ==
 
ItAs described by its authors, Go! "is a multi-paradigm programming language that is oriented to the needs of programming secure, production quality, agent based applications. It is [[multithreaded]]multi-threaded, [[strong typing|strongly typed]] and [[Functional programming|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.
Linda-style tuple stores."<ref>Clark and McCabe, AAMAS'03, 2003</ref>
 
The authors also propose that the language is suitable for representing [[ontology|ontologies]] due to its integration of of [[logic programming|logic]], [[functional programming|functional]], [[object-oriented programming|object-oriented]] and [[imperative programming|imperative]] styles of programming.<ref>Clark and McCabe, Applied Intelligence, 2006</ref>
Its nature as a multi-paradigm programming language, integrating logic, functional, object-oriented, and imperative programming styles,<ref name=informatica-survey>Bordini et al., Informatica, 2006</ref> is particularly applied to ontology-based modeling, as exploited for the [[Semantic Web]] in allowing a type system where [[Web Ontology Language|OWL]] classes can be represented in the type system.<ref>Clark and McCabe, Applied Intelligence, 2006</ref> The design of Go!, according to Bordini et al.'s survey,<ref name=informatica-survey /> also took into consideration critical issues such as security, transparency, and integrity, in regards to the adoption of logic programming technology.
 
Threads within a single Go! process, hence in the same agent, can also communicate by manipulating dynamic relation objects, comparable with [[Linda_(coordination_language)|Linda]] tuple stores,<ref name=informatica-survey /> used to coordinate their activities.
 
== Example ==