lëshimi , një implementim të lirë të gjuhës funksionale të programimit , që mbështet mundësinë e integrimit të kodit në aplikacione të tjera programimi. Guile mund të përdoret si një gjuhë për zhvillimin e zgjatjeve për aplikacione, përcaktimin e konfiguracionesh ose zhvillimin e komponenteve për lidhjen e ndryshimeve të ndryshme që ofrohen nga aplikacioni. Guile është gjuhë e zyrtare për zhvillimin e zgjatjeve për sistemin operativ GNU.
Thelbësia e Guile është një makinë virtuale efektive që ekzekuton një grup udhëzimesh të transferueshme, të gjeneruara nga një kompiler optimizues të veçantë. Makinë virtuale e Guile integrohet lehtësisht me kodin e aplikacioneve në gjuhët C dhe C++. Përveç gjuhës Scheme, për të cilën është implementuar mbështetje për specifikimet , dhe , në kuadër të projektit Guile janë zhvilluar kompajlerë për gjuhë të tjera, si ECMAScript, Emacs Lisp dhe Lua (në proces zhvillimi). Paketa përmban një bibliotekë modulësh, në të cilët janë realizuar funksione standard shërbimi, si puna me protokollin HTTP, analizimin e XML dhe përdorimin e metodave të programimit të orientuar nga objekti.
Noviteti kyç në GNU Guile 3.0 është shfaqja e kompajlerit JIT, përveç interpretuesit dhe kompajlerit të mëparshëm në kodin e byte, i cili ekzekutohet në një makinë virtuale të veçantë, e cila është e lidhur me aplikacionin në formën e një biblioteke. JIT lejon gjenerimin e kodit të makinës në fluks dhe përshpejton ndjeshëm ekzekutimin e aplikacioneve Guile (testet tregojnë përshpejtim deri në 4 herë). Kompajleri JIT mbështet funksionimin në arkitekturat x86-64, i686, ARMv7 dhe AArch64.
Disa nga përmirësimet e tjera:
- Mbështetje për specifikimin e ri të gjuhës Scheme dhe modulet e bibliotekave të përcaktuara në të;
- Në makinën virtuale Guile është implementuar mbështetje për kodin më të ulët, që lejon aplikimin e optimizimeve të zgjeruara;
- MbĂ«shtetje pĂ«r kombinimin e definicioneve tĂ« brendshme dhe shprehjeve (p.sh., â(define _ (begin (foo) #f))â);
- Ofron një implementim të unifikuar të një lloji të dhënash të strukturuara ("records");
- Të dhënat për procesimin e përjashtimeve (throw dhe catch) janë ripërpunuar;
- JanĂ« pĂ«rcaktuar lidhjet 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ë enkriptuar duke përdorur TLS me verifikimin e saktë të certifikatave.
Burimi: opennet.ru
