Jít! (programovací jazyk) - Go! (programming language)

Jít!
ParadigmaMulti-paradigma: souběžně, logika, funkční, rozkazovací způsob (objektově založený )
NavrhlFrancis McCabe, Keith Clark
Poprvé se objevil2003; Před 17 lety (2003)
Náhled verze
9. - 30. září / 30. září 2007; Před 13 lety (2007-09-30)
Psací disciplínasilný
OSUnixový
LicenceGPLv2
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

  1. ^ 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.
  2. ^ 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.
  3. ^ 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.
  4. ^ „Vydání 9 - pokračujte - už jsem použil název programovacího jazyka * MY *“. 2009-11-10. Citováno 2009-11-14.
  5. ^ Brownlee, John (2009-11-13). „Google nevyslovil google„ Go “, než pojmenoval svůj programovací jazyk“. Geek.com. Citováno 2010-01-18.
  6. ^ „Název jsem již použil pro * MY * programovací jazyk · Číslo 9 · golang / go“. GitHub. Citováno 2019-07-04.

Další čtení

externí odkazy