پرش به محتوا

کامپایلر ZPE

از ویکی‌پدیا، دانشنامهٔ آزاد
YASS
پارادایم برنامه‌نویسیImperative, functional, object-oriented, procedural
طراحی شده توسطJamie Balfour
توسعه‌دهندهJamie Balfour
ظهوریافته در۲۰۱۵؛ ۹ سال پیش (۲۰۱۵-خطا: زمان نامعتبر}})[۱]
انتشار پایدار
1.8.11[۲] / ۲۱ اکتبر ۲۰۲۰؛ ۴ سال پیش (۲۰۲۰-21}})
Dynamic, weak[۳]
زبان پیاده‌سازی
Java, YASS
سیستم‌عاملUnix-like, Windows
.zpe, .zen, .zex, .zhtml, .zhtm, .ywp
متأثر از
C, PHP, Java, JavaScript, VB.NET, C#.NET, SML, Python[۳]

کامپایلر ZPE (به انگلیسی: Zenith Parsing Engine) یک کامپایلر، تجزیه کننده و تفسیر کننده برای هدف‌های YASS است که برای استفاده‌های آموزشی و عمومی طراحی شده‌است. زبان آن تفسیر، YASS، یک است تفسیر، سطح بالا، همه منظوره زبان برنامه‌نویسی. YASS عمدتاً بر اساس سهولت در خواندن و استفاده از زبان با پشتیبانی اختیاری از نحوهایی مانند نحو براکت فر است. YASS از تایپ پویا پشتیبانی می‌کند. این برنامه در سال ۲۰۱۵ به عنوان یک پروژهٔ دانشگاهی برنامه‌ریزی شده آغاز شد اما بعداً تغییر یافت تا جایگزین زبان برنامه‌نویسی دیگری شود که در آن زمان با نام BlackRabbit Script شناخته می‌شد و همچنین توسط جیمی بالفور ساخته شده‌است. ZPE و YASS برای پاک کردن نحوهای ناسازگار سایر زبان‌های نوشتاری برای کمک به خودکار سازی اسکریپت‌ها طراحی شده‌اند. Zenith Parsing Engine (ZenithParser اسبق) تجزیه کننده‌های اساسی از جمله تجزیه کننده‌های CSV ,JSON و XML را تأمین می‌کند.

زبانی که با زمان اجرا ZPE ترجمه می‌شود با نام YASS یا Yet Another Simple Syntax شناخته می‌شود.[۴] چندین زبان بر نحو YASS تأثیر گذاشتند از جمله C، PHP، جاوا، جاوا اسکریپت، VB. NET، C #. NET، SML و Python که تقریباً از نسخه ۱٫۵ به همان اندازه باقی مانده‌است. ZPE / YASS می‌تواند برای برنامه‌نویسی عمومی، پشتیبانی مشتری و ارتباطات سرور مورد استفاده قرار گیرد و می‌تواند برای اسکریپت نویسی سمت سرور استفاده شود. برخی از وب سایت‌ها از ZPE در کنار زبانهای دیگر مانند PHP[۵] استفاده می‌کنند.

محیط برنامه‌نویسی ZPE خود به زبان جاوا نوشته شده‌است و آن را چند پلتفرمی می‌کند. یک عارضه جانبی این است که پلاگین‌ها و اشیا built داخلی به‌طور کامل در جاوا نوشته شده‌اند.

در حالی که ZPE منبع بسته‌است، کتابخانه استاندارد منبع باز است و در خود YASS نوشته شده‌است.

امکانات

[ویرایش]

ZPE دارای بسیاری از توابع داخلی از جمله توابعی است که مسائل ریاضی را ساده می‌کند مانند عملکردهای بزرگتر از همه، توابع to_binary , to_octal و to_hexadecimal و همچنین بسیاری از توابع برای ساده‌سازی آرایه‌ها مانند list_process ، list_find_duplicates و list_auto_populate

ZPE همچنین دارای یک تجزیه کننده داخلی است که به عنوان ZenithParser شناخته می‌شود و پایه پردازنده کل زبان را تشکیل می‌دهد و هم تجزیه و تحلیل واژگانی و هم بهینه‌سازی کامپایلر را روی ورودی متن انجام می‌دهد.

در زیرمجموعه اصلی اختصاص داده شده به ZPE، یک صفحه اسناد وجود دارد که تمام عملکردهای داخلی و نحو آنها را مستند می‌کند.[۴]

ZPE در ابتدا به عنوان یک پروژه دانشگاهی برنامه‌ریزی شده ساخته شد که هرگز به نتیجه نرسید و در پایان به کار رفت و سرانجام به عنوان جایگزینی برای زبان BlackRabbit Script که جیمی بالفور در آن زمان در حال توسعه آن بود، مورد استفاده قرار گرفت. ZPE در اصل فاقد تجزیه ریاضی بود که به معنای استفاده از توابع برای جمع، تفریق، تقسیم و ضرب بود. نمونه ای از این نحو اولیه:

$x = 10
$y = 15

$z = add($x, $y)

print($z)

در اواخر سال ۲۰۱۵، هنوز در نسخه 1.3.x از ZPE، تجزیه کننده حالت واقعی ریاضی (RMM) اضافه شد. نحو تغییر کرد به گونه‌ای که شباهت زیادی به زبانهای دیگر دارد:

$x = 10
$y = 15

$z = $x + $y

print($z)

برای بهبود عملکرد، تجزیه کننده حالت ریاضی واقعی با تجزیه کننده منطقی و ریاضی (LAMP) در سال ۲۰۱۶ و سپس ارزیابی کننده منطقی و ریاضی (LAME) در سال ۲۰۱۹ جایگزین شد.[۶]

کتابخانه‌ها

[ویرایش]

ZPE / YASS برای گسترش عملکرد به کتابخانه‌هایی که در حال توسعه هستند متکی هستند. دلیل اصلی این امر کاهش اندازه بسته اصلی زمان اجرا است. برخی از کتابخانه‌ها به زبان YASS نوشته شده و سپس تدوین می‌شوند. سپس از طریق شبکه ZULE که در سال ۲۰۱۸ اضافه شده توزیع می‌شود.[۶]

کتابخانه‌های دیگر به زبان جاوا بومی نوشته شده‌اند. به عنوان مثال، از کتابخانه zpe_mysql برای افزودن ویژگی‌های MySQL به زبان از طریق استفاده از کتابخانه‌ای استفاده می‌شود که خود تقریباً ۶ برابر زمان اجرای اصلی است.

پانویس

[ویرایش]

منابع

[ویرایش]
  1. "ZPE Programming Environment information". ZPE Information. Retrieved 2019-02-02.[پیوند مرده]
  2. "ZPE Changelog". Jamie Balfour's Blog. Archived from the original on 3 September 2023. Retrieved 2020-10-21.
  3. ۳٫۰ ۳٫۱ "What is ZPE?". ZPE Documentation. Retrieved 2019-02-02.[پیوند مرده]
  4. ۴٫۰ ۴٫۱ "ZPE Programming Environment documentation". ZPE Documentation. Archived from the original on 3 September 2023. Retrieved 2019-02-02.
  5. "About this website". About this website. Retrieved 2020-07-24.
  6. ۶٫۰ ۶٫۱ "ZPE Changelog: ZPE Programming Environment Documentation :: jamiebalfour.com". ZPE Documentation. Archived from the original on 3 September 2023. Retrieved 2019-03-10.