Qore (язык программирования) - Qore (programming language)
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
| Парадигма | мультипарадигма: потокобезопасный /параллельно /Общая память, функциональный, императив, объектно-ориентированный (основанный на классе ), процедурный, функциональный |
|---|---|
| Разработано | Дэвид Николс |
| Разработчик | Дэвид Николс |
| Стабильный выпуск | 0.9.4.2 / 27 марта 2020 г. |
| Печатная дисциплина | Динамический, опционально сильный |
| Язык реализации | C ++, Pthreads |
| Операционные системы | Кроссплатформенность |
| Лицензия | Лицензия MIT, Стандартная общественная лицензия GNU, Стандартная общественная лицензия ограниченного применения GNU |
| Расширения имени файла | .q, .qm, .qtest |
| Интернет сайт | www |
| Под влиянием | |
| Perl, D, C ++, Ява | |
Qore является интерпретированный, высокий уровень, общее назначение, собран мусор язык динамического программирования с поддержкой встраивания кода и песочницы с дополнительной строгой типизацией и акцентом на фундаментальную поддержку многопоточности и масштабируемости SMP.
Qore уникален, потому что это интерпретируемый язык сценариев с фундаментальной поддержкой многопоточность (это означает, что одновременно может выполняться более одной части одного и того же кода), и, кроме того, потому, что он обеспечивает автоматическое управление памятью (то есть программистам не нужно явно выделять и освобождать память), а также поддерживает Идиома RAII с деструкторами для управления ресурсами на основе области и безопасное программирование.[1] Это связано с уникальным быстрый сбор реализация для вывоз мусора.
Скрипты Qore
Скрипты Qore обычно имеют следующие расширения:
.q: для скриптов Qore.qm: для пользовательских модулей Qore.qtest: для тестовых скриптов Qore
Исполняемые скрипты Qore на Unix-подобный операционные системы обычно начинаются с хэшбэнг указать имя файла интерпретатора следующим образом:
#! / usr / bin / env qore
Синтаксис
Синтаксис Qore похож на следующие языки программирования и основан на них:[2]
- Perl: без
%новый стиль, Синтаксис Qore очень похож на Perl; тодля каждогоутверждение,сращивание,толкать,поп,чавкатьоператоры, регулярные выражения, совместимые с Perl5, и многое другое - Ява: с
%новый стиль, Код Qore больше похож на Ява;[3] тосинхронизированныйключевое слово,экземплярреализация оператора, объекта и класса - C ++: множественное наследование, обработка исключений, статические методы, абстрактные методы
- D: the
on_exit,on_success, иon_errorоператоры предоставляют функции с учетом исключений, аналогичные D'sобласть действия (выход),объем (отказ), что позволяет разместить код очистки с учетом исключений рядом с кодом, требующим очистки - Haskell: the
карта,складка,складной, иВыбратьоператоры с ленивым вычислением функциональных и списковых операторов и операторов
Типы данных
Основные типы включают: логический, нить, целое число, плавать, Дата, двоичный,[4] список, хэш (ассоциативные массивы) и объект,[5] а также код код для кода, используемого в качестве типа данных.[6]
Также поддерживаются сложные типы, такие как хэш <строка, логическое значение>, список <строка>, ссылка <список <строка>> а также типобезопасные хэши.
Многопоточность
Несмотря на то, что Qore является интерпретируемым языком, он был разработан для поддержки многопоточность как основополагающий принцип дизайна. Все элементы Qore являются потокобезопасными, и язык в целом был разработан с учетом масштабируемости SMP. Поскольку все элементы языка были разработаны для поддержки многопоточности, программы и сценарии Qore не должны ограничиваться подмножеством функциональных возможностей Qore, что также является причиной отсутствия Глобальная блокировка интерпретатора в Qore.[7]
Функциональность потоковой передачи в Qore обеспечивается операционной системой Библиотека потоков POSIX.
Вывоз мусора
Qore предлагает уникальный подход к сборке мусора, называемый быстрый сбор это позволяет деструкторам запускаться немедленно, когда объекты выходят за пределы области видимости, даже если у них есть рекурсивные ссылки на себя. Это позволяет Qore поддерживать Идиома RAII а также выполнить собран мусор автоматическое управление памятью.
Поддержка внедрения кода и песочницы
Qore был разработан для поддержки логики встраивания и песочницы в приложениях; это также относится к приложениям, написанным на Qore, а также к приложениям, использующим общедоступный C ++ API библиотеки Qore. Используя Программа Класс, который представляет собой логический контейнер с элементами управления песочницей, дискретные объекты могут быть созданы и уничтожены во время выполнения, содержащие встроенный код для расширения или изменения поведения вашего приложения определенными пользователем способами.[8]
Библиотека времени исполнения
Стандартная библиотека времени выполнения Qore поддерживает отображение данных, API-интерфейсы для связи с базами данных (включая API-интерфейсы высокого уровня для операций SQL, управления схемой и действий DBA), клиентские API-интерфейсы и реализации серверной инфраструктуры для многих протоколов, включая HTTP, ОТДЫХ (с проверкой схемы REST / генерацией кода, включая Чванство поддержка), клиент / сервер МЫЛО поддержка (включая генерацию кода и сообщений), WebSocket, Протоколы RPC, общие API соединителя, общие API отображения данных и многие форматы файлов, протоколы обмена файлами и данными и многое другое.[9]
Тестирование
Qore поддерживает тестирование через Модуль QUnit что облегчает автоматическое тестирование и Непрерывная интеграция процессы для кода, написанного на Qore.
Доступность
Кора Git (программное обеспечение) репозиторий размещен на GitHub. Бинарные пакеты доступны как Об / мин с, в MacPorts И в Порты FreeBSD а также для других операционных систем, в том числе Майкрософт Виндоус; видеть Общая информация об источнике и загрузке на вики Qore для получения дополнительной информации.
Рекомендации
- ^ "Зачем использовать Qore?". Qore.org. 2016-06-13. Получено 2016-06-14.
- ^ "qore / О разработке · qorelanguage / qore · GitHub". Github.com. Получено 2016-08-10.
- ^ "Справочное руководство по языку программирования Qore: директивы синтаксического анализа". Docs.qore.org. Получено 2016-08-10.
- ^ «Основные типы данных». Qore.org. Получено 2012-05-31.
- ^ "Справочное руководство по языку программирования Qore: типы данных контейнеров". Docs.qore.org. Получено 2016-08-10.
- ^ "Справочное руководство по языку программирования Qore: Типы данных кода". Docs.qore.org. Получено 2016-08-10.
- ^ "Справочное руководство по языку программирования Qore: многопоточность". Docs.qore.org. Получено 2016-08-10.
- ^ «Программа класса». Qore.org. Получено 2016-06-13.
- ^ "Модули · qorelanguage / qore Wiki · GitHub". Github.com. 2016-06-12. Получено 2016-08-10.
внешняя ссылка
- Официальный веб-сайт
- Qore Wiki (github.com)
- Qore для Perl-программиста (houston.pm.org)
- openSUSE (software.opensuse.org)
- NetBSD (ftp.netbsd.org)
- FreeBSD (portsmon.freebsd.org)