JavaScripthon: ابزاری برای تبدیل کدهای پایتون به جاوااسکریپت

JavaScripthon: ابزاری برای تبدیل کدهای پایتون به جاوااسکریپت

اگر به دنبال ابزاری برای تبدیل سورس‌کد نوشته شده با زبان برنامه‌نویسی پایتون به جاوااسکریپت ES6 هستید، JavaScripthon ابزاری است که این کار را به سادگی برای شما انجام خواهد داد. این مفسر با ساز و کار جالبی که دارد، فرایند تبدیل کدهای پایتون به جاوااسکریپت را انجام می‌دهد. 

JavaScripthon ظاهراً قصد ایجاد یک ابزار ساده و کوچک برای تبدیل کدهای پایتون به جاوااسکریپت را داشته و نه یک برنامهٔ کامل و جامع.

اهداف جاواسکریپتون چیست؟
یکی از اهداف این مفسر این است که اکثر تعاریف و دستورات اصلی پایتون 3.5 را به جاوااسکریپت تبدیل کند. برخلاف اکثر ابزارهای موجود، JavaScripthon روند تبدیل پایتون به جاوااسکریپت را بدون برخورداری از محیط توسعهٔ نرم‌افزار کامل انجام می‌دهد (یک محیط کامل، شامل ادیتور، کامپایلر، مفسر، دیباگر و غیره است). هدف دیگر، تولید کدی است که به راحتی توسط دولوپرها خوانده شود (اگر هم نیاز باشد، برای تبدیل ES6 به ES5 می‌توان از لایبرری BabelJS به همراه مفسر جاوااسکریپت‌اش نیز کمک گرفت).

JavaScripthon قابلیت تولید کد به صورت ماژول‌هایی تکی یا ساختارهای درختی کامل را دارد (بدون الحاق یا خلاصه‌سازی سورس‌کد). اگر می‌خواهید کدهای تفسیر شده به جاوااسکریپت را دیباگ کنید، این کار از طریق SourceMap تولید شده با جاواسکریپتون، آسان‌تر می‌شود.

چگونه JavaScripthon را نصب کنیم؟
برای نصب JavaScripthon، باید ابتدا پایتون 3.5 را نصب کرده باشید. سپس دستور زیر را اجرا کنید:

$ pip install javascripthon

تفاوت کامپایل با ترجمهٔ مبدا به مبدا این است که در نوع اول، زبان سطح بالا به زبانی سطح پایین و قابل‌فهم برای ماشین ترجمه می‌شود ولی در در نوع دوم، بدون تغییر در سطح زبان، فقط تغییر در زبان مورد استفاده صورت می گیرد. با این توضیحات، برای کامپایل و یا ترجمهٔ مبدا به مبدا یک ماژول نوشته شده با پایتون، یک از دستورات زیر را وارد کنید:

$ python -m metapensiero.pj source.py

یا:

$ python -m metapensiero.pj -5 source.py

به عنوان یک مثال واقعی، کد پایتون زیر را در نظر بگیرید:

x < y <= z < 5

def foo():
    return [True, False, None, 1729,
            "foo", r"foo\bar", {}]


while len(foo) > 0:
    print(foo.pop())


if foo > 0:
    ....
elif foo < 0:
    ....
else:
    ....

str(x)

که توسط جاواسکریپتون به کدهای جاوااسکریپت به صورت زیر در آمده است:

((x < y) && (y <= z) && (z < 5))

function foo() {
    return [true, false, null, 1729,
            "foo", "foo\\bar", {}];
}

while ((foo.length > 0)) {
    console.log(foo.pop());
}

if ((foo > 0)) {
    ....
} else {
    if ((foo < 0)) {
        ....
    } else {
        ....
    }
}

x.toString()

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

منبع


مرتضی صمدی