موضوع المناقشة الحالي هو المترجمات
فلنبدأ في مناقشته هذا الأسبوع.
Abeer Younis
3/27/2012 06:15:39 am

نبذة عن المترجمات:
من أجل تقليل التعقيد في تصميم وبناء البرمجيات, تم تصميم هذه البرمجيات من اجل القيام بأوامر بسيطة ولكنها تقوم بها بسرعة عالية. يتم بنائه بكتابة هذه الأوامر بلغة الآلة ولكنها عملية صعبة وتؤدي إلي حدوث أخطاء كثيرة فتم الاستعاضة عنها بلغات عالية المستوي High Level Languages هذه اللغات يمكن أن تكون بعيدة كل البعد عن لغة الآلة والتي لا يفهم الكمبيوتر غيرها, لذا كان لابد أن توجد وسائل لسد هذا الفراغ وهنا يأتي دور المترجم Compiler
فالمترجمات هي:
هو برنامج حاسوبي يعمل على تحويل وترجمة الشيفرات أو الترميزات المكتوبة بإحدى لغات البرمجة عادة ما تكون عالية المستوى إلى لغة أخرى، حيث نرمز إلى البرنامج قبل التحويل باسم لغة المصدر و بعد تحويله إلى أي لغة أخرى من لغات الحاسوب يسمى الناتج من عملية التحويل لغة الهدف أو الكائنات أو المخرجات. الهدف منها لإنشاء برنامج قابل للتنفيذ للغة يسهل على الحاسوب فهمها كلغة الآلة.
أثناء عملية الترجمة يقوم المترجم بتحديد وعرض &

Reply
Abeer
3/29/2012 08:57:38 am

عمل جيد ولكي يكتمل ارجو توثيق المصادر

Reply
Abeer A.Y.A
4/3/2012 05:31:08 am

مرجع:
مقالة من موقع:
1- http://www.compilers.net/paedia/compiler/index.htm
والمرخصة من قبل:
GNU Free Documentations License

2- http://en.wikipedia.org/wiki/Compiler

Abeer Younis
3/27/2012 06:22:07 am

أنواعها:
1- one-pass compiler
مترجمات أحادية الانتقال مثل المترجمات السابقة للغة باسكال حيث تنتهي الترجمات من انتقال واحد وبذلك فهي سريعة جداً.

2- Threaded code compiler
مترجمات شيفرات خيطية كمعظم تطبيقات ال FORTH وهي اختصار للجيل الرابع من لغات الكمبيوتر Fourth Generation Computer Language. ويمكن اعتبار هذا النوع من المترجمات كبرنامج بحث قاعدة بيانات. حيث يمكن استبدال سلسلة من الخيوط المعطاة برموز أو شيفرات ثنائية. قد تختلف مستوى هذا النوع من المترجمات ثنائية الأكواد. حيث تنقل بعض مترجمات الجيل الرابع من لغات البرمجة لبرامج لا تحتاج إلى نظام تشغيل.

3- Incremental compiler
وهي المترجمات الإضافية كالعديد من أنظمة لغة برمجة Lisp. يمكن أن تترجم الوظائف الفردية في وقت التشغيل والتي تتضمن وظائف التفسير. ويعود تارخ المترجمات الإضافية لعام 1962م. وتستخدم إلى الآن في نظم لغة برمجة Lisp.

Reply
Abeer Younis
3/27/2012 11:38:14 am

تابع أنواعها:
4- multi-pass compilers
يعد هذا النوع من المترجمات المتعددة الانتقالات حيث ينقل المصدر في منفدين اواكثر ،وهو أبطأ من
one-pass compiler ولكن كفائته عالية في الترجمة ،وله عدة أنواع:
• source to source compiler
• stage compiler
• just in time compiler

5- load and go compiler
موجود مباشرة في الذاكرة

6- optimizing compilers
يحقق الأمثلية للكود المترجم ويحدث في مرحلة generation code

Reply
ِAbeer Younis
3/27/2012 11:48:02 am

أهم وظائف المترجمات:

• تحويل البرنامج المصدري الخالي من الأخطاء إلى برنامج هدفي، مكون من مجموعة من التعليمات الثنائية وتتم عملية التحويل دفعة واحدة.
•اكتشاف الأخطاء الإملائية و النحوية والقيام بالتحليل اللغوي للبرنامج المصدري للتأكد من خلوه من الأخطاء.
• ربط الجمل الثنائية في البرنامج الهدف و ذلك بحسب العناوين الحقيقية للتعليمات و بناء ما يسمى بالبرامج التنفيذية Executable Program.
•يمكًن المبرمج للتعامل مع الجهاز .

Reply
عيده عبدالله
3/29/2012 08:25:54 am

