Jump to content

Среда программирования ZPE

ЯСС
Логотип ЗПЭ
Парадигма Императивный , функциональный , объектно-ориентированный , процедурный
Разработано Джейми Бальфур
Разработчик Джейми Бальфур
Впервые появился 2015 ; 9 лет назад ( 2015 ) [1]
Стабильная версия
1.12.6 [2] / 5 июня 2024 г .; 58 дней назад ( 05.06.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).

  1. ^ «Информация о среде программирования ZPE» . Информация ЗПЭ . Проверено 2 февраля 2019 г.
  2. ^ «Журнал изменений ZPE» . Журнал изменений ZPE . Проверено 1 июня 2024 г.
  3. ^ Jump up to: а б с д «Что такое ЗПЭ?» . Документация ЗПЭ . Проверено 2 февраля 2019 г.
  4. ^ Jump up to: а б «Документация по среде программирования ZPE» . Документация ЗПЭ . Проверено 2 февраля 2019 г.
  5. ^ «Об этом сайте» . Об этом сайте . Проверено 24 июля 2020 г.
  6. ^ «Блог Джейми Бальфура: прогресс транспилятора YASS-Python» . Блог Джейми Бальфура . Проверено 2 июня 2024 г.
  7. ^ Jump up to: а б «Журнал изменений ZPE: Документация по среде программирования ZPE :: jamiebalfour.scot» . Документация ЗПЭ . Проверено 10 марта 2019 г.
  8. ^ «Блог Джейми Бальфура: раскрытие YASS» . Блог Джейми Бальфура . Проверено 6 октября 2023 г.
  9. ^ «Блог Джейми Бальфура: Мой транспилятор Python для YASS теперь называется ZenPy. :: jamiebalfour.scot» . Блог Джейми Бальфура . Проверено 29 июня 2024 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 192f73d152fb986ec8df85b2133283a5__1721402760
URL1:https://arc.ask3.ru/arc/aa/19/a5/192f73d152fb986ec8df85b2133283a5.html
Заголовок, (Title) документа по адресу, URL1:
ZPE Programming Environment - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)