نویسنده(های) اصلی | Sebastian McKenzie |
---|---|
توسعهدهنده(ها) | توسعه دهندگان |
انتشار پایدار | 7.8.6
/ ۲۷ فوریه ۲۰۲۰[۱] |
مخزن | |
نوشتهشده با | جاوا اسکریپت |
سیستمعامل | لینوکس, مک, سولاریس, فری بیاسدی, اپنبیاسدی, آیبیام ایآیاکس, مایکروسافت ویندوز |
نوع | کامپایلر |
مجوز | امآیتی[۲] |
وبگاه |
بابل (به انگلیسی: Babel) یک کامپایلر مبدا به مبدا آزاد و متنباز جاوا اسکریپت است که عمدتاً مورد استفاده برای تبدیل کد اکمااسکریپت ES6 به بالا به نسخه های جاوا اسکریپت است که می تواند توسط نسخه های قدیمی تر موتوری های جاوا اسکریپت اجرا شود . بابل یک ابزار محبوب که برای استفاده از جدیدترین ویژگی های زبان برنامه نویسی جاوا اسکریپت مورد استفاده واقع میشود.[۳]
توسعه دهندگان می توانند با استفاده از ویژگی های جدید زبان جاوا اسکریپت و با استفاده از بابل برای تبدیل کد منبع خود به دیگر نسخه های جاوا اسکریپت تبدیل کنند که این نسخه ها روز به روز در حال تحول میباشند.[۴] هسته نسخه بابل از ۵ میلیون بار در ماه در سال ۲۰۱۶ افزایش چشمگیری به ۱۶ میلیون بار در هر هفته درسال ۲۰۱۹ داشته است.[۵][۶]
افزونههای بابل برای تبدیل نحوهایی که به طور گسترده پشتیبانی نمیشوند به نسخههایی که قابلیت پشتیبانی گسترده تری دارند استفاده میشود. برای مثال توابع آرایه که مشخص شده در نسخه ES6 است میتواند تبدیل به یک تابع قابل استفاده و منظم در نسخه دیگر شود.[۷] نسخهBهای غیر استاندارد جاوا اسکریپت مانند JSX نیز میتواند تبدیل شوند.[۸][۹]
بابل یک محیط چند منظوره را برای پشتیبانی از ویژگیهایی که به طور کامل در محیط های جاوا اسکریپت وجود ندارد فراهم می کند؛ به عنوان مثال، روشهای ثابت مانند Array.from
و داخلی مانند Promise
فقط در ES6+ در دسترس هستند ، اما در صورت استفاده از بابل، میتوان از آنها در محیط های قدیمی استفاده کرد. [۱۰]
تفاوت بین کامپایلر های بین زبانی (transcompiler) و کامپایلر های معمولی (compiler) این است که کامپایلر کد منبع یک زبان برنامهنویسی خاص را میگیرد و آن را به کد قابل اجرای سطح ماشین تبدیل میکند درحالی که کامپایلر بین زبانی کدمنبع یک زبان برنامه نویسی را دریافت میکند و آن را به کد منبع یک زبان برنامه نویسی دیگر تبدیل میکند. این کد جدید تولید شده قابل اجرا شدن بر روی سخت افزار نیست بلکه این کد برای توسعهدهنده در زبان برنامه نویسی دیگر تولید شده است. به عنوان مثال میتوان کد منبع زبان برنامه نویسی سی شارپ را به کامپایلر بین زبانی داد و در خروجی کد منبع زبان برنامه نویسی دیگری مثل سی پلاس پلاس را داشت.