Jump to content

Коре (язык программирования)

Писатель
Парадигма мультипарадигмальность : потокобезопасная / параллельная / совместная память , функциональная , императивная , объектно-ориентированная ( на основе классов ), процедурная , функциональная.
Разработано Дэвид Николс
Разработчик Дэвид Николс
Стабильная версия
1.16.1 / 2 июля 2023 г .; 13 месяцев назад ( 2023-07-02 )
Дисциплина набора текста Динамический, опционально сильный
Язык реализации С++ , Pthreads
ТЫ Кросс-платформенный
Лицензия Лицензия MIT , Стандартная общественная лицензия GNU , Стандартная общественная лицензия ограниченного использования GNU
Расширения имен файлов .q, .qm, .qtest
Веб-сайт www .писатель .org
Под влиянием
Перл , D , C++ , Java

Qore — это интерпретируемый высокоуровневый . со общего назначения сборкой мусора динамический язык программирования , поддерживающий встраивание кода и изолированную программную среду с дополнительной строгой типизацией и упором на фундаментальную поддержку многопоточности и масштабируемости SMP

Qore уникален, поскольку это интерпретируемый язык сценариев с фундаментальной поддержкой многопоточности (это означает, что одновременно может выполняться более одной части одного и того же кода), а также потому, что он обеспечивает автоматическое управление памятью (это означает, что программистам не нужно выделять и распределять память). явно освобождать память), а также поддерживать идиому RAII с деструкторами для управления ресурсами на основе области видимости и программирования с защитой от исключений . [1] Это связано с уникальной реализацией Qore сбора подсказок для сбора мусора .

Коровые скрипты

[ редактировать ]

Скрипты Qore обычно имеют следующие расширения:

  • .q: для скриптов Qore
  • .qm: для пользовательских модулей Qore
  • .qtest: для тестовых сценариев Qore

Исполняемые сценарии Qore в Unix-подобных операционных системах обычно начинаются с хеш-банга, обозначающего имя файла интерпретатора, следующим образом:

#!/usr/bin/env qore

Синтаксис

[ редактировать ]

Синтаксис Qore похож на следующие языки программирования и вдохновлен ими: [2]

  • Перл : без %new-styleсинтаксис Qore очень похож на синтаксис Perl ; тот foreach заявление, splice, push, pop, chomp операторы, регулярные выражения, совместимые с Perl5, и многое другое.
  • Ява : с %new-styleкод Qore больше похож на Java ; [3] тот synchronized ключевое слово, instanceof реализация оператора, объекта и класса
  • C++ : множественное наследование, обработка исключений, статические методы, абстрактные методы.
  • Д : on_exit, on_success, и on_error операторы обеспечивают функциональность с учетом исключений, аналогичную D scope(exit), scope(failure), что позволяет разместить код очистки с учетом исключений рядом с кодом, требующим очистки.
  • Хаскель : map, foldl, foldr, и select операторы с ленивым вычислением функциональных и списочных операторов и операторов

Типы данных

[ редактировать ]

К основным типам относятся: boolean, string, integer, float, date, binary, [4] list, hash (ассоциативные массивы) и object, [5] а также код code для кода, используемого в качестве типа данных. [6]

Также поддерживаются сложные типы, такие как hash<string, bool>, list<string>, reference<list<string>> а также типобезопасные хеши .

Многопоточность

[ редактировать ]

Несмотря на то, что Qore является интерпретируемым языком, он был разработан с учетом поддержки многопоточности как фундаментального принципа проектирования. Все элементы Qore являются поточно-ориентированными, и язык в целом был разработан с учетом масштабируемости SMP. Поскольку все элементы языка были разработаны для поддержки многопоточности, программам и сценариям Qore не приходится ограничиваться подмножеством функций Qore, поэтому нет глобальной блокировки интерпретатора . в Qore [7]

Функциональность потоковой обработки в Qore обеспечивается библиотекой потоков POSIX операционной системы .

Сбор мусора

[ редактировать ]

Qore предлагает уникальный подход к сбору мусора, называемый сбором подсказок , который позволяет запускать деструкторы немедленно, когда объекты выходят за пределы области видимости, даже если они имеют рекурсивные ссылки на самих себя. Это позволяет Qore поддерживать идиому RAII , а также выполнять автоматическое управление памятью со сбором мусора .

Поддержка внедрения кода и песочницы

[ редактировать ]

Qore был разработан для поддержки логики внедрения и изолированной программной среды в приложениях; это также относится к приложениям, написанным на Qore, а также к приложениям, использующим общедоступный API C++ библиотеки Qore. С помощью Program Класс, который представляет собой логический контейнер с элементами управления «песочницей», во время выполнения можно создавать и уничтожать дискретные объекты, содержащие встроенный код, для расширения или изменения поведения вашего приложения определяемыми пользователем способами. [8]

Библиотека времени выполнения

[ редактировать ]

Стандартная библиотека времени выполнения Qore поддерживает сопоставление данных, API для связи с базами данных (включая API высокого уровня для операций SQL, управления схемой и действий администратора базы данных), клиентские API и реализации серверной инфраструктуры для многих протоколов, включая HTTP , REST (с проверкой схемы REST). генерация кода, включая поддержку Swagger клиент/сервер ), поддержка SOAP (включая генерацию кода и сообщений), WebSocket , протоколы RPC , API-интерфейсы общего соединителя , API-интерфейсы общего сопоставления данных , а также множество форматов файлов, протоколов обмена файлами и данными и многое другое. [9]

Тестирование

[ редактировать ]

Qore поддерживает тестирование через модуль QUnit , который облегчает автоматическое тестирование и процессы непрерывной интеграции для кода, написанного на Qore.

Доступность

[ редактировать ]

Qore Репозиторий Git (программное обеспечение) размещен на GitHub . Двоичные пакеты доступны в виде RPM , в MacPorts и FreeBSD Ports, а также для других операционных систем, включая Microsoft Windows ; дополнительную информацию см. в разделе «Общий источник» и «Информация о загрузке» на вики Qore.

  1. ^ «Зачем использовать Кор?» . Коре.орг. 13 июня 2016 г. Проверено 14 июня 2016 г.
  2. ^ «qore/ABOUT at development · qorelanguage/qore · GitHub» . Гитхаб.com . Проверено 10 августа 2016 г.
  3. ^ «Справочное руководство по языку программирования Qore: анализ директив» . Docs.qore.org . Проверено 10 августа 2016 г.
  4. ^ «Основные типы данных» . Коре.орг . Проверено 31 мая 2012 г.
  5. ^ «Справочное руководство по языку программирования Qore: типы данных контейнера» . Docs.qore.org . Проверено 10 августа 2016 г.
  6. ^ «Справочное руководство по языку программирования Qore: типы данных кода» . Docs.qore.org . Проверено 10 августа 2016 г.
  7. ^ «Справочное руководство по языку программирования Qore: многопоточная обработка» . Docs.qore.org . Проверено 10 августа 2016 г.
  8. ^ «Класс программы» . Коре.орг . Проверено 13 июня 2016 г.
  9. ^ «Модули · qorelanguage/qore Wiki · GitHub» . Гитхаб.com . 12 июня 2016 г. Проверено 10 августа 2016 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d6a670035804c985d913fc7984269868__1712145240
URL1:https://arc.ask3.ru/arc/aa/d6/68/d6a670035804c985d913fc7984269868.html
Заголовок, (Title) документа по адресу, URL1:
Qore (programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)