vabastus , vabalt rakendatav funktsionaalne programmeerimiskeel , mis toetab koodi sisestamise vĂ”imalust teistes programmeerimiskeeltesse. Guile saab kasutada laienduste arendamiseks rakendustes, konfiguratsioonide mÀÀratlemiseks vĂ”i komponentide arendamiseks erinevate rakenduse pakkumiste sidumiseks. Guile on ametlik laienduste arendamise keel GNU operatsioonisĂŒsteemis.
Guile'i aluseks on efektiivne virtuaalmasin, mis tĂ€idab kantavaid juhiseid, mis genereeritakse spetsiaalse optimeeriva kompilaatori abil. Guile'i virtuaalmasin integreerub hĂ”lpsasti C ja C++ keeles kirjutatud rakenduste koodiga. Peale Scheme'i keele, millele on rakendatud spetsifikatsioonide tugi , ja , on Guile'i projekti raames arendatud kompilaatoreid ka teistele keeltele, nagu ECMAScript, Emacs Lisp ja Lua (arendamisel). Pakett sisaldab moodulite raamatukogu, milles on implementeeritud tĂŒĂŒpilised teenusefunktsioonid, nagu HTTP protokolli töötlemine, XML-i parsimine ja objektorienteeritud programmeerimise meetodite kasutamine.
GNU Guile 3.0 peamine uuendus on JIT-kompilaatori kasutuselevÔtt, lisaks varem pakutud tÔlgendajale ja bytecode kompilaatorile, mille tÀidab spetsiaalne virtuaalmasin, mis on rakendusega seotud raamatukoguna. JIT vÔimaldab genereerida masina koodi reaalajas ja kiirendab oluliselt Guile rakenduste tÀitmist (testid nÀitavad kuni 4 korda kiirusetÔusu). JIT-kompilaator toetab töötamist arhitektuuridel x86-64, i686, ARMv7 ja AArch64.
MÔned teised tÀiustused:
- Uue Scheme'i keele spetsifikatsiooni tugi ja selles mÀÀratletud raamatukogu moodulid;
- Guile'i virtuaalmasinas on rakendatud madalama taseme bytecode'i tugi, mis vÔimaldab rakendada ulatuslikke optimeerimisi;
- Sisemiste defineerimiste ja avalduste (nt â(define _ (begin (foo) #f))â) kombineerimise tugi;
- On pakutud ĂŒhtne struktureeritud andmetĂŒĂŒpide ("records") rakendamine;
- On ĂŒmber töötatud erandihaldus primitiivid (throw ja catch);
- On mÀÀratletud sidumised laiendatud sĂŒnteesi jaoks "else", "=>", ââŠâ ja "_";
- HTTP-pĂ€ringutes, HTTP-get-is ja muudes veebiklientidega seotud protseduurides on lisatud vĂ”imalus laadida sisu krĂŒpteeritud suhtluskanali kaudu TLS-i kasutamisega ning sertifikaatide Ă”ige kinnitamisega.
Allikas: opennet.ru
