Gosu (programovací jazyk) - Gosu (programming language) - Wikipedia
Bylo navrženo, že GScript být sloučeny do tohoto článku. (Diskutujte) Navrhováno od října 2020. |
tento článek potřebuje další citace pro ověření.Února 2015) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Vývojář | Guidewire a open source přispěvatelé |
---|---|
Stabilní uvolnění | 1.14.6 / 5. dubna 2017 |
Psací disciplína | statický |
Plošina | Provádět na Virtuální stroj Java, staticky a dynamicky kompiluje do bytecode |
OS | jakýkoli podpůrný JVM |
Licence | Licence Apache 2.0 |
Přípony názvu souboru | .gs, .gsp, .gst, .gsx |
webová stránka | gosu-lang |
Ovlivněno | |
Jáva, C# | |
Ovlivněno | |
Kotlin |
Bože je staticky napsaný univerzální programovací jazyk který běží na Virtuální stroj Java. Mezi jeho vlivy patří Jáva, C#, a ECMAScript. Vývoj Gosu začal v roce 2002 interně pro Software Guidewire, a jazyk viděl jeho první komunitní vydání v roce 2010 pod Apache 2 licence.[1]
Gosu může sloužit jako skriptovací jazyk, který má volné typy programů (soubory .gsp) pro skriptování a staticky ověřené soubory šablon (soubory .gst). Gosu může tyto a všechny ostatní typy volitelně spouštět přímo ze zdroje bez předkompilace, což jej také odlišuje od ostatních statických jazyků.
Dějiny
Gosu začal v roce 2002 jako skriptovací jazyk GScript ve společnosti Guidewire Software. Slouží ke konfiguraci obchodní logika v aplikacích Guidewire a šlo spíše o jednoduchý jazyk pro definici pravidel. Ve své původní inkarnaci to následovalo ECMAScript pokyny. Společnost Guidewire vylepšila skriptovací jazyk během příštích 8 let a v listopadu 2010 vydala komunitu Gosu 0.7 beta. Verze 0.8 beta byla vydána v prosinci 2010 a verze 0.8.6 beta byla vydána v polovině roku 2011 s dalšími typovými zavaděči, díky nimž je Gosu schopný nakládky Definice schématu XML soubory a dokumenty XML jako nativní typy Gosu. Nejnovější verze je 1.10, vydaná v lednu 2016, spolu s novým pluginem editoru IntelliJ IDEA.
Filozofie
Tvůrce a vedoucí vývoje jazyka Gosu, Scott McKinney, zdůrazňuje pragmatismus spočívající v čitelnosti a zjistitelnosti jako hlavní princip, který řídí design jazyka.[2] Například bohatý statický systém Gosu je nezbytnou přísadou k tomu nejlepšímu nástroji pro plemeno statická programovací analýza, zpětná vazba bohatého analyzátoru, dokončení kódu, deterministické refaktorování, analýza využití, navigace a podobně.
Syntaxe a sémantika
Gosu sleduje syntaxi podobnou kombinaci jiných jazyků. Například prohlášení následují více v duchu Pascal s gramatikou prvního jména. Třídy Gosu mohou mít jako členy funkce, pole, vlastnosti a vnitřní třídy. Nominální dědičnost a složení prostřednictvím delegování jsou zabudovány do systému typů, stejně jako strukturální psaní podobné systému Jít programovací jazyk.
Gosu podporuje několik typů souborů:
- Třída (soubory .gs)
- Program (soubory .gsp)
- Vylepšení (soubory * .gsx)
- Šablona (soubory * .gst)
Kromě standardních typů tříd podporuje Gosu výčty, rozhraní, struktury a anotace.
Programové soubory usnadňují Gosu jako skriptovací jazyk. Například Gosu's Hello, World! je jednoduchý jednorázový program:
tisk("Ahoj světe!")
Třídy Gosu jsou také spustitelné a la Java:
třída Hlavní { statický funkce hlavní(args: Tětiva[]) { tisk("Ahoj světe!") }}
Typy dat
Jedinečnou vlastností systému Gosu je jeho Open Type System, který umožňuje snadné rozšíření jazyka tak, aby poskytoval kontrolu při kompilaci a povědomí IDE o informacích, které se ve většině ostatních jazyků obvykle kontrolují pouze za běhu. Vylepšení umožňují přidat další funkce a vlastnosti k jiným typům, včetně vestavěných typů Java, jako jsou String, List atd. Tento příklad ukazuje přidání funkce print () do java.lang.String.
zvýšení MyStringEnhancement : Tětiva { funkce tisk() { tisk(tento) }}
Nyní můžete říct řetězci, aby se tiskl sám:
"Echo".tisk()
Kombinace uzávěry a vylepšení poskytují silný způsob kódování s kolekcemi. Režie streamů Java je u Gosu zbytečná:
var seznam = {1, 2, 3}var výsledek = seznam.kde(\ elem -> elem >= 2)tisk(výsledek)
Použití
Tento univerzální programovací jazyk se používá především v Software Guidewire komerční produkty.
Reference
- ^ „Programovací jazyk Gosu zveřejněn“. Slashdot. 2010-11-09.
- ^ „Jazyk měsíce: Gosu“. Dr. Dobb's Journal. 2012-12-07.
Další čtení
- Gross, Carson (2011-07-18). „Jazykové funkce jako knihovna: Používání otevřeného systému Gosu s externími DSL“ (PDF). JVM Language Summit 2011. Věštec. Video