Qore (programovací jazyk)

Qore je interpretovaný, vysoko-úrovňový, univerzálne použiteľný, dynamický programovací jazyk používajúci garbage collector a ponúkajúci podporu pre code embedding, sandboxing, s voliteľným silným typovaním a dôrazom na natívnu podporu viacvláknového programovania a SMP škálovateľnosť.

Qore je unikátny vďaka tomu, že ide o interpretovaný skriptovací jazyk s natívnou podporou pre viac vlákien (teda môže v tej istej chvíli bežať viacero častí kódu súčasne) a tiež preto, že ponúka automatickú správu pamäte (programátori nemusia explicitne prideľovať a uvoľňovať pamäť). Okrem toho podporuje RAII idióm s deštruktormi pre blokovú správu zdrojov a "výnimkovo bezpečné" programovanie. To je umožnené jedinečnou implementáciou Qore Garbage Collectoru, ktorý je schopný zbierať zdroje dopytovo.

Qore skripty

Qore skripty majú spravidla nasledovné koncovky:
 .q: Qore skripty
 .qm: Qore užívateľské moduly
 .qtest: Qore testové skripty

Spustiteľné Qore skripty pre Unixové operačné systémy typicky začínajú tzv. "hashbangom" na určenie interpreteru:

#!/usr/bin/env qore

Syntax

Syntax Qore je podobná a inšpirovaná syntaxou nasledujúcich jazykov:

 Perl: bez %new-style je Qore syntax veľmi podobná Perl, foreach výraz, splice, push, pop a chomp operátory, Perl5 kompatibilné regulárne výrazy a iné
 Java: s %new-style sa Qore viac podobá na Javu, kľúčové slovo synchronized, instanceof operátor a implementácia objektov a tried
 C++: viacnásobná dedičnosť, spracovanie výnimiek, statické metódy, abstraktné metódy
 D: on_exit, on_success, on_error výrazy poskytujú výnimkovú funkcionalitu podobnú v D používaných scope(exit) a scope(failure), umožňujúcu umiestnenie kódu ošetrujúceho výnimku vedľa kódu, ktorý ju vyvolal
 Haskell: map, foldl, foldr a select operátory

Dátové typy
Základné typy sú: boolean, string, integer, float, date, binary, list, hash (slovník / asociatívne pole), object a code pre kód použitý ako dátový typ.

Viacvláknové programovanie
Napriek tomu, že je Qore interpretovaný jazyk, bol vytvorený s podporou viacerých vlákien ako základným dizajnovým princípom. Všetky časti Qore sú vláknovo bezpečné a vo všeobecnosti bol jazyk navrhovaný s prihliadnutím na SMP škálovateľnosť. Z tohto dôvodu Qore programy a skripty nemusia byť obmedzované na podmnožinu Qore funkcionality a taktiež je to dôvod, prečo v Qore neexistuje globálny interpreterový zámok.

Vláknová funkcionalita je v Qore poskytovaná POSIX knižnicou operačného systému.

Garbage Collection
Qore ponúka jedinečný prístup v súvislosti s garbage collectorom, tzv. "prompt collection", ktorý dovoľuje spúšťať deštruktory objektov okamžite po tom, ako sa tieto ocitnú mimo pôsobnosti a to aj v prípade, že držia rekurzívne referencie na seba samých. To umožňuje Qore podporovať RAII idióm a tiež vykonávanie automatickej správy pamäte.

Podpora code embeddingu a sandboxingu
Qore bol navrhnutý tak, aby v aplikáciách podporoval code embedding a sandboxovú logiku. To platí ako v prípade aplikácií napísaných v Qore, tak aj pri aplikáciách používajúcich C++ API z Qore verejnej knižnice. Použitím Program triedy, ktorá reprezentuje logický kontajner so sandboxovým ovládaním, diskrétne objekty obsahujúce embedded code, ktoré môžu byť vytvárané a ničené za behu, na rozšírenie alebo pozmenenie aplikácie používateľom.

Runtime knižnica
Štandardná Qore runtime knižnica podporuje mapovanie dát, API pre komunikáciu s databázami (vrátane vysoko-úrovňových API pre SQL operácie, správu schém a DBA akcie), klientské API a implementácie serverových infraštruktúr pre mnoho protokolov ako HTTP, REST, WebSocket, RPC protokoly a veľa protokolov na formátovanie súborov a na transfer súborov a dát.

Testovanie
Qore podporuje testovanie prostredníctvom QUnit modulu ktorý zaobstaráva automatické testovanie a nepretržité integračné procesy pre kód napísaný v Qore.

Dostupnosť
Qore Git repozitár je na GitHube. Binárne balíky sú dostupné ako RPM, v MacPorts a vo FreeBSD Ports ako aj pre iné operačné systémy, vrátane Microsoft Windows. Viď General Source and Download Info na Qore wiki pre viac informácií.

Referencie

Externé odkazy
 Oficiálna stránka
 Qore Wiki (github.com)
 Qore for the Perl Programmer  (houston.pm.org)
 openSUSE (software.opensuse.org)
 NetBSD (ftp.netbsd.org)
 FreeBSD (portsmon.freebsd.org)

Programovacie_jazyky
Viacplatformový_softvér
Skriptovacie_jazyky