1-1 احملاضرة األوىل تطور لغات الربجمة و أساليبها مقدمة عن لغات الربجمة: Prgramming Languages Intrductin نعلم أن دراسة علوم احلاسب تنقسم إىل قسمني مها: - العتاد.Hardware - الربجميات.Sftware ولتسهليا الاراسههة جتههتم ل قههة لهها قسههم علههي ههات. هتم تقسههيم العتههاد إىل و ههاات اخدلههاحد و ههاات اخلههحاةد و و هها النظههام كانةونههة ةههع و هها انعا ههة انحل جتههة و و هها الهه الح ظ. ول تقسههيم الربجميههات إىل نظههم الت هه ياد لغااات الربجمااةد والرباةج التطبيقية. لغات الربجمة: تنقسم ل ات الربجمة بصفة عاةة إىل ةستوجتني أساسني مها:.Lw-Level Languages.High-Level Languages - ل ات انستوى اننخفض - ل ات انستوى العايل وابلطبع هناك ارق لبري بني هه جتع انسهتوجتني ا اخةةانيهاتد وسهلولة التعاةها ةهع احلاسهبد ابخ ها ة إىل سهلولة تعلهم الل ة و لملا. ومبا أن ل ات انستوى العايل تستخام للمات إجنلي جتة ةعينة ورةهو رض هية ةألو هةد لهأ أسهلا ا تعلملها و لملا. 1-1-1 لغات املستوى املنخفض Lw-Level Languages تنقسم ل ات ه ا انستوى إىل قسمني مها:.Machine Language.Assembly Language - ل ة اآللة - ل ة التجميع لغة اآللة Machine Language ههأ أوح الل هات لهورد وههأ الل هة الو يها الهي جتفلملها احلاسهب ةبانهح دون وسهيم. وتتةهون ةهع رةه جتع مهها: الصهفح و الوا ا.هه ان الحةه ان جتعهربان عهع اخواةهح انختلفهة والبيهامت الهي جتتةهون ةنلها الهربمةج. إ أن هه ت الل هة هعبة الههتعلم ولا ههة أن لةهها اسههب ل ههة هلههة لا ههة بههاد وتتطلههب ةعحههة واسههعة ا تصههميم احلاسههبد ابخ هها ة إىل ههعوبة الت اف اخلطاءد مما أدى إىل تطوجتح ه ت الل ة إىل ل ة التجميع. 1
لغة التجميع Assembly Language تعتمها ههه ت الل ههة علهي الحةههو انخت لههة علي ا معد و MOV أي التصهارات لةلمههات مات ةههالوح ل ههوي ههاد ة هها: ADD تههاح تاح علي النقاد وهة ا...د مما جعا تعلم ه ت الل ة أسلا نسبيا ةع ل ة اآللةد ابخ ها ة إىل سهلولة الة هن عهع اخلطهاء وتصهويولا. ولةهع الهربمةج ا هه ت الل هة جتهتم لميعها وةوجتلها إىل ل هة اآللهة عهع حجته ةها جتسمي ابجملمع.Assembler مما جتؤلا أن احلاسب جتتعاةا ةبانح إ ةع ل ة اآللهة. وةهع ملهب تبقهي هه ت الل هة عبة التعلمد وهلا عيوب ةع أبح ها ارتبا لا ابآللة د ةا هلة هلا ل ة لميع لا ة هبهاد وجتقصها ابآللهة هنها ةاجتهاا انعها Prcessr أو انعا الص ري.Micrprcessr بناء علي ةا سب نقوح إن لتابهة الهرباةج بل هات انسهتوى انهنخفض تعتمها علهي ةعح هة واسهعة ابلتصهميم الهااللأ للواسههب كانعا ههاتد انقا عههاتد ةسههارات البيههامتد عنههاوجتع الهه الح د... ظ. ممهها جعهها العلمههاء جتفةههحون بل ههات تعهه ح انربةج نسبيا عع التصميم الااللأ للواسب. 2-1-1 لغات املستوى العايل High-Level Languages تعتمها هه ت الل هات علهي للمهات إجنلي جتهة وا هوة انهالوح ة ها: print, writeد read, input, ول ع ح انربةج عع ة قة اخلوض ا ةتاهات التصميم الااللأ للواسبد ممها سهلا تعلهم هه ت الل هات واخقبهاح عليلها حلها ان هههالا والتطبيقهههات العلميهههة والتجارجتهههة وتريهههها. إ أن تنفيههه الهههربمةج هبههه ت الل هههات تهههاة إىل ل هههن اخلطهههاء وتتبهههع التعليمات لطو ةا جتسمي ابنرتجم لطو وملب عع حجت ةا جتسمي ابنفسح Interpreter مث تحمجتا وةوجتلا إىل ل ة اآللهة عهع حجته.Cmpiler واآلن ميكن إجياز مميزات لغات املستوى العايل فيما يلي: عهام ا رتبهامب مبعا هات ةعينهة ة ها ل هات التجميهعد وملهب خن هه ت الل هات ةصهممة أساسها حلها اد ةع ان الا وليست لنوعية اد ةع انعا ات. نوعيهة سهلولة تعلملها وسهلولة لتابهة الهرباةج يلهاد وملهب سهتخااةلا للمهات وتعبهريات ة هاهبة نها جتسهتخاةا اخنسان. سلولة الت اف اخلطاء وتصويولا. تو ري ا لا والوقت ال ي لان جتقوم با انربجمون عنا لتابة الرباةج بل ة اآللة أو ل ة التجميع. أةا الل ات الي لحت ا ه ا انستوى لأ ل ري جاا د ةع أبح ها وأنلحها: الفورتحان frtran pascal د الباسةاح basic د البيسب cbl د السأ c د...اخل. د الةوبوح 2
وميةههع أن نطلهه علههي ههه ت الل ههات طيهها ل ههات لطيههة بسههببلويهها تعتمهها علههي التعليمههات واخواةههح انتسلسههلة وانحتبة والي تتوا ةع اخلوار ةيهة. وقها تفا هلت هه ت الل هات يمها بينلها ةهع يها القهو والسهلولة ةانهت ل هة البيسهب Basic هههأ الل ههة اخل ههح نههلح ونههعبيةد وعا م ةههة ا سههتخاام ميههع انبتههاقني ا الربجمههة. وقهها انههتقت حو لهها ةههع احلحوف اخوىل للعبار اآلتية: Beginners All-Purpse Symblic Instructin Cde وتعه:: ل هة التعليمهات الحة جتهة انتعهاد اختهحاض للمبتهاقني. لهحت هه ت الل هة ا السهتينات ا لليهة جاةعيهة ا الهو ضت انتوها اخةحجتةيهةد مث هورت ةهع قبها ةعلها انقهاجتي اخةحجتةيهة ANSI عهام 1968 مد وةهع أههم اخ هااراتلانهت.QBasic بقيهت هه ت الل ههات الربجميههة بةا هة أنواعلهها هعيفة ةههع يها واجلهات الهرباةج الهي تن ه لاد والواجلهات انقبولههة تتطلب لتابة ه ف اخسطح أثناء تصميم الربمةجد مما د ع ال حلات لتطوجتح ه ت الل ات إىل ل ات ةحقيةد ولصو ا بعا لور نظهام النوا ه windws اله ي جتهاعم البي هة الحسهوةية كInterface Graphicalظد User ا هه ت اآلونة لحت الل ات انحقية ة ا: يجوح بيسبد الالفأ ك يجوح ابسةاحظد يجوح سأ++ د...إخل. Visual Basic, Delphi, Visual C++, etc. وقههها تبنهههت نهههحلة ةاجتةحوسهههو ت ل هههة الربجمهههة Qbasic لتةهههون نهههوا لل هههة بيسهههب انحقيهههة ك يجهههوح بيسهههبظ Visual Basic وأ بوت ل ة د وقها لهح أوح إ هاار هلها عهام 1991 م وةها جته اح التوهاجتا جهارض علهي هه ت الل هة ه اآلن. Visual Basic ا إ ااراهتا احلاجت ة ةصممة للةاقنات كObjectsظ. وا ه ا انقحر سيتم نح ليفية التعاةا ةع ه ت الل ة ا اخ اار.Visual Basic.Net 2010 تبني لنا مما سبق أن لغات الربجمة عالية املستوى تنقسم إىل قسمني مها: لغااات يطيااة: تعتمهها علههي لتابههة اخواةههح والتعليمههات علههي نههةا لطههوات ةحتبههة وةنتليههةد وههه ت اخلطههوات هها تحمجة للخوارةيةد ة ا: البيسبد الفورتحاند الباسةاح د السأ وتريها. لغات مرئية: تعتما علي الةاقنات أو اخدوات واخ ااثد يا جتتم الهرتابم بهني الةاقنهات بعمليهات بحجميهةد مث جتتم تنفي ان حوع عع حجت اخ ااثد ول لب تسمي Event-driven Prgramming ل ة بيسب انحقية ابلل ة انوجلة ابخ ااث: أو اللغة املسرية ابألحداث أي اللغة اليت تنفذ تعليماهتا وإجراءاهتا عند ايتيار األحداث واحلدث هو كل أتثري يتم على الفأرة أو لوحة املفاتيح مثل: Click أو Duble click أو غريها من األحداث. 3
تطور أساليب الربجمة Evlutin f Prgramming Styles لقا ةحت أساليب الربجمة ب الث ةحا ا: - الربجمة الع واقية Spaghetti Prgramming - الربجمية اهليةلية Structured Prgramming - الربجمة ال ي ية Object Oriented Prgramming 1. الربجمة العشوائية أو املكرونية Spaghetti Prgramming 4 جتحلههه هههه ا اخسهههلوب ةهههع الربجمهههة علهههي ههها انسهههألة بحجميههها وةقيههه اهلهههاف دون النظهههح إىل عمليهههة تنظهههيم الربمةجد وا ه ت احلالة جتعاين الربمةج ةهع هعوبة ا التطهوجتحد وةهع هعوبة ا الت هاف اخلطهاءد ورمبها صها تةحار ا بعض انقا ع الربجميةد لما أن استخاام اخةح Gt التنفي ل لب جاء تعبري الربجمة انةحونيةد وا ه ت احلالة جتنظح للربمةج لأنا لتلة وا ا. بة ح جتعي لم الربمةج و عوبة تتبع لطوات وهههه ا اخسهههلوب تظلهههح ة هههاللا إ إما لهههان الهههربمةج لبهههريا و هههخما د أةههها ا الهههة الهههرباةج التارجتبيهههة البسيطة رمبا جتةون ةناسبا د خنا 2. الربجمة اهليكلية: تاة إىل ل قة. Structured Prgramming جتعتمها ههه ا اخسههلوب ةهع الربجمههة علههي ل قهة الههربمةج إىل عهها بهحاةج حعيههةد يهها جتهتم الههحبم بههني ههه ت الرباةج الفحعية لت ةا الربمةج العام. وانقصود ابلرباةج الفحعية. prcedure أو functin تاة ه ا اخسلوب إىل ختطيم جياد وتظلح اعليتا ا الهة انسهاقا انتوسهطة احلجهم والهي تطهح علهي الطههالب ا انح لههة ا اةعيههةدلمهها أن ههه ا اخسههلوب جتسههلا ةههع الت ههاف اخلطههاءد وإجههحاء عمليههات التطههوجتحد وعام تةحار انقا ع.3 الربجمة غرضية التوجه: Object Oriented Prgramming تاعي أجتضا ابلربجمة ال ي ية أو الةاقنية اننوي وهأ الربجمة الي ةالأ الواقع. جتعتمههها هههه ا اخسهههلوب ةهههع الربجمهههة علهههي بنهههاء الةاقنهههات الهههي تضهههم البيهههامت واخجهههحاءات د ومجلهههة تهههحابم الةاقنات ت ةا ان حوع. ما هي الربجمة غرضية التوجه لحت الربجمة تح ية التوجا OOP ا بااجتة السبعينات ةع القحن انا أد يا بات احلاجة ةاسهة هلاد بعا أن واجلت الربجمة اهليةليةكاخجحاقيةظ عا ة الا ةنلا: البيامت تري احملميةد عهام القهار علهي الها الواقعد عوبة تقسيم الربمةج إىل إجحاءاتد عام القار علي إعاد ا ستعماحد وتريها ةع اخسباب.
قا جتتصور البعض أن الربجمة تح ية التوجا إمنا هأ ل ة بحجمية جاجتا د ولةع اخةح لي ل لبد إمنها ههأ أسلوب تنظيمأ ا الربجمة بةا ة توجلاهتا وعلي التالف ل اهتاد وأن اسهتخاام أسهلوب الربجمهة تح هية التوجها جتع: نسن لا ةا تعلمنات لمربجمنيد إن با هو اخنام ابخةةامت انتا ة ةع لالح ه ا اخسلوب. ةصممأ الربجمة تح هية التوجها اعتهربوا أن اخجسهام ةهع ولنها ةها ههأ إ لاقنهات تتفاعها ةهع بعضهلا و هه عالقههات تتفهه ةههع بيعتلههاد ب ههض النظههح عههع لههون ههه ت الةاقنههات يههة أم جاةهها. واهلههاف ةههع ملههب هههو ةساعا انربجمني علي لتابة بحاةج قابلة للتطوجتح ومبا ةنية أقا. لقا ةح ةعنا ملح الةاقع كObjectظد ما هو الةاقع و ةا تحات الربجمة تح ية التوجا. الكائن )Object( الةهاقع ههو منهم جاجتها ك ةت هري ةحلهب جت هبا نسهبيا السهجا ا تعحجتفها الربجمهأ ظ جتنهتج ةهع دةهج البيهامت Data واخجحاءات Prcedure الي تعما علي تلب البيامت الينونة وا ا. اآلند عنههاةا ةههاوح هها ة ههةلة ا الربجمههة تح ههية التوجههاد لههع تتسههاءح عههع ليفيههة تقسههيم ان ههةلة إىل إجههحاءات أو دواحد بهها عههع ليفيههة تقسههيملا إىل لاقنههات. إن التفةههري ابلةاقنههات بهها عههع اخجههحاءات لهها ثههري ةفاجئ عع ةاى سلولة تصميم الربمةج هب ا اخسلوبد وملهب بسهبب انطابقهة القوجتهة بهني الةاقنهات ا انفلهوم الربجمأ والةاقنات ا احليا الفعلية. 5