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

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

اگر به دنبال ابزاری برای تبدیل سورس کد نوشته شده با زبان برنامه نویسی پایتون به جاواسکریپت ES6 هستید، 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،‌ به صفحه ی اختصاصی جاواسکریپتون در گیت هاب مراجعه نمایید. 

منبع


مرتضی صمدی