Qore (бағдарламалау тілі) - Qore (programming language)

Qore
Парадигмамультипарадигма: жіп қауіпсіз /параллель /ортақ жады, функционалды, императивті, объектіге бағытталған (сыныптық ), процессуалдық, функционалды
ЖобалағанДэвид Николс
ӘзірлеушіДэвид Николс
Тұрақты шығарылым
0.9.4.2 / 2020 жылғы 27 наурыз; 7 ай бұрын (2020-03-27)
Пәнді теруДинамикалық, қалауы бойынша күшті
Іске асыру тіліC ++, Жіптер
ОЖКросс-платформа
ЛицензияMIT лицензиясы, GNU жалпыға ортақ лицензиясы, GNU кіші жалпыға ортақ лицензиясы
Файл атауының кеңейтімдері.q, .qm, .qtest
Веб-сайтwww.қар.org
Әсер еткен
Перл, Д., C ++, Java

Qore болып табылады түсіндірілді, жоғары деңгей, жалпы мақсат, қоқыс жиналды динамикалық бағдарламалау тілі кодты енгізу мен құм жәшігіне қосымша күшті терумен, мультимедальды және SMP масштабтылығымен қамтамасыз етуге бағытталған фокусты қолдауды ұсынады.

Qore бірегей, өйткені ол сценарийлердің негізгі қолдауымен түсіндіріледі көп жұмыс (бір кодтың бірнеше бөлігі бір уақытта жұмыс істей алады дегенді білдіреді), сонымен қатар ол автоматты түрде жадыны басқаратын болғандықтан (бағдарламашылар жадыны бөліп, босатудың қажеті жоқ), сонымен қатар RAII идиома ауқымға негізделген ресурстарды басқаруға арналған деструкторлармен және ерекше қауіпсіз бағдарламалау.[1] Бұл Qore-дің бірегейіне байланысты жедел жинау жүзеге асыру қоқыс шығару.

Qore сценарийлері

Qore сценарийлері келесі кеңейтімдерге ие:

  • .q: Qore сценарийлері үшін
  • .qm: Qore пайдаланушы модульдері үшін
  • .qtest: Qore тест сценарийлері үшін

Орындалатын Qore сценарийлері қосулы Unix тәрізді операциялық жүйелер әдетте a-дан басталады hashbang аудармашының файл аты келесідей көрсетілсін:

#! / usr / bin / env qore

Синтаксис

Qore синтаксисі келесі бағдарламалау тілдеріне ұқсас және шабыттандырады:[2]

  • Перл: жоқ % жаңа стиль, Qore синтаксисі өте ұқсас Перл; The әрқайсысы үшін мәлімдеме, қоспа, Басыңыз, поп, чомп операторлар, Perl5 үйлесімді тұрақты тіркестер және т.б.
  • Java: бірге % жаңа стиль, Qore коды көбірек ұқсайды Java;[3] The синхрондалған кілт сөз, тұрақты емес оператор, объект және сыныптың орындалуы
  • C ++: бірнеше мұрагерлік, ерекше жағдайларды өңдеу, статикалық әдістер, дерексіз әдістер
  • Д.: шығу_, сәттілік, және қате мәлімдемелер D-ге ұқсас ерекшеліктерді ескеретін функционалдылықты ұсынады қолдану аясы (шығу), ауқым (сәтсіздік), ерекше жағдайды ескеретін тазарту кодын тазалауды қажет ететін кодтың қасына қоюға мүмкіндік береді
  • Хаскелл: карта, бүктеу, фр, және таңдаңыз функционалдық және тізімдік операторлар мен операторларды жалқау бағалайтын операторлар

Мәліметтер түрлері

Негізгі түрлерге мыналар жатады: логикалық, жіп, бүтін, жүзу, күн, екілік,[4] тізім, хэш (ассоциативті массивтер), және объект,[5] сонымен қатар код код деректер типі ретінде қолданылатын код үшін.[6]

Сияқты кешенді түрлерге қолдау көрсетіледі hash , тізім <жол>, сілтеме <тізім <жол>> Сонымен қатар қауіпсіз хэштер.

Көп жұмыс

