lëshimi , e një gjuhë programimi funksionale të hapur , e cila mbështet mundësinë e integrimit të kodit në aplikacione në gjuhë të tjera programimi. Guile mund të përdoret si një gjuhë për zhvillimin e shtesave për aplikacione, për të përcaktuar konfigurimin ose për të zhvilluar komponente për lidhjen e elementeve të ndryshme që ofrohen nga aplikacioni. Guile është gjuha zyrtare për zhvillimin e shtesave për sistemin operativ GNU.
Baza e Guile është një makinë virtuale efikase, e cila ekzekuton një grup instruksionesh të portueshëm, të gjeneruar nga një përpilues optimizues të vecantë. Makinë virtuale Guile integrohet lehtë me kodin e aplikacioneve në gjuhët C dhe C++. Përveç gjuhës Scheme, për të cilën është realizuar mbështetje për specifikimet , dhe , në kuadër të projektit Guile janë zhvilluar gjithashtu përpilues për gjuhë të tjera, si ECMAScript, Emacs Lisp dhe Lua (në proces zhvillimi). Paketa përfshin një bibliotekë modulash, në të cilat janë realizuar funksione të zakonshme shërbimi, si puna me protokollin HTTP, analizimin e XML dhe përdorimin e metodave të programimit objekt-orientuar.
Krahasimi kryesor në GNU Guile 3.0 ishte shfaqja e një përpiluesi JIT, përveç përkthyesit dhe përpiluesit në kodin bajt, i cili ekzekutohet në një makinë virtuale të posaçme, e lidhur me aplikacionin në formën e një biblioteke. JIT lejon gjenerimin e kodit makinor në kohë reale dhe ndihmon në përshpejtimin e ekzekutimit të aplikacioneve Guile (testet tregojnë përshpejtim deri në 4 herë). Përpiluesi JIT mbështet punën në arkitekturën x86-64, i686, ARMv7 dhe AArch64.
Disa përmirësime të tjera:
- Mbështetje për specifikimin e ri të gjuhës Scheme dhe modulat e bibliotekave të përcaktuara në të;
- Në makinën virtuale Guile është realizuar mbështetje për një kod më të ulët bajt, duke lejuar përdorimin e optimizimeve të zgjeruara;
- Mbështetje për kombinimin e definicioneve të brendshme dhe shprehjeve (p.sh., «(define _ (begin (foo) #f))»);
- ĂshtĂ« propozuar njĂ« implementim i unifikuar pĂ«r tipe tĂ« dhĂ«nash tĂ« strukturuara («records»);
- Janë rishikuar primitivët e trajtimit të përjashtimeve (throw dhe catch);
- JanĂ« pĂ«rcaktuar binde pĂ«r sintaksĂ«n e zgjeruar «else», «=>», «âŠÂ» dhe «_»;
- Në http-request, http-get dhe procedurat e tjera të lidhura me klientin web është shtuar mundësia për të ngarkuar përmbajtje përmes një kanali të koduar të komunikimit duke përdorur TLS me verifikimin e saktë të certifikatave.
Burimi: opennet.ru
