Qore (programovací jazyk) - Qore (programming language)
![]() | Tento článek má několik problémů. Prosím pomozte zlepšit to nebo diskutovat o těchto otázkách na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
Paradigma | multi-paradigma: bezpečné pro vlákna /paralelní /sdílená paměť, funkční, rozkazovací způsob, objektově orientovaný (třídní ), procesní, funkční |
---|---|
Navrhl | David Nichols |
Vývojář | David Nichols |
Stabilní uvolnění | 0.9.4.2 / 27. března 2020 |
Psací disciplína | Dynamický, volitelně silný |
Jazyk implementace | C ++, Pthreads |
OS | Cross-platform |
Licence | Licence MIT, GNU General Public License, GNU Lesser General Public License |
Přípony názvu souboru | .q , .qm , .qtest |
webová stránka | www |
Ovlivněno | |
Perl, D, C ++, Jáva |
Qore je interpretován, vysoká úroveň, univerzální, odpadky shromážděny dynamický programovací jazyk, představující podporu pro vkládání kódu a sandboxing s volitelným silným psaním a zaměřením na základní podporu pro multithreading a škálovatelnost SMP.
Qore je jedinečný, protože se jedná o interpretovaný skriptovací jazyk se základní podporou pro multithreading (což znamená, že může běžet více než jedna část stejného kódu současně) a navíc proto, že obsahuje automatickou správu paměti (což znamená, že programátoři nemusí explicitně alokovat a uvolňovat paměť) a zároveň podporuje Idiom RAII s destruktory pro správu zdrojů na základě oboru a programování bezpečné pro výjimky.[1] Důvodem je jedinečnost Qore rychlé vyzvednutí implementace pro odvoz odpadu.
Skripty Qore
Skripty Qore mají obvykle následující přípony:
.q
: pro skripty Qore.qm
: pro uživatelské moduly Qore.qtest
: pro testovací skripty Qore
Spustitelné skripty Qore zapnuty Unixový operační systémy obvykle začínají a hashbang určit název tlumočníka následujícím způsobem:
#! / usr / bin / env qore
Syntax
Syntaxe Qore je podobná a inspirována následujícími programovacími jazyky:[2]
- Perl: bez
%nový styl
, Qoreova syntaxe je velmi podobná Perl; thepro každého
tvrzení,spojit
,tam
,pop
,žvýkat
operátory, regulární výrazy kompatibilní s Perl5 a další - Jáva: s
%nový styl
, Qore kód vypadá více podobně Jáva;[3] thesynchronizované
klíčové slovo,instanceof
operátor, implementace objektu a třídy - C ++: vícenásobná dědičnost, zpracování výjimek, statické metody, abstraktní metody
- D:
on_exit
,on_success
, aon_error
příkazy poskytují funkce s vědomím výjimek podobné Drozsah (výstup)
,rozsah (porucha)
, což umožňuje, aby byl vedle kódu vyžadujícího vyčištění umístěn čisticí kód s vědomím výjimky - Haskell:
mapa
,složit
,foldr
, avybrat
operátory s líným hodnocením funkčních a seznamových operátorů a výpisů
Typy dat
Mezi základní typy patří: booleovský
, tětiva
, celé číslo
, plovák
, datum
, binární
,[4] seznam
, hash
(asociativní pole) a objekt
,[5] stejně jako kód kód
pro kód používaný jako datový typ.[6]
Jsou také podporovány komplexní typy, jako je hash <řetězec, bool>
, seznam <řetězec>
, reference
stejně jako typově bezpečné hashy.
Multithreading
Přestože byl Qore tlumočeným jazykem, měl podporovat multithreading jako základní konstrukční princip. Všechny prvky Qore jsou bezpečné pro vlákna a jazyk byl obecně navržen s ohledem na škálovatelnost SMP. Protože všechny prvky jazyka byly navrženy tak, aby podporovaly multithreading, programy a skripty Qore se nemusí omezovat na podmnožinu funkcí Qore, což je také důvod, proč neexistuje žádný Globální zámek tlumočníka v Qore.[7]
Funkce podprocesů v Qore poskytuje operační systém Knihovna vláken POSIX.
Odpadky
Qore nabízí jedinečný přístup k odstraňování odpadků nazvaný rychlé vyzvednutí který umožňuje okamžité spuštění destruktorů, když objekty vyjdou z rozsahu, i když mají rekurzivní odkazy zpět k sobě. To umožňuje Qore podporovat Idiom RAII a také vystupovat odpadky shromážděny automatická správa paměti.
Podpora pro vkládání kódu a karanténu
Qore byl navržen tak, aby podporoval logiku vkládání a karantény v aplikacích; to platí také pro aplikace napsané v Qore i pro aplikace využívající veřejné C ++ API knihovny Qore. Pomocí Program
třída, která představuje logický kontejner s ovládacími prvky karantény, lze za běhu vytvářet a ničit diskrétní objekty obsahující vložený kód, aby se rozšířilo nebo upravilo chování vaší aplikace způsobem definovaným uživatelem.[8]
Runtime knihovna
Standardní běhová knihovna Qore podporuje mapování dat, rozhraní API pro komunikaci s databázemi (včetně rozhraní API na vysoké úrovni pro operace SQL, správu schémat a akce DBA), klientská rozhraní API a implementace serverové infrastruktury pro mnoho protokolů, včetně HTTP, ODPOČINEK (s ověřením schématu REST / generováním kódu včetně.) Naparování podpora), klient / server MÝDLO podpora (včetně generování kódu a zpráv), WebSocket, Protokoly RPC, generické konektorové API, obecné API pro mapování dat a mnoho formátů souborů a protokolů pro výměnu souborů a dat a další.[9]
Testování
Qore podporuje testování prostřednictvím Modul QUnit což usnadňuje automatizované testování a Kontinuální integrace procesy pro kód napsaný v Qore.
Dostupnost
Qore Git (software) úložiště je hostováno na GitHub. Binární balíčky jsou k dispozici jako RPM s, v MacPorty a v Porty FreeBSD stejně jako pro ostatní operační systémy, včetně Microsoft Windows; vidět Obecný zdroj a informace o stahování na Qore wiki pro více informací.
Reference
- ^ „Proč používat Qore?“. Qore.org. 13.06.2016. Citováno 2016-06-14.
- ^ „qore / ABOUT at develop · qorelanguage / qore · GitHub“. Github.com. Citováno 2016-08-10.
- ^ „Referenční příručka programovacího jazyka Qore: Analyzovat směrnice“. Docs.qore.org. Citováno 2016-08-10.
- ^ "Základní datové typy". Qore.org. Citováno 2012-05-31.
- ^ „Referenční příručka programovacího jazyka Qore: Typy dat kontejneru“. Docs.qore.org. Citováno 2016-08-10.
- ^ „Referenční příručka programovacího jazyka Qore: Typy dat kódu“. Docs.qore.org. Citováno 2016-08-10.
- ^ „Qore Programming Language Reference Manual: Threading“. Docs.qore.org. Citováno 2016-08-10.
- ^ „Program Class“. Qore.org. Citováno 2016-06-13.
- ^ "Moduly · qorelanguage / qore Wiki · GitHub". Github.com. 2016-06-12. Citováno 2016-08-10.
externí odkazy
- Oficiální webové stránky
- Qore Wiki (github.com)
- Qore pro programátora Perl (houston.pm.org)
- openSUSE (software.opensuse.org)
- NetBSD (ftp.netbsd.org)
- FreeBSD (Portsmon.freebsd.org)