مفهوم الـ Compiler والـ Interpreter ؟ وما الفرق بينهم ؟ - محمد كمال فرج الله
- التفاصيل
- الزيارات: 11559
العلم المُهتم بدراسة الـ compilers اسمه Compilers Construction بناء المترجمات , ويندرج تحت تخصص علوم الحاسب .
الـ compilers بحد ذاتها هي "برامج" يتم برمجتها بأي لغة وأهم وظائفها هو إكتشاف الأخطاء بالـ source code .
مفهوم الـcompiler مرتبط مع المبرمجين بتحويل الـsource code للـmachine code فقط ! والصح أن الـCompiler يترجم من لغة لأي لغة اخرى .
مثلًا فيه compilers خاصة بالتحويل من لغة java للغة C# .. وهكذا، يعني عمل الـcompiler غير محصور بالتحويل للـmachine code فقط .
الـCompiler يندرج تحت مفهوم الـlanguage processor "مُعالجات اللغة"ومعناه البرامج اللي تقوم بمعالجة الاكواد (اكتشاف اخطاء مثلا) .
الـ Compiler اللي يقدم خدمة التحويل من لغة للغة اخرى (مثلًا من جافا للغة سي) يسمى : source-to-source translator .
الـCompiler يتميّز بسرعته في تصدير او إنشاء الـ target program .
الـCompiler في تعامله مع الكود له نظرتين او حالتين، حالة الـsyntax، وفي حالة الـsemantic .
الـsyntax معناها مدى توافق الكود مع القواعد التي تم تعريفها للغة (هيكلة البناء) مثلًا لو نسيت أكتب ; حيطلع خطأ
يعني في الجزء هذا يكتشف الأخطاء المرتبطة بالـ syntax فقط !
الـsemantic: تهتم بالمعنى الخاص بالكود، مثلًا اذا قرأ كلمة while سيفم إن اللي بعدها loop، وهكذا، فيهتم بتصحيح المعنى
من الأشياء التي لا يتعامل معها الـCompiler
١- الفراغات
٢-التعليقات
٣-الأكواد الخاصة بمكتبات اللغة .
كل هذا يتجاهله ..
Interpreter: يعمل execute لبعض الاوامر في الكود(يتم تحديدها من المستخدم)، او كأنه يمشي على الكود سطر سطر ويعرض الـoutput
بعض اللغات تستخدم Compiler وبعض منها يستخدم Interpreter، لكن لغة الجافا تستخدم كل النوعين وهذا إيجابي في الجافا
و تسمى هذه العملية Hybrid compiler
هذا المقال للأخ محمد كمال فرج الله