همانطور که میدانید، کامپایلرها سورس کد ما که به یک زبان سطح بالا نوشته شده است را به یک زبان سطح پایینتر ترجمه میکنند. برای مثال، کامپایلر کدی که به زبان C نوشته شده است را به زبان اسمبلی ترجمه میکند. همچنین باید ذکر کنم که در زبان C، پس از ترجمه به اسمبلی، کد به زبان ماشین که میتواند مستقیماً روی سختافزار اجرا شود، ترجمه میشود.
اما ما نرم افزاری داریم که سورس کد را به یک سورس کد دیگر ترجمه میکند، به این نوع نرم افزار ها transpiler گفته میشود. برای مثال شما یک کد را به زبان پایتون نوشتهاید را میتوانید با برنامه مشخصی تبدیل کنید به زبان JavaScrip.
اگر به نظرتون Bash سینتکس سختی داره، خب کافیه C بلد باشین و کدتون رو به زبان C بنویسید، و با Pnut.sh به Bash ترجمه کنید!
البته محدودیت هایی وجود داره
- عدد اعشار, goto, switch ساپورت نمیشود.
- همچنین نمیتوان یک متغییر را رفرنس کرد(&)
البته باید در نظر داشت که Bash جایگزین C نیست. و خب هر چیزی که به C نوشته شده رو نمیشود به Bash ترجمه کرد. با این حال اینکار برای تبدیل بعضی از کد های ساده به یک کد پرتابل میتواند مفید باشد