väljalase , vabalt rakendatav funktsionaalne programmeerimiskeel , mis toetab koodi manustamise võimalust rakendustes, mis on kirjutatud teistes programmeerimiskeeltes. Guile'i saab kasutada laienduste väljatöötamiseks rakendustes, konfiguratsiooni määratlemiseks või komponentide arendamiseks, et siduda erinevaid primitiive, mida rakendus pakub. Guile on GNU operatsioonisüsteemi ametlik laienduskeel.
Guile'i aluseks on tõhus virtuaalmasin, mis täidab ülekantavat käsukogumit, mida genereerib spetsiaalne optimeeriv kompilaator. Guile'i virtuaalmasin integreerub hõlpsasti rakenduste koodi C ja C++ keeltes. Lisaks Scheme keeltele, millele on rakendatud spetsifikatsioonide tugi, , ja , Guile projekti raames on välja töötatud kompilaatorid ka muudele keeltele, nagu ECMAScript, Emacs Lisp ja Lua (arendamisel). Pakett hõlmab moodulite teeki, milles on rakendatud tüüpilisi teenusefunktsioone, näiteks HTTP-protokolliga töötamine, XML-i analüüsimine ja objektorienteeritud programmeerimise meetodite kasutamine.
GNU Guile 3.0 peamine uuendus on JIT-kompilaatori ilmumine, lisaks varasematele tõlgendajatele ja bytecode kompilaatoritele, mis töötavad spetsiaalses virtuaalmasinas, rakendusele seotud teegi kujul. JIT võimaldab luua masina-koodi reaalajas ja kiirendab oluliselt Guile rakenduste täitmist (testid näitavad kiirus kuni 4 korda). JIT-kompilaator toetab tööd arhitektuuridel x86-64, i686, ARMv7 ja AArch64.
Mõned teised parandused:
- Uue Scheme keele spetsiifitseerimise toetamine ja selles määratletud teegimoodulid;
- Guile virtuaalmasinas on rakendatud madalamalt tasemelt bytecode toetust, mis võimaldab kasutada täiustatud optimeerimisi;
- Toetatakse sisemiste defineerimistüüpide ja väljendite kombinatsiooni (näiteks «(define _ (begin (foo) #f))»);
- Pakutud on ühtne struktuuriliste andmetüüpide rakendus („records“);
- On ümber kujundatud erandite töötlemise primitiivid (throw ja catch);
- On määratud sidemed laiendatud süntaksile „else“, „=>“, „…“ ja „_“;
- HTTP-päringutes, HTTP-käes ja teistes seotud veebiklientide protseduurides on lisatud võimalus laadida sisu krüpteeritud sidekanali kaudu TLS-i kasutades koos sertifikaatide korrektse kontrollimisega.
Allikas: opennet.ru
