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

Язык сценариев
ЯСС
Логотип ЗПЭ
ПарадигмаИмперативный , функциональный , объектно-ориентированный , процедурный
РазработаноДжейми Балфур
РазработчикДжейми Балфур
Впервые появился2015 ; 10 лет назад [1] ( 2015 )
Стабильный релиз
1.12.12 [2] / 1 ноября 2024 г. ; 3 месяца назад ( 2024-11-01 )
Дисциплина набора текстаДинамичный , статический , слабый , сильный , постепенный [3]
Язык реализацииЯва , ЯСС
ПлатформаКроссплатформенный
ОСUnix-подобный , Windows , macOS
Расширения имени файла.yas .yex
Веб-сайтhttps://www.jamiebalfour.scot/projects/zpe/
Под влиянием
C , PHP , Java , JavaScript , VB.NET , C# , SML , Python [3]

ZPE Programming Environment (или просто ZPE ), ранее Zenith Parsing Engine, является универсальным компилятором , синтаксическим анализатором и средой выполнения для языка программирования YASS, разработанным как для образовательных целей, так и для общего использования. Язык, который он интерпретирует, YASS, является интерпретируемым , высокоуровневым , универсальным языком программирования . YASS в значительной степени построен на том, чтобы сделать язык простым для чтения и использования, с дополнительной поддержкой синтаксисов, таких как синтаксис фигурных скобок . YASS поддерживает динамическую типизацию или статическую типизацию , а также строгую типизацию и слабую типизацию .

Он был начат в мае 2015 года как запланированный университетский проект, но позже был изменен, чтобы стать заменой другого языка программирования, разрабатывавшегося в то время, известного как BlackRabbit Script, также созданного Джейми Балфуром. ZPE и YASS были разработаны для помощи в автоматизации скриптов путем устранения непоследовательного синтаксиса других скриптовых языков. [3] Zenith Parsing Engine (ранее ZenithParser) обеспечивает работу базовых парсеров, включая парсеры CSV , INI , JSON , TOML и XML .

Среда программирования ZPE написана на Java, что делает ее кроссплатформенной . Как побочный эффект, определенные плагины и встроенные объекты полностью написаны на Java.

Хотя ZPE имеет закрытый исходный код , все плагины, транспиляторы и дополнительные инструменты имеют открытый исходный код . Библиотека стандартных алгоритмов также имеет открытый исходный код и доступна на странице Balfour на GitHub.

ЯСС

Язык, интерпретируемый средой выполнения ZPE, известен как YASS или Yet Another Simple Syntax [4] . YASS является языком программирования , полным по Тьюрингу , и содержит обычные конструкции и выражения языков программирования. На синтаксис YASS повлияли несколько языков, включая C , PHP , Java , JavaScript , VB.NET , C# , SML и Python [3], который в значительной степени остался неизменным примерно с версии 1.5. ZPE/YASS можно использовать для программирования общего назначения, поддержки клиентских и серверных коммуникаций и серверных скриптов. Некоторые веб-сайты уже используют ZPE наряду с другими языками, такими как PHP [5] .

YASS также можно транспилировать на другие языки, такие как Python и PHP. [6]

Функции

ZPE имеет множество встроенных функций, включая функции, упрощающие математические задачи, такие как greater_than_allфункция to_binary, to_octalи to_hexadecimalфункции , а также множество функций для оптимизации обработки массивов, таких как list_process, list_find_duplicatesи list_auto_populate. ZPE также имеет синтаксический анализатор, известный как Zenith Parser Engine, который составляет основу всего языкового процессора и выполняет как лексический анализ , так и оптимизацию компиляции текстового ввода.

Раздел документации на оригинальном дочернем сайте, посвященный ZPE, документирует все языковые конструкции, внутренние функции и синтаксис. [4]

ZPE изначально был создан как запланированный университетский проект, который так и не был реализован. В конечном итоге он был использован в качестве замены для языка BlackRabbit Script, который в то время разрабатывал Балфур.

Синтаксис

Подобно PHP и Perl, двум языкам, вдохновившим YASS, переменные $в YASS начинаются со знака.

$x  =  10 $x  =  $x  +  5печать ( $x )

Более поздние версии ZPE и YASS поддерживают объявление переменных без $. ZPE и YASS также поддерживают сочетание строгой и слабой типизации в одном скрипте:

