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*)
* [ftp://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/lang/qore/README.html NetBSD] (*ftp.netbsd.org*)
* FreeBSD (*portsmon.freebsd.org*)

Kategória:Programovacie_jazyky
Kategória:Viacplatformový_softvér
Kategória:Skriptovacie_jazyky