www.wikidata.uk-ua.nina.az
Go kompilovana mova programuvannya iz vbudovanimi zasobami dlya paralelnih obchislen i zasobami viddalenogo keruvannya pakunkami Cyu movu programuvannya rozrobiv Google 2 yak chastinu proyektu z rozrobki operacijnoyi sistemi Inferno dzherelo Pochatkova rozrobka Go pochalasya u veresni 2007 roku a bezposeredno proyektuvali yiyi Robert Grizmer Rob Pajk i Ken Tompson 3 Oficijno movu predstavili u listopadi 2009 roku GoParadigma kompilovana bagatonitkova imperativna strukturovanaData poyavi 2009Tvorci Robert Grizmer Rob Pajk i Ken TompsonRozrobnik GoogleOstannij reliz 1 20 1 lyutogo 2023 8 misyaciv tomu 2023 02 01 Sistema tipizaciyi suvora statichnaOsnovni realizaciyi gc 8g 6g 5g gccgoPid vplivom vid S Pascal Modula Oberon CSP Newsqueak Limbo 1 Operacijna sistema NetBSD OpenBSD FreeBSD Linux Mac OS X Windows AndroidLicenziya BSDZvichajni rozshirennya fajliv goVebsajt golang org Go u VikishovishiPidtrimka movi zdijsnyuyetsya dlya operacijnih sistem Linux Android 4 Mac OS X ta Windows 5 Zmist 1 Opis 1 1 Paralelnist 2 Realizaciya 3 Priklad 4 Konfuz z nazvoyu 5 Populyarnist 6 Zastosuvannya 7 Primitki 8 PosilannyaOpis RedaguvatiMetoyu stvorennya proyektu Go bulo bazhannya otrimati movu sho poyednuye visoku produktivnist kompilovanih mov z legkistyu napisannya kodu shvidkistyu rozrobki i zahishenistyu vid pomilok vlastivih skriptovim movam Sintaksis Go bazuyetsya na zvichnih elementah movi Si z okremimi zapozichennyami z movi Python Mova dosit lakonichna ale pri comu kod zalishayetsya legkim dlya chitannya i sprijnyattya Proyekt vid pochatku rozroblyayetsya z oglyadkoyu na bagatonitkove programuvannya ta efektivnu robotu na bagatoyadernih sistemah v tomu chisli nadayuchi realizovani na rivni operatoriv zasobi dlya organizaciyi paralelnih obchislen ta vzayemodiyi mizh paralelno vikonuvanimi metodami Mova nadaye vbudovani zasobi zahistu vid vihodu za dopustimi oblasti vidilenih blokiv pam yati i zabezpechuye mozhlivist vikoristannya zbiracha smittya Pri comu kod movoyu Go kompilyuyetsya u vidokremleni binarni vikonuvani fajli sho vikonuyutsya nativno bez vikoristannya virtualnoyi mashini moduli profilyuvannya znevadzhennya ta inshi pidsistemi viyavlennya problem na etapi vikonannya integruyutsya u viglyadi runtime komponentiv sho dozvolyaye domogtisya produktivnosti porivnyannoyi z programami na movi Si Sintaksis Go duzhe shozhij na sintaksis S bloki kodu v figurnih duzhkah zagalna struktura keruvannya vikonannyam programi vklyuchaye for switch ta if Na vidminu vid C krapka z komoyu v kinci ryadka ne ye obov yazkovoyu ogoloshennya zminnih vidbuvayetsya po inshomu peretvorennya tipiv stroge novi instrukciyi go ta select bulo vvedeno dlya pidtrimki paralelnogo programuvannya Novi vbudovani tipi vklyuchayut hesh tablici ryadki Unicode slices masivi ta kanali dlya peredachi danih mizh nitkami Go sproyektovanij dlya shvidkogo kompilyuvannya navit na zastarilomu obladnanni 6 Cya mova pidtrimuye pribirannya smittya Chitka paralelno oriyentovana struktura Go kanali ye alternativoyu kanalam vvodu danih zapozicheni z Communicating Sequential Processes Toni Goara Na vidminu poperednih paralelno oriyentovanih mov programuvannya takim yak occam chi Limbo Go ne nadaye bud yakoyi vbudovanoyi pidtrimki poperedzhen bezpeki chi perevirki paralelnosti 7 Na sogodni Go ne maye niyakoyi vbudovanoyi pidtrimki shabloniv ale ce mozhe buti dodano v majbutnomu 8 Z funkcij dostupnih v C abo Java Go ne vklyuchaye v sebe uspadkuvannya tipiv uzagalnene shablonne programuvannya tverdzhennya assert pereviznachennya metodiv arifmetichni operaciyi nad vkazivnikami 3 Avtori Go pidkreslyuyut vidkritist shablonnomu programuvannyu yavno vistupayut proti asertiv ta arifmetichnih operacij nad vkazivnikami u toj chas shilni dozvoliti uspadkuvannya tipiv dlya bilshoyi zruchnosti movi 3 Spochatku mova ne vklyuchala obrobku vinyatkiv ale v berezni 2010 bulo realizovano mehanizm vidomij yak panic recover dlya obrobki pomilok i vinyatkiv dlya uniknennya problem z vinyatkami z yakimi zitknulis avtori 9 10 Vidimist funkcij za mezhami fajlu de voni viznacheni viznachayetsya neyavno za kapitalizaciyeyu yihnih identifikatoriv na vidminu vid C de vikoristovuyetsya klyuchove slovo public 11 Paralelnist Redaguvati Go nadaye goroutines malenki legki nitki im ya spivzvuchne z coroutine spivprograma v anglijskij movi Goroutine stvoryuyutsya komandoyu go z anonimnih chi zvichajnih funkcij Goroutine vikonuyutsya v paralel mizh soboyu vklyuchno z funkciyeyu yaka yih viklikala Yim nemaye potrebi zapuskatisya v okremih nitkah ale yihni grupi zbirayutsya v dekilka nitok peredavannya keruvannya mizh nimi zdijsnyuyetsya blokuvannyam yih pri otrimanni chi peredavanni povidomlen cherez kanali Realizaciya RedaguvatiNa cej chas isnuye dva kompilyatori Go Pershij 6g 8g 5g kompilyaciya dlya AMD64 x86 ta ARM vidpovidno ta pidruchni zasobi vidomi yak gc sho bazuyutsya na poperednij roboti Kena Tompsona nad Plan 9 s C toolchain A takozh gccgo frontend dlya GCC napisanij na C 12 Obidva kompilyatori pracyuyut na Unix podibnih sistemah port dlya Microsoft Windows dlya gc bulo dodano v osnovnij paket bilshist standartnih bibliotek takozh vzhe pracyuyut pid Windows Takozh isnuye tiny seredovishe vikonannya sho dozvolyaye programam na Go pracyuvati na golomu zalizi Priklad RedaguvatiKlasichnij priklad programi Hello world na Go package main import fmt func main fmt Println Privit svite Avtomatichne vstavnovlennya krapki z komoyu v Go potrebuye dotrimannya pevnogo stilyu koduvannya vidkriti lapki ne povinni rozmishuvatis na okremih ryadkah tomu dorechno vikoristovuvati tak zvanij brace style Divitsya priklad 13 Priklad Go programi na zrazok komandi Unix echo 14 package main import os flag parser komandnogo ryadka var omitNewline flag Bool n false Ne drukuvati finalnij perenos ryadka const Space Newline n func main flag Parse Skanuye komandnij ryadok ta vstanovlyuye praporec var s string for i 0 i lt flag NArg i if i gt 0 s Space s flag Arg i if omitNewline s Newline os Stdout WriteString s Konfuz z nazvoyu RedaguvatiV den oficijnogo relizu Go Francis McCabe rozrobnik movi programuvannya Go en poprosiv Google zminiti nazvu movi dlya zapobigannya konfliktovi z nazvoyu jogo movi programuvannya 15 Popri te sho McCabe ne maye torgovoyi marki na nazvu dehto z komentatoriv zaklikav Google u vidpovid na zapit McCabe zminiti nazvu Ce pitannya bulo zakrite 12 zhovtnya 2010 z statusom Unfortunate nevdalij rozrobnik z Google prokomentuvav zakrittya yak Isnuye bagato komp yuternih produktiv ta servisiv z najmenuvannyam Go Za 11 misyaciv iz nashogo relizu bula minimalna kilkist vipadkiv zi splutuvannyam cih dvoh mov 16 Populyarnist RedaguvatiGo uvijshla v TIOBE Programming Community Index 17 na 15 misce v svij pershij rik posunuvshi ustaleni movi taki yak Pascal Na 14 lipnya 2017 vona zajmaye 10 tu shodinku indeksu Zastosuvannya RedaguvatiNa Go napisano bagato vidkritogo programnogo zabezpechennya 18 Caddy en HTTP 2 server z avtomatichnoyu pidtrimkoyu HTTPS Docker instrumentarij dlya roboti z kontejnerami Linux Hugo generator statichnih sajtiv InfluxDB visokoproduktivna baza danih chasovih ryadiv Kubernetes sistema keruvannya kontejneramiCej rozdil potrebuye dopovnennya berezen 2019 Primitki Redaguvati What are Go s ancestors Arhiv originalu za 3 travnya 2020 Procitovano 3 travnya 2018 Google go language Arhiv originalu za 7 sichnya 2019 Procitovano 13 zhovtnya 2010 a b v Language Design FAQ Arhiv originalu za 18 serpnya 2010 Procitovano 13 zhovtnya 2010 http blog golang org go1 4 Arhivovano 11 grudnya 2014 u Wayback Machine The most notable new feature in this release is official support for Android instrukciya po vstanovlennyu go Arhiv originalu za 20 bereznya 2012 Procitovano 13 zhovtnya 2010 Rob Pike The Go Programming Language flv Tech talk Google Podiya vidbulasya 8 53 Model pam yati Go Google 23 Februari 2010 Arhiv originalu za 23 listopada 2010 Procitovano 13 zhovtnya 2010 Diskusiya pro shabloni v Go golang nuts 18 Dec 2009 Notatki do vipusku 3 30 2010 Arhiv originalu za 3 veresnya 2010 Procitovano 13 zhovtnya 2010 Propoziciya mehanizmu obrobki vinyatkiv golang nuts 25 bereznya 2010 Arhiv originalu za 17 travnya 2011 Procitovano 25 bereznya 2010 A Tutorial for the Go Programming Language The Go Programming Language Google Arhiv originalu za 8 lipnya 2013 Procitovano 10 bereznya 2010 In Go the rule about visibility of information is simple if a name of a top level type function method constant or variable or of a structure field or method is capitalized users of the package may see it Otherwise the name and hence the thing being named is visible only inside the package in which it is declared FAQ Realizaciya golang org 16 sichnya 2010 Arhiv originalu za 8 lipnya 2013 Procitovano 18 sichnya 2010 A Tutorial for the Go Programming Language The Go Programming Language Google Arhiv originalu za 8 lipnya 2013 Procitovano 10 bereznya 2010 The one surprise is that it s important to put the opening brace of a construct such as an if statement on the same line as the if however if you don t there are situations that may not compile or may give the wrong result The language forces the brace style to some extent A Tutorial for the Go Programming Language golang org 16 sichnya 2010 Arhiv originalu za 8 lipnya 2013 Procitovano 18 sichnya 2010 Claburn Thomas 11 listopada 2009 Google Go Name Brings Accusations Of Evil InformationWeek Arhiv originalu za 22 lipnya 2010 Procitovano 18 sichnya 2010 Issue 9 go I have already used the name for MY programming language Google Code Google Inc Arhiv originalu za 8 lipnya 2013 Procitovano 12 zhovtnya 2010 TIOBE Programming Community Index Arhiv originalu za 22 chervnya 2013 Procitovano 13 zhovtnya 2010 avelino awesome go A curated list of awesome Go frameworks libraries and software Arhiv originalu za 6 grudnya 2017 Procitovano 10 sichnya 2018 Posilannya RedaguvatiTur movoyu programuvannya Go Arhivovano 11 kvitnya 2018 u Wayback Machine ukr Go Programming Language Homepage Arhivovano 9 lipnya 2011 u Wayback Machine Another Go at Language Design Arhivovano 12 chervnya 2014 u Wayback Machine lecture given by Go s language author Rob Pike at Stanford University video archive Interview with Rob Pike Principal Engineer at Google and Tech Lead for the Google Go team on The Changelog podcast Unofficial Go Language resource site Arhivovano 2 travnya 2010 u Wayback Machine Otrimano z https uk wikipedia org w index php title Go mova programuvannya amp oldid 39822895