$x  =  10 объявить  y  как  число  =  10печать ( $x ) печать ( y )

ХРОМОЙ

LAME, или Logical and Mathematical Evaluator, — это функция ZPE, которая может анализировать и оценивать выражения, включающие логику и математику. Она была разработана в 2019 году для замены LAMP, который заменил RMM. Изначально в ZPE не было математического анализатора, то есть функции использовались для сложения, вычитания, деления и умножения. Пример этого раннего синтаксиса, который существует с версии 1.3:

$x  =  10 $y  =  15$z  =  сложить ( $x ,  $y )печать ( $z )

В конце 2015 года, все еще в версии 1.3.x ZPE, был добавлен парсер Real Math Mode (RMM). Синтаксис изменился так, что он стал больше похож на другие языки:

$x  =  10 $y  =  15$z  =  $x  +  $yпечать ( $z )

Для повышения производительности анализатор Real Math Mode был заменен на Logical And Mathematical Parser (LAMP) в 2016 году, а затем на Logical And Mathematical Evaluator (LAME) в 2019 году. [7]

По словам Балфура [8] , последняя версия LAMEX2 в два-пять раз быстрее первой версии LAME .

ЯСС Раскрыть

YASS Unfold — это синтаксический анализатор, который может преобразовывать синтаксис в описания. YASS Unfold работает на основе AST, сгенерированного из кода, для генерации описаний кода. [9]

Транспилеры

ZPE также добавила транспиляторы для эффективного преобразования YASS в другие языки. Они распространяются как плагины и доступны на GitHub и личном сайте Balfour.

Первым созданным транспилятором был транспилятор YASS в Python (известный как ZenPy) из-за сходства принципов работы обоих языков.

Существуют также транспиляторы для преобразования YASS в PHP и Java, но они менее развиты, чем ZenPy. [10]

Библиотеки

ZPE/YASS полагаются на библиотеки, разрабатываемые для расширения функциональности. Основная причина этого — уменьшение размера основного пакета среды выполнения. Конкретные библиотеки пишутся на самом языке YASS, а затем компилируются. Затем они распространяются через сеть ZULE, которая была добавлена ​​в 2018 году. [7]

Другие библиотеки написаны на родном Java. Например, библиотека zpe_mysql добавляет функциональность MySQL к языку, используя библиотеку, которая примерно в шесть раз больше исходной среды выполнения.

ZPE-родной

В августе 2022 года сборка AArch64 была скомпилирована с использованием компилятора GraalVM. Это обеспечило производительность, намного превосходящую производительность версии JRE в одиночку. ZPE Native может значительно повысить производительность, но не является кроссплатформенным и доступен только на текущих платформах (сюда входят EXE для Windows, совместимый с Linux двоичный файл и сборка AArch).

Смотрите также


Ссылки

  1. ^ "Информация о среде программирования ZPE". Информация о ZPE . Получено 2019-02-02 .
  2. ^ "Журнал изменений ZPE" . Проверено 19 декабря 2024 г.
  3. ^ abcd «Что такое ZPE?». Документация ЗПЭ . Проверено 2 февраля 2019 г.
  4. ^ ab "Документация по среде программирования ZPE". Документация ZPE . Получено 2019-02-02 .
  5. ^ "Об этом сайте" . Получено 2020-07-24 .
  6. ^ "Блог Джейми Балфура: Прогресс транспилера YASS-Python". Блог Джейми Балфура . Получено 2024-06-02 .
  7. ^ ab «Журнал изменений ZPE: Документация по среде программирования ZPE :: jamiebalfour.scot». Документация ЗПЭ . Проверено 10 марта 2019 г.
  8. ^ "LAME X2 :: jamiebalfour.scot". Блог Джейми Балфура . Получено 2024-12-16 .
  9. ^ "Блог Джейми Балфура: YASS Unfold". Блог Джейми Балфура . Получено 2023-10-06 .
  10. ^ "Блог Джейми Балфура: Мой транспилятор Python для YASS теперь ZenPy. :: jamiebalfour.scot". Блог Джейми Балфура . Получено 29.06.2024 .
Взято с "https://en.wikipedia.org/w/index.php?title=ZPE_Programming_Environment&oldid=1271955594"