Go! (programming language): Difference between revisions

Content deleted Content added
Reverted to revision 508355076 by 148.87.67.209: Provide references first. (TW)
m tags and general fixes, removed stub tag using AWB (8853)
Line 25:
'''Go!''' is an [[Agent-based model|agent-based]] programming language in the tradition of [[Logic programming|logic-based programming]] languages like [[Prolog]].<ref name="infowk">{{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> It was introduced in a 2003 paper by Francis McCabe and [[Keith Clark]].<ref name="aamas"/>
 
In November 2009, [[Google]] released a similarly named [[Go (programming language)|Go programming language]] (with no [[exclamation point]]). McCabe asked Google to change the name of their language and accused the company of "steam-rolling over us".<ref name="infowk"/><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> The issue received attention among technology news websites, with some of them characterizing Go! as "obscure".<ref>{{cite news|url=http://www.geek.com/articles/news/google-didnt-google-go-before-naming-their-programming-language-20091113/|title=Google didn’t google “Go”"Go" before naming their programming language |last=Brownlee |first=John |date=2009-11-13 |publisher=Geek.com |accessdate=2010-01-18}}</ref>
 
== Design ==
Line 31:
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 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 communicate and coordinate using asynchronous messages. Threads within the same agent can also use shared dynamic relations acting as [[Linda (coordination language)|Linda]]-style [[tuple space|tuple stores]]."<ref name="aamas">{{cite journal |last1=Clark |first1=K.L. |last2=McCabe |first2=F.G. |year=2003 |title= Go! for multi-threaded deliberative agents |journal=International Conference on Autonomous Agents (AAMAS'03) |pages=964–965 |url=http://portal.acm.org/citation.cfm?doid=860575.860747 | doi=10.1145/860575.860747 }}</ref>
 
The authors also propose that the language is suitable for representing [[Ontology (information science)|ontologies]] due to its integration of [[logic programming|logic]], [[functional programming|functional]] and [[imperative programming|imperative]] styles of programming. <ref name="applied">{{cite journal |last1=Clark |first1=K.L. |last2=McCabe |first2=F.G. |year=2006 |title=Ontology oriented programming in go! |journal=Applied Intelligence |volume=24 |issue=3 |pages=189–204 |doi=10.1145/860575.860747 }}</ref>
 
As a deliberate design choice to reduce complexity, Go! does not support [[inheritance (object-oriented programming)|inheritance]].
Line 94:
[[Category:Programming languages created in the 2000s]]
[[Category:Concurrent programming languages]]
 
 
{{compu-lang-stub}}
 
[[fr:Go! (langage de programmation)]]