ماهو الـcompiler وtranspiler وinterpreter؟

ماهو الـcompiler وtranspiler وinterpreter؟

ماهو الcompiler وtranspiler وinterpreter؟ مالفرق بينهم ؟ ماهي لغات التي تستخدمهم ؟
في هذه  المقالة سأشرحهم باختصار وبشكل مبسط حتى يفهمه التقني والغير تقني .
compiler-1 :
يقوم بتحويل كود البرمجي للغات عالية المستوى high level language الى لغات منخفضة المستوى lower level language ومثال ذلك عندما نكتب كود باستخدام C++ والتي تعتبر لغة عالية المستوى باستخدام compiler يتم تحويله الى كود الالة machine code حتى يفهمه الحاسوب ويقوم بتنفيذه وتسمى هذه العملية بcompiling
interpreter-2:
يمكننا تعريفه ان وظيفته ارسالة مجموعة من الاكواد في كل مره الى الحاسوب ليقوم بقراءته وتنفيذه (في بعض الحالات يتم الارسال سطر بسطر ) ويعتبر اكثر تفاعلية مقارنة مع compiler الذي يقوم بتحويل الكود مصدري دفعة واحدة ويحفظه في ملف ليتم قراءته وتنفيذه من طرف الحاسوب وتسمى هذه العملية بInterpreting
JVM (java virtual machine) الخاص بجافا يعتبر interpreter، حيث يقوم بقراءة بايت كود ليرسله للحاسوب لتنفيذه في وقت التشغيل runtime ، من ناحية اخرى javac يعتبر كـcompiler يقوم بتحويل كود الجافا إلى بايت كود ثم يرسله للinterpreter (JVM) الذي بدوره يقوم بقراءته جزء جزء ليقوم بتنفيذه كما أسلفت الذكر .
transpiler-3:
يقوم بتحويل الكود البرمجي للغة عالية المستوى high level language الى لغة أخرى عالية المستوى ايضا وتسمى هذه العملية بTranspiling.
كمثال :typescript التي تم تطويرها من طرف شركة ميكروسوفت،تعتبر لغة عالية مستوى عن طريق transpile يتم تحويل الكود مكتوب بها إلى كود javascript حتى يفهمه المتصفح ويشغله.
مثال اخر :babel يعتبر transpiler، حيث يحول كود جافاسكريبت مكتوب بمعيار ES5+ الي كود جافاسكريبت بمعيار ES5 ليكون متوافقا مع كل المتصفحات
إذا الفرق بين compiling/interpreting و transpiling أن الـcompiling يتم تحويل الكود البرمجي إلى لغة منخفضة المستوى لتكون اكثر قابلية للقراءة والتنفيذ من طرف الحاسوب