قد لاحظت أن الكثير من الطلاب لا يعرفون الفرق بين المترجم
Compiler وبين بيئة التطوير المدمجة
integrated Development environment واختصارا
IDE، أيضا قد وجدت لديهم الكثير من المفاهيم الغير صحيحة في ملفات الرأس
Header File التي تنتهي بالامتداد (
.h) ، لذلك وضعت هذا الدرس لوضع النقاط على الحروف !
نبدأ أولا بشرح الـ
IDE بيئة التطوير المدمجة (أو المتكاملة) ، وسميت بذلك لأنه تم دمج المترجم
Compiler وبرنامج الدمج
Linker ، ومحرر النصوص
Editor ،،
مثال على الـ
IDE مثل
Turbo c++ أيضا
Borland c++ أيضا
Microsoft Visual c++ 6.0 أيضا
Dev – C++ (البيئة المفضلة لدي|37| ) ، أيضا في نظام لينوكس
Linux هناك
Kdevelop والكثير الكثير من الـ
IDE المتوفرة ،، بالطبع هناك فروق بين كل بيئة مع بيئة أخرى ، سنتحدث عن هذا المرة القادمة .
قديما ، قبل وجود هذه الـ
IDE ، كان على المبرمج أن يكتب الـ
Code في أي ملف مثلا ببرنامج
Notepad ويضع الامتداد .cpp (
لبرامج c++) أو الامتداد .c (
لبرامج الC) . ثم بعد ذلك يقوم بفتح المترجم ويقوم بترجمة البرنامج (
أي يقوم بتحويله إلى لغة الاله Machine Language) وينتج عنها ملف الهدف
Object File بالامتداد
.obj ، بعدها يقوم بفتح برنامج الدمج (
أو الربط) ليربط ملف الهدف الناتج بالمكتبات
Library ، بعدها تقوم بتنفيذ البرنامج على حده ،، مشوار طويل جدا ، أليس كذلك |26| |26|
حاليا بيئات التطوير وفرت عليك كل شيء من مترجم وبرنامج الربط ومحرر للنصوص ،، لذلك تعتبر هذه البيئات من الرفاهيات ، فهي تخفي عن المبرمج كل هذه الخطوات بمجرد الضغط على
Build ، أيضا محررات النصوص تقوم بتلوين الكلمات المحجوزة والسلاسل النصية بألوان مختلفة ، قمة الرفاهية ...
رغم أن الـ
IDE سهل على المبرمج وجعل عملية الترجمة والدمج تصبح مجرد اختيار كلمه من قائمه إلا أن التسهيل تسبب في عملية الخلط وجعل المبرمج لا يعرف ما الذي يحدث في الخفاء
ألان ، ماهي ملفات الرأس
Header File وماذا تحتوي ؟؟ ما هي المكتبات Library ؟؟
ملفات الرأس مثل
iostream.h ، أو
math.h ، هي ملفات تحتوي بداخلها على الإعلان عن الدوال والطبقات المستخدمة ،، لاحظ فقط الإعلان
declaration ويسمى أحيانا
Prototype .
التعريف عن هذه الدوال يكون داخل ملفات المكتبات
Library (
وأحيانا ملفات DLL) . وعندما نترجم البرنامج ويبدأ برنامج الدمج بالعمل يقوم بالربط بين ملف الهدف مع هذه المكتبات.
دائما ما نلاحظ أن أول سطر في برنامج
C++ يبدأ بهذا السطر ؟
كود:
#include <iostream.h>
ماذا تعني هذه الجملة .. في البداية الرمز
# (
هاش Hash) هو احد توجيهات المعالج التمهيدي
Preprocessor Directive.. هناك الكثير من هذه الجمل في لغة الـ
C ، وأيضا تستخدم في
C++ لكن قل استخدمها عما كان . نعود إلى الرمز
# ، هناك جزء صغير من المترجم يسمى "
المعالج التمهيدي Preprocessor " هذا الجزء يعمل دائما عندما نبدأ في ترجمه البرنامج ، أي يعمل أولا ثم يبدأ المترجم في عمله ، وظيفته هي ترجمه التوجيهات (
أي جمله تبدأ ب#) إلى احد الأوامر الخاصة ، بعد أن يقوم بتحويلها يقوم المترجم بأداء عمله ..
الكلمة
include ، معناها تضمين ، "
أي قم أيها المعالج التمهيدي بتضمين ملف الرأس هذا إلى الـ Code Source" ، ماذا يعني هذا ؟؟ بكل بساطه يقوم المعالج بنسخ
Copy ملف الرأس ولصقه
Paste في بداية ال
Source Code .
<iostream.h> ، هذا هو ملف الرأس بالامتداد
.h ، القوسين الصغيرين
< > وظيفتها إعلام المعالج بأن هذا الملف يقع في المكان المعتاد له .. وفي الأغلب هو في البارتيشن
C داخل مجلد بيئة التطوير (
يختلف اسم المجلد من بيئة لأخرى ، لكن في الأغلب يكون هو نفسه اسم البيئة) هناك مجلد اسمه
Header File يحتوي على جميع ملفات الرأس .
أيضا من الممكن كتابة السطر الأول بالشكل /
كود:
#include "iostream.h"
القوسين
" " ، وظيفتهما إعلان المعالج بأن يبحث عن هذا الملف داخل مجلد الذي حفظ فيه
الSource Code ، وإذا لم يجده يقوم بالانتقال إلى المجلد المعتاد .
مثلا كتبت برنامج وملف رأس خاص بك وحفظته داخل البارتيشن
D ، يقوم المعالج بالبحث عن ملف الرأس داخل هذا المجلد فإذا لم يجده انتقل إلى المجلد المعتاد داخل الـC . هذه الطريقة قد تزيد من وقت ترجمه البرنامج (
لان هناك عمليه بحث ) ، لكنه ليس بالوقت الكثير .
سنكتفي بهذا ، والمرة القادمة سوف تنتاول بيئات التطوير والفرق بينهم ، وما هي مقاييس لغة C و C++ ، وكيف نكتب برنامج قياسي 100% . وما الفائدة من القياسية Standards .
اي تعليقات او اسئله ..... |119| |119|
WrittenDate : 24/ 4 /2006