Jít! (programovací jazyk) - Go! (programming language)
Paradigma | Multi-paradigma: souběžně, logika, funkční, rozkazovací způsob (objektově založený ) |
---|---|
Navrhl | Francis McCabe, Keith Clark |
Poprvé se objevil | 2003 |
Náhled verze | 9. - 30. září / 30. září 2007 |
Psací disciplína | silný |
OS | Unixový |
Licence | GPLv2 |
Ovlivněno | |
Prolog[1] |
Jít! je agent programovací jazyk v tradici logické programování jazyky jako Prolog.[1] To bylo představeno v dokumentu z roku 2003 Francis McCabe a Keith Clark.[2]
Design
Autoři Go! popsat jako „a programovací jazyk pro více paradigmat který je orientován na potřeby bezpečného programování, kvality výroby a aplikací založených na agentech. to je vícevláknové, silně napsané a vyšší řád (ve smyslu funkčního programování). Má definice vztahů, funkcí a akcí. Vlákna provádějí akční procedury, volají funkce a dotazují relace podle potřeby. Vlákna v různých agentech komunikují a koordinují pomocí asynchronních zpráv. Vlákna v rámci stejného agenta mohou také používat sdílené dynamické vztahy fungující jako Linda -styl n-tice obchody."[2]
Autoři také navrhují, aby byl tento jazyk vhodný pro reprezentaci ontologie kvůli jeho integraci logika, funkční a rozkazovací způsob styly programování.[3]
Příklad
Následující příklad ilustruje styl „na ontologii“ a styl deklarací Go !:[3]
Sex ::= muž | žena. osoba <~ {datum narození:[] => den. stáří:[] => celé číslo. sex:[] => Sex. název:[] => tětiva. Domov:[] => tětiva. životy: [tětiva] {}}. osoba:[tětiva, denSex tětiva] $= osoba. osoba (Nm, Born, Sx, Hm) .. {dayOfBirth () => Narozený. stáří() => letMezi (nyní (), narozen). sex() => Sx. název() => Nm. Domov() => Hm. životy (Pl) :- Pl = Domov(). rokyMezi: [celé číslo, den] => celé číslo. letMezi (...) => ..}. newPerson: [tětiva, den, Sex, tětiva] => osoba. newPerson (Nm, Born, Sx, Hm) => $ osoba (Nm, Born, Sx, Hm).
The ::=
pravidlo definuje nový algebraický datový typ, a datový typ pouze s datovými konstruktory.
The <~
pravidlo definuje typ rozhraní - určuje, jaké vlastnosti jsou charakteristické pro a osoba
a také poskytuje omezení typu pro tyto vlastnosti. Dokumentuje to stáří
je funkční vlastnost s celočíselnou hodnotou životy
je unární vztah přes řetězce, a to datum narození
je funkční vlastnost s hodnotou, která je objektem typu den
.
The $=
pravidlo typu naznačuje, že u funktoru existuje také štítek teorie osoba
, pro teorii, která definuje charakteristické vlastnosti osoba
typ - implementuje osoba
rozhraní - z hlediska čtyř daných parametrů typů tětiva
, den
, Sex
, a tětiva
.
Konflikt s Googlem
V listopadu 2009 Google vydala podobně pojmenovaný Jděte do programovacího jazyka (s č vykřičník ). McCabe požádal Google, aby změnil název jejich jazyka, protože měl obavy, že se „převalují parou“.[1][4] Tomuto problému se dostalo pozornosti technologických zpravodajských webů, přičemž některé z nich charakterizovaly Go! jako „temný“.[5] Vlákno vydání otevřené na toto téma bylo uzavřeno vývojářem Google dne 12. října 2010 s vlastním stavem „Nešťastné“ a s následujícím komentářem: „Existuje mnoho počítačových produktů a služeb s názvem Go. Za 11 měsíců od našeho vydání existuje byl minimální zmatek těchto dvou jazyků. “[6]
Reference
- ^ A b C Claburn, Thomas (11. 11. 2009). „Název Google„ Go “přináší obvinění zla'". Informační týden. Citováno 2009-11-14.
- ^ A b Clark, K.L .; McCabe, F.G. (2003). Jít! pro vícevláknové poradní agenty. Mezinárodní konference o autonomních agentech (AAMAS'03). 964–965. CiteSeerX 10.1.1.117.184. doi:10.1145/860575.860747. ISBN 978-1581136838.
- ^ A b Clark, K.L .; McCabe, F.G. (2006). "Ontologicky orientované programování v provozu!". Aplikovaná inteligence. 24 (3): 189–204. CiteSeerX 10.1.1.117.184. doi:10.1145/860575.860747.
- ^ „Vydání 9 - pokračujte - už jsem použil název programovacího jazyka * MY *“. 2009-11-10. Citováno 2009-11-14.
- ^ Brownlee, John (2009-11-13). „Google nevyslovil google„ Go “, než pojmenoval svůj programovací jazyk“. Geek.com. Citováno 2010-01-18.
- ^ „Název jsem již použil pro * MY * programovací jazyk · Číslo 9 · golang / go“. GitHub. Citováno 2019-07-04.
Další čtení
- Clark, K. L .; McCabe, F. G. (2003). „Programování orientované na ontologii v Go!“ (PDF). Citovat deník vyžaduje
| deník =
(Pomoc) - Clark, K. L .; McCabe, F. G. (2004). „Go! —Anglický programovací jazyk pro více paradigmatů pro implementaci agentů s více vlákny“. Annals of Mathematics and Artificial Intelligence. 41 (2–4): 171–206. CiteSeerX 10.1.1.133.1069. doi:10.1023 / B: AMAI.0000031195.87297.d9.
- R. Bordini; et al. (2006). „Průzkum programovacích jazyků a platforem pro multiagentní systémy“. Informatica. 30: 33–44. Archivovány od originál dne 15. 11. 2009.
- M. Fisher; et al. (2007). „Výpočetní logika a agenti - plán současných technologií a budoucích trendů“. Výpočetní inteligence. 23 (1): 61–91. CiteSeerX 10.1.1.114.6149. doi:10.1111 / j.1467-8640.2007.00295.x. Archivovány od originál dne 06.01.2013.
- McCabe, Francis G. (7. února 2007). Pojďme!. Síťový agent Press. ISBN 978-0-9754449-1-7.
- C. Varela; et al. (2004). O modelování agentských systémů s Erlang. Workshop ACM SIGPLAN Erlang '04.