بسم الله
من مخترع الكومبايلر ؟
من مخترع الكومبايلر ؟
جريس هوبر هو من اخترع كومبايلر compiler مكتمل
وكتبه بلـغة الـ ( الفورتران )
وهي اول لغة high level واستغرقت 18 سنه حتى ظهرت .
معلومة :
- لكل لغة خاصه بالكمبيوتر لها compiler .
الهدف من الـ compiler :
الهدف منه هو نفسه تعريفه وهو : التحويل من لغة عالية المستوى إلى لغة منخفضة المستوى .
مثال :
التحويل من لغة سي ++ , إلى لغة الاسمبلي .
- كون ان لغة السي ++ يفهمها الانسان وهي عاليه المستوى
- وكون ان لغة الاسمبلي صعبه على الانسان وقريبه إلى الآله وهي منخفضة المستوى .
شاهد الصورة لتفهم عمل الكومبايلر :
هذا الصورة توضيح بسيط عن عالم الكومبايلر وماهو عمله بالضبط .
الآن لنتكلم عن اقسامه , وينقسـم إلى اجزاء اساسيه وهي :
Input Routine:
و هو الجزء المسئول عن قراءة الحروف و الرموز من ملفات اللغة و اعطائها الى الـ Lexical Analyzer و يكون هذا الجزء معتمدا على نوع الآله .
Lexical Anaylzer:
و هو المسئول عن التعرف على الكلمات داخل الـ stream القادم من الـ input routine بهدف تحويل الكود الى مجموعة من الTokens كل منها يمثل جزء مفهوم من اللغة مثل IF و Then و Else فكل وظيفته هي التعرف على الكلمات الاساسية في اللغة و كذلك التعرف على المتغيرات (بغض النظر اذا كان تم تعرفها ام لا) و ايضا التعرف على الثوابت و الارقام و غيرها .
Syntax Analyzer :
و هو المسئول عن تجميع الـ Tokens من الـLexical Analyzer و تحويلها الى جمل و تحديد اذا كانت الجمل صحيحة ام لا على اساس مجموعة من الـ Production Rules التي يعرفها مسبقا و يحدد اذا كانت الجمل صحيحة و يحدد الاخطاء و اماكنها.
Semantic Analyzer:
و هذا الـ Module هو جزء من الـ Syntax Anaylzer و هو ينظر الى معنى الجمل اي انه مثلا يستطيع ان يتعرف على الاخطاء في الLogic الخاص بالبرنامج مثل تعريف متغير و عدم استخدامه او استخدام متغير بدون تعريف او استخدام متغير بدون قيمة ابتدائية
و يكون الـ Output من الـ Syntax Analyzer ما يسمى Quadruples و هو مايشبة الى حد ما الـ Assembly و ان كان مجرد لغة وسيطة يستطيع ان يفهمها الـ Code generator و يترجمها بسرعة الى لغة الآله.
Code Generator:
و هو الجزء الثاني الذي يعتمد على تصميم الالة فهو الذي يتولى تحويل الـ Quadruples الى Assembly او Machine Code
Code Optimizer :
و هو الذي يتولى مسئولية تطوير الكود و ازالة التكرار الذي يؤدي الى بطء التنفيذ و يعتبر اكثر الـ Modules في الـ Compilers تعقيدا و هو الذي يفرق Compiler عن اخر و يجعل Compiler رخيص و اخر غالي .
ـــــــــــــــــــــــ
الخميس أكتوبر 31, 2013 11:15 pm من طرف ستيفن هوبكنك
» رمضان مبارك
الإثنين يوليو 30, 2012 3:32 pm من طرف طالبة الفيزياء
» اقتراح للادارة !!
الثلاثاء يوليو 03, 2012 4:31 pm من طرف زهرة العلوم
» سلام خاص الى استاذي الغالي
الإثنين يوليو 02, 2012 4:12 pm من طرف زهرة العلوم
» نظائر الكلور
الإثنين يوليو 02, 2012 4:08 pm من طرف زهرة العلوم
» الصداقة الحقيقية
الإثنين يوليو 02, 2012 4:06 pm من طرف زهرة العلوم
» الابتسامة وفوائدها
الإثنين يوليو 02, 2012 3:58 pm من طرف زهرة العلوم
» العمليات الكيميائية لاستخلاص غاز الكلور
الإثنين يوليو 02, 2012 3:55 pm من طرف زهرة العلوم
» هل تعلم
الإثنين يوليو 02, 2012 3:45 pm من طرف زهرة العلوم