ملتقى طلبة ذ ي قار
أنت غير مسجل في منتديات طلبة ذي قار . للتسجيل الرجاء إضغط هنـا


ملتقى طلبة العراق الاول في عالم النت اهلا بك من جديد معنا يا زائر نرحب بك ونتمنى لك قضاء اجمل الاوقات معنا.
 
البوابةالرئيسيةالتسجيلدخول
شاطر | 
 

 المترجمات compilers

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل 
كاتب الموضوعرسالة
المبرمج ع ع ع
عضو


 sms عضو منتديات طلبة ذي قار
عدد المساهمات: 8
مميز طلبة ذي قار: 300
تاريخ التسجيل: 15/10/2010

مُساهمةموضوع: المترجمات compilers   الثلاثاء نوفمبر 16, 2010 11:59 pm

بسم الله الرحمن الرحيم

لا حطت ان معظم طلبة مادة ال compiler لا يفهم ماذا تعني هذه الماده في الاساس و ما اهميتها ؟
وهذه نقطه خطيره جدا ان ندرس ماده و لا نكون مدركين تماما الى اهميتها
لهذا احاول هنا محاولة تبسيط مفهوم ال compiler من خلال شرح عملي و سأترك الشروح النظريه للمستقبل او الي ما يخدم الهدف هنا وهو الوصول الى عمل compiler ومعظم ما اذكره هنا سيكون من خلال تجربتي الشخصيه في كتابة compiler . و سأشرح بطريقه ارجو ان يوفقني الله ان تكون مبسطه .

سأبدأ اولا بالاجابه عن اسئله شائعه عن ال Compiler مثل :-
1- ما هي مادة ال compiler
2- ما الفرق بين ال Compiler و ال interpreter؟
3- هل اذا كتبت برنامج يحول من لغة البيسك مثلا الى ملف تنفيذي EXE file اكون قد كتبت compiler ؟
4- هل اذا كتبت برنامج يقرأ كل كلمه من ملف و يترجمها الى لغه اخري في ملف اخر هل هذا compiler?
5- ما فائدة ال compiler لي انا اريد ان اصبح مبرمجاً و لا انوى عمل compiler ؟
6- هل يمكن كتابة compiler مصغر ؟


أولا : ما هي مادة ال compiler
هو برنامج يقوم بالتحويل من لغه الى اخرى – من لغه مصدريه الى اخرى مستهدفه و في المعتاد يكون التحويل من لغه عاليةhigh language الى لغه اخري في المعتاد لغه قريبه من لغة التجميع assembly او الى لغه و سيطه مثل p-code او object file
وهذه يعني التحويل من لغة السي بلس بلس c++ الى لغة التجميع مثلاً
أو لغة السي بلس بلسc++ الى لغة ا لبيسك BASIC مثلاً.

ثانيا : ما هو الفرق بين الCompiler و ال interpreter؟
ال interpreter يقوم بقراءة الملف المصدري سطر بسطر ثم يقوم بتنفيذ هذا السطر/الأمر و لا يقوم بعمل اي ملفات تحتوى على generated code كود منتج من الملف المصدر.
اما ال compiler فيقوم بإنتاج كود generating code.

ثالثا : هل اذا كتبت برنامج يحول من لغة البيسك مثلا الى EXE file اذا انا عملت compiler ؟
اهنئك اذا فعلت هذا. فأنت في هذه الحاله لم تكتب compiler فقط بل كتبت عدة اشياء مثل :-
Compiler
و
Linker
و ربما
Loader
ال compiler مرحله من مراحل متعدده لتحويل البرنامج المصدري الى برنامج تنفيذي

رابعاًً : هل اذا كتبت برنامج يقرأ كل كلمه من ملف و يترجمها الى لغه اخري في ملف اخر هل هذا compiler?

نعم . اذا توافرت شروط معينه.
- ما هي هذه الشروط للتأكد من كتابه compiler ذو جوده عاليه ؟
المرور بخطوات معروفه للتحويل من لغه الى اخري و تضمن عمليات
أ- التأكد من استخدام حروف معروفه و مفهومه و هذ يسمىlexical analyzer
ب- التأكد من ان الجمله مكتوبه بلغه سليمه. اي اعراب الجمله بشكل صحيح.وهذ يسمى syntax analyzer
ج- التأكد ان الجماه المكتوبه لها معنى و ليست ليس لها فائده وهذه يسمى semantic analyzer
ء- التحويل الى اللغه وسيطه intermediate language .
هـ- تحسين الكود المنتج code optimizer.
و- ثم اخراج الكود المستهدف في شكل نهائي code generation
وبهذه الخطوات تساعدنا في اكتشاف الاخطاء و كتابة compiler ذو جوده عاليه. مع ملا حظة اننا سنحتاج الى طريقه للتعامل في حالة وجود اخطاء اكتشفت في البرنامج من خلال Error handler
و سنحتاج ايضا الى طريقه لمساعدتنا في تتبع المتغيرات المختلفه في البرنامج symbol table
و تسمى هذه الخطوات phases of compiler طور تنفيذ ال compiler. و هذه الخطوات تساعد من يستخدم هذا ال compiler الا يقع في اخطاء في كتابة برنامج باستخدم لغة هذا ال compiler و تجنب حدوث خطا اثناء التنفيذ run-time error و اكتشاف خطوات اثناء كتابة البرنامج compiler time error.

و تعتبر الخطوات الثلاث الاولى هي محاولة فهم وتحليل الكود المصدري source code.
و هي موجوده في كلا من ال compiler و ال interpreter و تسمى هذه الخطوات الثلاث ال front end
اما الخطوات التاليه فهى خاصة بال compiler فقط و هى لانتاج كود وتسمى back end

خامساّ : ما فائدة ال compiler لي انا اريد ان اصبح مبرمجاً و لا انوى عمل compiler ؟
نعم و لكنك كمبرمج قد تحتاج الى :-
1-اجزاء من ال compiler في عمل برنامج اخر لا يمت بصله الى ال compiler مثل : محرر نصوص يحتوى على فحص للنحو الاعراب للجمل المكتوبه . وهنا ستجد ما تعلمته مفيد جدا
2-فهمك الجيد لطرق عمل ال compiler سيساعدك في كتابة كود افضل.
3- اذا اردت كتابة برنامج آله حاسبه متقدمه و اردت ان تتقوم بعمل parsing مثلا لتحقيقي اولوية المعملات paremeter pariorites
4- ...........و هناك الكثير و الكثير الذي ستكتشفه تباعا.

سادساً : هل يمكن كتابة compiler مصغر ؟
نعم و لم لا
الرجوع الى أعلى الصفحة اذهب الى الأسفل
!.هـمـسآتے رجْـلـے.! ,
المـراقب الـــعام
المـراقب الـــعام



 sms [
عدد المساهمات: 560
مميز طلبة ذي قار: 0
تاريخ التسجيل: 06/03/2009
العمر: 27
الموقع: العراق

مُساهمةموضوع: رد: المترجمات compilers   الجمعة نوفمبر 19, 2010 4:14 pm

thnak you

_________________

الرجوع الى أعلى الصفحة اذهب الى الأسفل
 

المترجمات compilers

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
ملتقى طلبة ذ ي قار  :: مــنــتــديــات طــلاب الــجــامــعــات والــمــدارس :: منتدى جامعة الامام الصادق ع :: ||كلية التكنلوجية ~ :: هندسة البرامجيات-