Аударма тілі болғанына қарамастан, Куре қолдау көрсету үшін жасалған көп жұмыс жобалаудың негізгі принципі ретінде. Qore-дің барлық элементтері қауіпсіз, жалпы тіл SMP масштабталуын ескере отырып жасалған. Тілдің барлық элементтері көп ағынды қолдауға арналғандықтан, Qore бағдарламалары мен сценарийлері өздерін тек Qore функционалдығының бір бөлігімен шектемеуі керек, сондықтан да жоқ Әлемдік аудармашы құлпы Коре.[7]

Qore-дегі бұрау функциясы амалдық жүйемен қамтамасыз етілген POSIX ағындарының кітапханасы.

Қоқыстарды жинау

Qore қоқысты жинаудың ерекше тәсілімен ерекшеленеді жедел жинау бұл деструкторларды, егер олар өздеріне қатысты рекурсивті сілтемелер болса да, объектілер шеңберінен шыққан кезде бірден іске қосуға мүмкіндік береді. Бұл Qore-ге қолдау көрсетуге мүмкіндік береді RAII идиома және де өнер көрсетеді қоқыс жиналды автоматты жадыны басқару.

Код ендіру және құм жәшігіне қолдау

Qore қосымшаларға енгізу және құм жәшігінің логикасын қолдау үшін жасалған; бұл Qore-де жазылған қосымшаларға, сондай-ақ Qore кітапханасының көпшілікке арналған C ++ API қолданбасына қатысты. Көмегімен Бағдарлама құм жәшігінің басқару элементтері бар логикалық контейнерді ұсынатын класс, қолданбалы бағдарламаның әрекетін пайдаланушы анықтайтын тәсілдермен кеңейту немесе өзгерту үшін дискретті объектілерді ендірілген коды бар жұмыс уақытында жасауға және жоюға болады.[8]

Жұмыс уақыты кітапханасы

Qore стандартты жұмыс уақыты кітапханасы деректерді бейнелеуді, мәліметтер базасымен байланыс орнатуға арналған API-ді (соның ішінде SQL операциялары үшін жоғары деңгейлі API, схема менеджменті және DBA әрекеттері), клиенттік API және серверлік инфрақұрылымды көптеген протоколдар үшін қолдайды. HTTP, Демалыс (REST схемасын растаумен / кодты қоса алғанда Swagger қолдау), клиент / сервер Сабын қолдау (соның ішінде код пен хабарлама генерациясы), WebSocket, RPC протоколдары, жалпы қосқыш API, жалпы деректерді салыстыру API, және көптеген файл пішімдері, файлдармен және мәліметтермен алмасу хаттамалары және басқалары.[9]

Тестілеу

Qore тестілеуді қолдайды QUnit модулі бұл автоматтандырылған тестілеуді жеңілдетеді және Үздіксіз интеграция Qore-де жазылған кодқа арналған процестер.

Қол жетімділік

Коре Git (бағдарламалық жасақтама) репозитарий орналастырылған GitHub. Екілік пакеттер қол жетімді RPM s, in Mac порттары және FreeBSD порттары сонымен қатар басқа операциялық жүйелер үшін, соның ішінде Microsoft Windows; қараңыз Жалпы ақпарат және жүктеу туралы ақпарат Қосымша ақпарат алу үшін Qore викиінде.

Әдебиеттер тізімі

  1. ^ «Неліктен Qore-ді қолдану керек?». Qore.org. 2016-06-13. Алынған 2016-06-14.
  2. ^ «qore / дамыту туралы ТӘРТІП · korelanguage / qore · GitHub». Github.com. Алынған 2016-08-10.
  3. ^ «Qore бағдарламалау тілінің анықтамалық нұсқауы: талдау директивалары». Docs.qore.org. Алынған 2016-08-10.
  4. ^ «Мәліметтердің негізгі түрлері». Qore.org. Алынған 2012-05-31.
  5. ^ «Qore бағдарламалау тілінің анықтамалық нұсқаулығы: контейнер деректерінің түрлері». Docs.qore.org. Алынған 2016-08-10.
  6. ^ «Qore бағдарламалау тілінің анықтамалық нұсқаулығы: код деректерінің түрлері». Docs.qore.org. Алынған 2016-08-10.
  7. ^ «Qore бағдарламалау тілінің анықтамалық нұсқаулығы: ағын». Docs.qore.org. Алынған 2016-08-10.
  8. ^ «Бағдарлама сыныбы». Qore.org. Алынған 2016-06-13.
  9. ^ «Модульдер · қорғаныс тілі / qore Wiki · GitHub». Github.com. 2016-06-12. Алынған 2016-08-10.

Сыртқы сілтемелер