مستندات توسعه‌دهنده

PSScript

PSScript زبان اسکریپت کوچک و ایزوله‌ای است که در دل پلتفرم ParadicShift ساخته شده است. آن را درون گام‌های گردش‌کار می‌نویسید تا داده بسازید و ذخیره کنید، بر اساس ورودی‌ها شاخه بزنید، فرایندهای دیگر را فرابخوانید، با مدل‌های هوش مصنوعی گفت‌وگو کنید، ایمیل بفرستید و گردش‌کار را به جلو هدایت کنید — همه بدون خروج از طراح.

PSScript چیست؟

هر گام خودکارسازی در یک فرایند ParadicShift می‌تواند یک برنامهٔ PSScript را اجرا کند. اسکریپت یک‌بار به بایت‌کدی فشرده کامپایل می‌شود و سپس هر بار که گام اجرا می‌شود توسط یک ماشین مجازیِ درون‌حافظه‌ای اجرا می‌گردد. اسکریپت‌ها هرگز مستقیماً به ماشین میزبان دست نمی‌زنند: همهٔ اثرهای جانبی — نوشتن در پایگاه‌داده، ایمیل، HTTP و فراخوانی‌های هوش مصنوعی — از یک واسط میزبانِ کنترل‌شده عبور می‌کنند که اجرا را امن و میان نمونه‌های ابریِ پلتفرم قابل‌حمل نگه می‌دارد.

سطح کوچک

تعداد انگشت‌شماری کلیدواژه و دوازده شیء سیستمی — در یک بعدازظهر یادگرفتنی.

داده‌محور

موجودیت‌های درجه‌یک، هندسهٔ GIS، متن چندزبانه و یک سازندهٔ پرس‌وجوی روان.

ایزوله‌شده

بدون دسترسی مستقل به فایل یا شبکه — هر اثری از طریق میزبان میانجی‌گری می‌شود.

برگشت‌پذیر

یک بلوک اختیاری rollback به یک گام اجازه می‌دهد در صورت شکست گردش‌کار، خود را خنثی کند.

نخستین اسکریپت

کوچک‌ترین برنامهٔ معتبر یک بلوک main تنهاست:

minimal.pss
main {
    context$.log("Hello from PSScript.");
}

یک گام واقعی‌تر یک موجودیت می‌سازد، آن را ذخیره می‌کند، مقداری را برای گام‌های بعدی در دسترس می‌گذارد و گردش‌کار را به جلو هدایت می‌کند:

main {
    var order = PSEntity("com.domain.commerce.Order");
    order.identifier("ORD-2024-001");
    order.val("customerId", param$["customerId"]);
    order.val("total", 149.99);
    order.text("status", "en", "Pending");
    data$.persist(order);

    output$["orderId"] = "ORD-2024-001";
    router$.allow("payment_connector");
}

rollback {
    context$.log("Order creation rolled back.");
}

یک اسکریپت چگونه اجرا می‌شود

متن مبدأ پیش از تولید اثرهای جانبی از چهار مرحله عبور می‌کند. هر مرحله خطاها را با موقعیت دقیق line:col گزارش می‌دهد، بنابراین اشتباهات نگارش در زمان کامپایل گرفته می‌شوند نه میان اجرا.

Lexer توکن‌ها
Parser AST
Compiler بایت‌کد
VM اثرهای جانبی

کامپایل یک‌بار رخ می‌دهد. بایت‌کد حاصل را می‌توان بدون تجزیهٔ دوباره بارها اجرا کرد، که گام‌های پرحجم را سریع نگه می‌دارد.

ساختار برنامه

یک اسکریپت یک بلوک سطح‌بالای الزامی و یک بلوک اختیاری دارد:

بلوکالزامیزمان اجرا
main { … } بله گام گردش‌کار به‌طور عادی اجرا می‌شود.
rollback { … } اختیاری گردش‌کار یک گامِ پیش‌تر کامل‌شده را جبران / واگرد می‌کند.
میان‌بر اگر فایلی هیچ کلیدواژهٔ main یا rollback نداشته باشد، کل فایل به‌عنوان بدنهٔ یک بلوک main ضمنی در نظر گرفته می‌شود.

گام بعدی کجاست

مرجع به چهار فصل متمرکز تقسیم شده است:

مرجع زبان کامنت‌ها، مقادیر ثابت، متغیرها، عملگرها، کنترل جریان و مدیریت خطا.
اشیای سیستمی دوازده شیء $: ‏context$، data$، workflow$، ai$ و موارد دیگر.
موجودیت‌ها و پرس‌وجوها PSEntity، متن چندزبانه، هندسهٔ GIS و سازندهٔ PSEntityQuery.
نمونه‌ها اسکریپت‌های کامل و قابل‌اجرا برای الگوهای رایج گردش‌کار.