كيف يعمل المترجم في لغات البرمجة؟؟

هل يحول اللغات عالية المستوي مثل سي والجافا الي لغة الالة مباشرة؟

ام يحولها الي الاسمبلي ثم الي لغة الالة؟

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

اكواد الجافا يتم تحويلها الى لغة تسمى byte-code ومن ثم يتم تحويلها الى لغة الالة.

شكرا لك ^_^

لا شكر على واجب

حسب ما أعلم، فإنه يحول خوارزمية لغة البرمجة، إلى لغة التجميع، ومن ثم يحيلها إلى المجمّع المثبت بنظام التشغيل، فيحولها إلى لغة الآلة. هذا بالنسبة إلى لغة السي.

أما بالنسبة إلى لغة الجافا، فهي تُترجم إلى لغة الآلة الوهمية، وليس إلى لغة المعالج.

شكرا لك ^_^

الى لغة الألة مباشرة. لكن يحولها أيضا الى لغة الأسمبلى اذا طلبت ذلك. و بعض المترجمات مثل مترجم بورلاند يكتب لك ملف Assembly.

عموما لغة الأسمبلى الى لغة الألة هي خطوة الية جدا, فلكل تعليمة مقابل لها في لغة الألة بشكل يشبه الجدول, و لا تخلط بين المجمع عالى المستوى مثل MASM و TASM على سبيل المثال (و التي تستطيع بداخله استخدام الfunctions و المتغيرات, و مجمع لغة الالة مثل debug و التي تكتب بداخله تعليمة مباشرة يتم تحويلها أليا الى كود الالة المقابل لها).

شخصيا أعتقد ان كل مترجم يقوم بالترجمة الى لغة التجميع "داخليا" ثم الى لغة الألة تسهيلا على المبرمج. 

شكرا لك ^_^

اضن انني قرأت في احد المقالات ان المترجمات مثل مترجم php . هو zend engine . تقوم قبل تنفيذ الكود با تحليله و ترجمة كل كلمة فيه ثم ما>ا يحدث بعد هذا لا ادري . ملاحضة : مترجم php مبرمج با لغة c

مش سطر سطر؟

لانها تستخدم مفسر interpreter و ليس مترجم compiler لدى ملفات php لا تترجم الى لغة الآلة و لكن تبقى بصيغتها الاصلية و المفسر يقوم بترجمتها اولا الى لغة الآلة و من تم تنفيدها . و هذا يسبب بطىء في التنفيد طبعا .

في .NET يتم تحويلها للغة وسيطة تسمى Intermidiate Language من ثم أثناء وقت التشغيل يأتي مترجم JIT و يحول تعليمات الـ IL إلى لغة الألة.

tasyjean أضف ردا

نظريا يتم التحويل للغة الالة

عمليا يتم التحويل الى لغة وسيطة intermediate language كال c او الى تمثيل وسيط intermediate representation ليقوم بعمليات تحسينه optimization ثم يتم التحويل للغة الالة