الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مصطلحات لابد لكل مبرمج ان يعرفها

مغلق
بدأه احمد غريب في 30 أغسطس 2005 · 9 رد · 1,019 مشاهدة · في الأخبار والنقاشات التقنية
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله تعالى وبركاته

لاحظت ان هناك خلط فى معانى بعض الكلمات, وهناك من لايعرف وظيفة الكمبايلر ويخلط بين الكمبايلر (المترجم) وبين الـIDE (بيئة التطوير).

كما ان هناك من لا يعرف وظيفة الlinker والفرق بين الكمبايلر والlinker الخ, لذلك اردت وضع الحروف على النقاط وتوضيح ما يحدث عند إنشاء ملف تنفيذى..

نبداء اولاُ بشرح الـIDE, وهى إختصار لكلمة Integrated Development Environment وتعنى بيئة تطوير مدمجه, وبالدمج يقصد دمجها معى المترجم(compiler) , وبرنامج الدمج (linker) . وفى اغلب الاحيان يوجد ايضاً resource editor و resource compiler مدمجه بداخل الـIDE.

لذلك تعتبر بيئة التطوير من الرفاهيات, تخفى عن المبرمج ما يحدث خلف الكواليس, فالمبرمج يستطيع كتابة البرنامج فى محرر نصوص ومن ثم يقوم بعملية الترجمة والدمج من خلال سطر الاوامر او ما يسمى بالعاميه الصفحة السوداء (console) . رغم ان الـIDE سهل على المبرمج وجعل عملية الترجمة والدمج تصبح مجرد إختيار كلمه من قائمه إلا ان التسهيل تسبب فى عملية الخلط وجعل المبرمج لا يعرف ما الذى يحدث فى الخفاء..

الـresource editor ايضاً تعتبر من الكماليات, عندما يقوم المبرمج بوضع زر فى نافذه او يختار ان يضع قائمة منسدله او اى كائن يضعه فى النافذه التى يقوم بإنشائها يقوم الـresource editor بتحويل هذه الكائنات إلى نص, وبذلك يستطيع المبرمج كتابة النصوص فى برنامج تحرير نصوص عادى مثل الـnotepad على سبيل المثال.

بعد ان ينتهى المبرمج من إنشاء ملف الشفره (code) وملف الـresource يتم تحويل هذه الملفات إلى ملفات object وهناك 3 انواع مشهوره فى بيئة الوندوز. ويرمز لها على النحو التالى:

coff وهى إختصار لكلمة Common Object File Format وتستخدم على نطاق واسع فى بيئة الوندوز وهى من إصدار شركة مايكروسفت.

omf وهى إختصار لكلمة Object Module Format وهى من إصدار شركة بورلاند وتستخدم ايضاً فى الوندوز واللينكس بواسطة دلفى.

.res وهى إختصار لكمة resource وتستخدم فى بيئة الوندوز ومتفق عليها من قبل جميع الشركات..

لإنشاء ملف object ليس من الضرورى ان تكون جميع المتغيرات او الدوال موجوده فى نفس الملف, عليك فقط ان تنبة المترجم ان المتغير موجود فى ملف اخر وسيتم إحضاره فى مرحلة الدمج (link) وبذلك تستطيع ان تضع متغيرات او دوال موجوده فى مكتبات خارجيه, وكل ما عليك عمله هو ان تذكر للمترجم كلمة external حتى لا يتوقف عن الترجمه, كذلك عندما تقوم بعمل ملف resource منفصل عن ملف الشفره المترجم لايقوم بإلإعتراض عليها..

اخر خطوه هى عملية الدمج وفى هذه العمليه يتم التحقق من وجود جميع المتغيرات, فعندما تدمج ملف resource معى ملف شفرة البرنامج يقوم برنامج الدمج بالمرور على جميع الدوال والمتغيرات فى الموجوده فى الملفات التى تحاول دمجها وإذا لم يجد البرنامج احد هذه المتغيرات يحتج برسالة خطاء وتسمى خطاء دمج او linking error , وهذا النوع من الخطاء يقع فيه المبتدء والمحترف على حد سواء..

وضعت هذه المشاركه فى قسم المقالات لانه موضوع مهم وهذا القسم يزوره اغلب رواد المنتدى, وإذا كان هناك اي إضافات فانا ارحب بها, كذلك إذا كان هناك اى إستفسار ايضاً.

والسلام عليكم

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#2

thnx man fot this info

#3

مشكور اخى على التوضيح

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#4

مشكور اخي على الرد

" سبحان الله والحمد لله ولا إله إلا الله والله أكبر "

#5

مشكورين يابتوعين الاسمبلي (h)

gaza3-3.jpg
#6

هلا أخوي الاستاذ أحمد

طيب عندي أستفسار الحين بعد ترجمة ملف الشفرة CODE سينتج ملف OBJECT طيب هل هذا الملف الناتج هو نفسه الملف obj.* ام هو ملف lib.*

لاني ألقى في الكتب يقولون سينتج ملف obj.* ومكتبات السي من نوع lib.*

وش الفرق ممكن تصحح لي هذه اللخبطة :rolleyes:

#7

شكرا لك على التوضيح

جزاك الله خيرا

There is a will there is a way

#8

السلام عليكم

اشكر جميع من شارك فى الموضوع ...

بالنسبه لسؤال الاخ bms الفرق ليس كبير بين ملف الobj وملف الlib كلاهما يحتوى على شفره تم تحويلها بواسطع المترجم إلى لغه الاله, ربما اهم فرق هو ان ملفات الlib تستخدم إما لإستدعاء دوال من ملفات dll وفى هذه الحاله ملف الlib يحتوى فقط على عناوين هذه الدوال فى ملف الdll الاصلى, وإما انها تحتوى على الدوال كامله ولا تحتاج للإستعانه بملف dll .

عندما يكون ملف الlib مجرد وعاء يحوى عناوين الدوال التى توجد فى ملف dll فى هذه الحاله يجب عليك ان ترفق ملف الdll معى برنامجك وإلا فلن يعمل البرنامج..

اما إذا كان ملف الlib مستقل بذاته فلن تحتاج لإرفاق اى ملف معى برنامجك لان الlinker سيقوم بدمج كل ما تحتاجه من ملف الlib فى ملف الexe .

ارجو ان تكون الصوره اتضحت...

والسلام عليكم

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#10

الف شكر ياباشا :rolleyes:

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

هذا الموضوع مغلق.

مواضيع مشابهة