يدعى البرنامج الذي يقوم المبرمج بكتابته بإحدى اللغات البرمجية، مثل Pascal، بإسم البرنامج المصدري، أو الشيفرة الأصلية Source Program. ولكي يتمكن الحاسوب من تنفيذ البرنامج، ينبغي على المبرمج أن يقوم بترجمة البرنامج إلى "لغة الآلة"، وهي اللغة التي يستطيع الحاسوب فهمها. إن الشيفرة الأصلية هي النسق الوحيد الذي يمكن للإنسان قراءته.يتم تنفيذ عمل المترجم من الشيفرة الأصلية إلى شيفرة الآلة بوساطة مترجم مستقل عن لغة البرمجة المستخدمة لكتابة البرنامج، حيث يقوم المترجم بتحويل الشيفرة الأصلية إلى شكل يدعى الشيفرة العنصر. وهناك ثلاثة أنواع رئيسية من المترجمات:
المجمعّات Assemblers
- المترجمات Compilers
- المفسّرات Interpreters

Reply
عيده عبدالله
3/29/2012 08:33:32 am

المجمعّات Assemblers
كان تطوير لغات المجمّع أحد أول الاختراعات الهامة في تاريخ اللغات البرمجية. وقد كانت هذه اللغات أول أداة ساعدت المبرمجين على عناء التعامل مع الأصفار والواحدات، ومكنتهم من استخدام تسميات برمجية ذات دلالة خاصة بالتعليمات والإجراءات. وكان أول مجمّع عبارة عن نظام يقوم بتمثيل تعليمات لغة الآلة برموز بسيطةيسهل تذكرها,كانت البرامج المكتوبة بلغة المجمّع أكثر قابلية للقراءة من الشيفرة الثنائية، على أنه كان ينبغي ترجمتها إلى لغة الآلة باستخدام برنامج حاسوبي خاص يدعى بالمجمّع
يقبل المجمّع برنامجاً مكتوباً بلغته ويعتبرها معطيات، ويحول رموز Opcode إلى مكافئاتها الرقمية، ويربط العناوين الرمزية بمواضع الذاكرة، ومن ثم يقوم بتوليد برنامج بلغة الآلة. يدعى برنامج لغة المجمّع بالبرنامج المصدري أو Source Program، يدعى البرنامج النهائي المكتوب بلغة الآلة بالشيفرة العنصر أو Object Program
وبما أن تعليمة واحدة من تعليمات لغة المجمّع تولد تعليمة واحدة أو عنصر م

Reply
عيده عبدالله
3/29/2012 08:36:25 am

المترجمات Compilers

المترجم هو برنامج خاص يقوم بتحويل برنامج من لغة مصدرية، إلى لغة الآلة، أي التشفير العنصر
يتميز المترجم عن المجمّع بحقيقة وحيدة، وهي أن كل تعليمة من تعليمات الدخل لا تكافئ تعليمة واحدة من تعليمات لغة الآلة، أو سلسلة متكاملة من التعليمات. هذا، ويمكن للمترجم دعم عدة ميزات، كالتحديد التلقائي لمواضع المتحولات، والتعابير الحسابية، وبنى التحكم، كحلقات FOR و WHILE، ومجالات رؤية المتحولات، وعمليات الدخل والخرج، والتوابع ذات الترتيب الأعلى ومحمولية التشفير المصدري
يتم الإعلان عن الخطأ إذا تم اكتشافه أثناء الترجمة، أما إذا كانت الأخطاء خطيرة، فقد يتوقف المترجم عن تتمة عملية الترجمة كلياً. إضافة، ينبغي على المترجم أن يتمكن من الدخول إلى مكتبة الإجرائيات أو البرامج الجزئية، حيث تتضمن هذه المكتبة العديد من البرامج والإجرائيات اللازمة لتنفيذ العمليات الحسابية، وعمليات الدخل والخرج، والتخزين الوقائي لنقاط تحويل المعطيات. وحيثما

Reply
عيده عبدالله
3/29/2012 08:39:46 am

المفسّرات Interpreters
المفسر هو برنامج خاص يقوم بتحويل برنامجاً بلغة مصدرية (أو لغة برمجية) مباشرة إلى صيغة تدركها الآلة. إلا أنه، وبأي حال، وعلى عكس المترجمات، لا يتم توليد ملف آخر، بل تتم ترجمة كل سطر من البرنامج، ويتم تنفيذه مباشرة قبل القيام بترجمة السطر التالي. وعند إتمام العبارة، تعود السيطرة إلى المفسر الذي ينفذ العبارة المنطقية التالية ضمن سلسلة تعليمات البرنامج. لهذا السبب، يتم توليد خرج البرنامج مباشرة من البرنامج المصدري، دون الحاجة لتحويل البرنامج إلى لغة الآلة
تعاني المفسرات من عدة مساوئ عند مقارنتها بالمترجمات
على المفسر أن يبقى في ذاكرة الحاسوب طوال عملية الترجمة؛
- المفسرات أبطأ بكثير
- يتم إنهاء تنفيذ البرنامج كلياً إذا تم اكتشاف خطأ ما

Reply



Leave a Reply.

    Author

    Dr. Shahinaz Mahmoud
    Assistant Professor of Instructional & Information Technology

    RSS Feed


Scholar Google