Среда программирования ZPE
Парадигма | Императивный , функциональный , объектно-ориентированный , процедурный |
---|---|
Разработано | Джейми Бальфур |
Разработчик | Джейми Бальфур |
Впервые появился | 2015 [1] |
Стабильная версия | 1.12.6 [2]
/ 5 июня 2024 г |
Дисциплина набора текста | Динамический , статический , слабый , сильный , постепенный. [3] |
Язык реализации | Ява , ЯАСС |
Платформа | Кросс-платформенный |
ТЫ | Unix-подобный , Windows , macOS |
Расширения имен файлов | .да .да |
Веб-сайт | https://www.jamiebalfour.scot/projects/zpe/ |
Под влиянием | |
C , PHP , Java , JavaScript , VB.NET , C#.NET , SML , Python [3] |
Среда программирования ZPE (или просто ZPE ), ранее Zenith Parsing Engine, представляет собой компилятор , анализатор и среду выполнения общего назначения для языка YASS, предназначенную для использования в образовательных целях, а также для его общего использования. Язык, который он интерпретирует, YASS, является интерпретируемым языком высокого уровня общего назначения программирования . YASS во многом построен на том, чтобы сделать язык простым для чтения и использования, с дополнительной поддержкой синтаксисов, таких как синтаксис фигурных скобок . YASS поддерживает динамическую или статическую типизацию , а также строгую и слабую типизацию .
Он был запущен в мае 2015 года как запланированный университетский проект, но позже был изменен, чтобы заменить другой разрабатываемый в то время язык программирования, известный как BlackRabbit Script, также созданный Джейми Бальфуром. ZPE и YASS были разработаны, чтобы помочь в автоматизации сценариев путем устранения противоречивого синтаксиса других языков сценариев. [3] Механизм анализа Zenith (ранее ZenithParser) поддерживает базовые анализаторы, включая анализаторы CSV, JSON и XML.
Среда программирования ZPE написана на Java, что делает ее кроссплатформенной . Побочным эффектом является то, что определенные плагины и встроенные объекты полностью написаны на Java.
ZPE Хотя исходный код закрыт , все плагины, транспиляторы и дополнительные инструменты имеют открытый исходный код . Библиотека стандартных алгоритмов также имеет открытый исходный код и доступна на странице Бальфура на GitHub.
ЯСС
[ редактировать ]Язык, интерпретируемый средой выполнения ZPE, известен как YASS или «Еще один простой синтаксис». [4] На синтаксис YASS повлияли несколько языков, включая C , PHP , Java , JavaScript , VB.NET , C#.NET , SML и Python. [3] который практически не изменился начиная с версии 1.5. ZPE/YASS можно использовать для программирования общего назначения, поддержки связи между клиентом и сервером, а также написания сценариев на стороне сервера. Некоторые веб-сайты уже используют ZPE наряду с другими языками, такими как PHP. [5]
YASS также можно перенести на другие языки, такие как Python и PHP. [6]
Функции
[ редактировать ]ZPE имеет множество встроенных функций, включая функции, которые упрощают математические задачи, такие как функция «больше, чем_все», функции to_binary, to_octal и to_hexdecimal, а также множество функций для оптимизации обработки массивов, таких как list_process
, list_find_duplicates
и list_auto_populate
. ZPE также включает в себя синтаксический анализатор, известный как Zenith Parser Engine, который составляет основу всего языкового процессора и выполняет как лексический анализ , так и оптимизацию компилятора для текстового ввода.
На исходном дочернем сайте, посвященном ZPE, в разделе документации описаны все языковые конструкции, внутренние функции и синтаксис. [4]
Изначально ZPE создавался как запланированный университетский проект, но так и не был реализован. В конце концов, он был использован в качестве замены языка BlackRabbit Script, который в то время разрабатывал Бальфур. Изначально в ZPE не было математического анализатора, то есть функции использовались для сложения, вычитания, деления и умножения. Пример этого раннего синтаксиса:
$x = 10
$y = 15
$z = add($x, $y)
print($z)
В конце 2015 года, еще в версии 1.3.x ZPE, был добавлен парсер Real Math Mode (RMM). Синтаксис изменился так, что он стал больше похож на другие языки:
$x = 10
$y = 15
$z = $x + $y
print($z)
Для повышения производительности парсер в режиме Real Math Mode был заменен на логико-математический анализатор (LAMP) в 2016 году, а затем на логико-математический анализатор (LAME) в 2019 году. [7]
ZPE и YASS также поддерживают сочетание строгой и слабой типизации в одном скрипте:
$x = 10
declare y as number = 10
print($x)
print(y)
ЯСС развернуть
[ редактировать ]YASS Unfold — это синтаксический анализатор, который может преобразовывать синтаксис в описания. YASS Unfold работает на основе AST, сгенерированного из кода, для создания описаний кода. [8]
Транспиллеры
[ редактировать ]ZPE также добавила транспиляторы для эффективного преобразования YASS в другие языки. Они распространяются в виде плагинов и доступны на GitHub и личном веб-сайте Бальфура.
Первым созданным транспилятором был транспилятор YASS в Python (известный как ZenPy) из-за сходства в том, как оба языка работают внутри.
Транспиляторы для преобразования YASS в PHP и Java также существуют, но они менее зрелы, чем ZenPy. [9]
Библиотеки
[ редактировать ]ZPE/YASS полагаются на библиотеки, разрабатываемые для расширения функциональности. Основная причина этого — уменьшение размера основного пакета среды выполнения. Конкретные библиотеки пишутся на самом языке YASS, а затем компилируются. Затем они распространяются через сеть ZULE, добавленную в 2018 году. [7]
Другие библиотеки написаны на родной Java. Например, библиотека zpe_mysql добавляет в язык функциональные возможности MySQL , используя библиотеку, размер которой примерно в шесть раз превышает размер исходной среды выполнения.
ZPE родной
[ редактировать ]В августе 2022 года с помощью компилятора GraalVM была скомпилирована сборка AArch64. Это обеспечивало производительность намного лучше, чем одна только версия JRE. ZPE Native может значительно повысить производительность, но не является кроссплатформенным и доступен только на текущих платформах (включая EXE-файл для Windows, Linux-совместимый двоичный файл и сборку AArch).
Ссылки
[ редактировать ]- ^ «Информация о среде программирования ZPE» . Информация ЗПЭ . Проверено 2 февраля 2019 г.
- ^ «Журнал изменений ZPE» . Журнал изменений ZPE . Проверено 1 июня 2024 г.
- ^ Jump up to: а б с д «Что такое ЗПЭ?» . Документация ЗПЭ . Проверено 2 февраля 2019 г.
- ^ Jump up to: а б «Документация по среде программирования ZPE» . Документация ЗПЭ . Проверено 2 февраля 2019 г.
- ^ «Об этом сайте» . Об этом сайте . Проверено 24 июля 2020 г.
- ^ «Блог Джейми Бальфура: прогресс транспилятора YASS-Python» . Блог Джейми Бальфура . Проверено 2 июня 2024 г.
- ^ Jump up to: а б «Журнал изменений ZPE: Документация по среде программирования ZPE :: jamiebalfour.scot» . Документация ЗПЭ . Проверено 10 марта 2019 г.
- ^ «Блог Джейми Бальфура: раскрытие YASS» . Блог Джейми Бальфура . Проверено 6 октября 2023 г.
- ^ «Блог Джейми Бальфура: Мой транспилятор Python для YASS теперь называется ZenPy. :: jamiebalfour.scot» . Блог Джейми Бальфура . Проверено 29 июня 2024 г.