Content deleted Content added
Jonovision (talk | contribs) I explained my reasoning in the edit summary. If you disagree with the source, you are very welcome to add a balancing point of view, and you are also welcome to respond here or on the talk page. |
reverted to Nov 15th version, to undo wholesale rewrite by deletion advocate. This need to go through talk. |
||
Line 23:
}}
'''Go!'''
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. Agents in Go! contain both reactive and deliberative aspects, and coordinate using BDI structures,<ref>Fisher et al., Computational Intelligence, 2007</ref> and their style of expression has influenced the modeling of agent systems in [[Erlang (programming language)|Erlang]].<ref>Varela et al., Erlang Workshop'04</ref>
Upon the November 2009 release of Google's [[Go (programming language)|Go]] programming language (note lack of [[exclamation point]]) McCabe asked Google to change the name and accused the company of "steam-rollering over us".<ref>{{cite web|last=Claburn |first=Thomas |url=http://www.informationweek.com/news/software/web_services/showArticle.jhtml?articleID=221601351 |title=Google 'Go' Name Brings Accusations Of 'Evil' |publisher=InformationWeek |date=2009-11-11 |accessdate=2009-11-14}}</ref><ref>{{cite web|url=http://code.google.com/p/go/issues/detail?id=9 |title=Issue 9 - go - I have already used the name for *MY* programming language |publisher=code.google.com |date=2009-11-10 |accessdate=2009-11-14}}</ref>▼
▲
== Communication model ==
▲Go! "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 function|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
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. A related combination of tuple-based shared stores and Semantics has been taken up as the communication mechanism in the approaches of the [http://www.tripcom.org/ TripCom.org]<ref>[http://www.tripcom.org/docs/del/D6.5v2.pdf TripCom]</ref> and [[SOA4All]]<ref>[http://www.soa4all.eu/file-upload.html?func=startdown&id=77 Soa4al.eu]</ref> projects.
== Example ==
Line 61 ⟶ 59:
The <code>::=</code> rule defines a new [[algebraic data type]], a [[data type]] with only data constructors.
The <code><˜</code> rule defines an interface type - it indicates what properties are characteristic of a
The <code>$=</code> type rule indicates that there is also a theory label, with the functor
== Footnotes ==
|