مثال: المبرمجون الذين لديهم مفهوم "تجريد الببانات" 8054861500 0218 سيحتاجون وفنا أفل لتركبب
الأتواع النيانية المجردة في لغة 181/8 وبشكل أفضل من أولئك الذين لبس لديهم أدنى رؤّبة لهذا المفهوم. وهذه
الظاهرة تنطبق أيضاً على اللغات فكلما كان فهمك أكثر لفواعد اللعة الأصلية. كان من الأسهل علبك
تلم لغة طبيعية ثائبة.
© الفهم الأفضل لأهمية التنفيذ عط آه 0006151800108 861162 ©
عند تلم مقاهيم لغات البرمجة. من الممتع والضروري جد التطرق للغضايا التتفيذية التي تؤثر في هذه
بدوزه يقودثا إلى المقدرة على استخدام هذه اللغات بشكل أكثر ذكاءٌ.
2- هناك بض الأخطاء البرمجية التي لا يقهمها إلا المبرمج الذي لديه معرفة كافية بتفاصيل التنفيذ
3- فهمنا للقضايا التنفيذية يسمح لنا أن نتصور كيف ينفذ الحاسوب البثيات البرمجية المختلفة.
مثال: المبرمجون الذين لديهم محرفة قليلة عن كيفية تنفيذ "النداء الذاتى" 66085100». غالبا لا بملمون
أن خوارزمية النداء الذاتي أبطاً من الخوارزمية التكرارية.
© زيادة القدرة على تصميم لغات جديدة 6510 م بغنائطة 100685860 *
1800665 سعد
التلم الأكثر تعمقاً للغات البرمجة يساعد في تصميم أنظمة معقدة. وكذا يساعد المستخدمين على اختبار وتقبيم
مثال: أغلب الأنظمة البرمجية تتطلب من المستخدم أن يتفاعل بطريفة ماء فد يكون هذا التفاعل عن طريق
إدخال مجموعة من البياثات والأوامر. وفي مثل هذه الأنظمة يكون شكل المدخاثت بسبطاً جداً. وفي الجانب
الآخر. لدينا أنظمة معقّة يتطلب على المستخدم فيها التنتل بين مستويات عديدة من "الغوائم" 0060005 وعلبه
كذلك إدخل أوامر مختلفة ومتعندة. كمتال على ذلك "أنظمة معالجة التصوص" 0206655606 101000
« التحسين الكلي للحوسبة 1ه 801306600601 ا8:81/ا0 ©
بالرغم من أنه من الممكن تحديد سيب شعبية لغة برمجية معينة. فإنه من الواضح دائماً أن لغات البرمجة الأكتر
شعبية هي الأكثر توفراً. ولكن في بض الحالات. يمكن القول أن شهرة بعض اللغاث قد يكون بسبب أن هؤلاء
مثال: العديد من الناس يؤمنون أنه كان من الأفضل لو حلت 60 81601 محل 087801] في بداية الستينات»
وتلك لأنها أكثر ذكاءً ولديها بنبات تحكم أفضل من 2087801. والحقيقة أن العديد من المبرمجين ومديري
تطوير البرمجيات في ذلك الوفت لم يكونوا على فهم واضح للتصميم المفاهيمي ل 60 81601 فقد كان وصف
بشكل جيد. لذا فشلوا فى رؤية فوائد 81601.60 التى تتميز بها عن 0878801
سنتطور وستتم الاستفادة منها بالشكل الأمتل.
المجالات البرمجية 5 081217107105ط
حظت الحواسيب في عند ضخم من المجالات المختلفة. ابنداء من منشات الطافة النووية وصولاً إلى حزن
النسجلات والسلومات الشخصية. ويسبب هذا التنوع الكبير في استخدام الحاسوب. فقد ثم تطوير العديد من
البرمجية المنصلة بها
الأكثر شيوعا هي: "المصقوفات" 5لا038؛ ويتيات التحكم الأكثر شبوعاً هى "التكزار" 100005 و
"الاختبارات” 5616616005 وفى هذه التطبيقات غلبي ما تكون 'الفاعلية" (00800)ع هى الأهم
التطبيقات التجارية كص متت فعا 800 5ع 510لا8
بداً استخدام الحواسيب في التطبيقات التجارية فى خمسيثيات القرن الماضى.
أآمئلة: لغة ا0080. وهي أول لغة تجارية عالبة المستوى ناجحة وقد ظهرت في الستينات وما نزال اللغة
د أوجود شهيلات لويد تغارير مطورة.
2- طرق دقيقة لوصف وخزن الأرقام العشرية والبيانات الحرفية.
3- القدرة على تحديد عمليات رياضية عشربة.
بالإضافة إلى لغات البرمجة ظهرت أدوات برمجية خاصة تستخدم في الحواسيب الصغيرة في المجالات
التجارية. متل "أنظمة الأوراق الانتشارية" 9/5605 5068051615 و "أنظمة فواعد الببانات" 08180258
الذكاء الاصطناعي ععمععنااع1م1 لماعتانعم
1- استخدام الحسابات "الرمزية" ع(ا5/0000 بدلا من "الرقمية" 0101006016 وقى العمليات الحسابية
الرمزية يثم معالجة رموز مكوتة من أسماء وليس من أرقام.
2- السلبات الحسابية الرمزية تتم بشكل أكفاً عن طريق استخدام "الفرائم المنصلة" ئونا 100160 ولبس
3- يتطلب هذا النوع من البرمجة أحياثاً مرونة أكبر من المجالات البرمجبة الأخرى.
اللعة كثيت أغلب تطبيقات الذكاء الاصطناعي.
برمجة الأنظمة 0608000 قصصع كلا
1- في الأغلب تستخدم باستمرار
3- لا ترهق المستخدم بفيود الحمابة الزائدة.
تستخدم مثل هذه اللغات عن طريق وضع مجموعة من الأوامر في ملف نم تنفذها.
أمئلة: لغة 50 أو |016: وهي أول هذه اللغات. وقد بدأت كمجموعة صغيرة من الأوامر التي تر بعد ذلك
كتداءات للبرامج الفرعية للنظام والتى تؤدي وظائف مفيدة مثل إدارة الملفات وتنقيتها
لغات الأغراض الخاصة 18080565 06131-00180056 م5
1- لغات ال 806: وتستخدم لتوليد تغارير تجارية.
2- لغات ال 8017 لتوليد أدوات مبكانيكية قابلة للبرمجة.
3- لغات 6055: ونستخدم فى أنظمة المحاكة.
آمل الغرض الأهم من دراستنا لهنه الملدة هو أن تفحص بناية المفاهيم الأساسية لليئبات المختلفة ومشرات
المعيار 6:46:12
الاعتمادية قابلية الكتابة قابلية القراءة الخصائص 053:36:6:15816
فواعد التركيب
أنواع وبنيات البيانات
دعم التجريد
فحص الببانات
. عمفاععدل عطلا1
التحامل مع الاستثناءات
٠. وستمقتلم معاءتنائع
ِ لاط 86808
من أهم المعايير في تقبِيمٍ اللغات والحكم عليها هو مدى السهولة الثى يمكن بها قراءة البرنامج وفهمه. وتعتير
قابلية القراءة مقباساً مهماً لجودة البرامج ولغات البرمجة. ومن المهم أن نقول أن قايلية القراءة يجب أن تأخذ
بعين الاعتبار ضمن نطاق أو مجال المشكلة. وفيما بلى مثال توضيحي لهذه النفة:
يكون هذا البرنامج غير طبيعي أو مربك. مما يجعل من الصعوبة بمكان قراءته بشكل سهل.
البساطة الكلية لماعتم 55 الهع/©
أولاً: اللعة التي لديها عدد كبير من المكوثات الأساسبة أصعب من حيت التعلم من تلك التي لدبها عدد صغبر
ثانا "تضاعف المزايا" باتعتام00010 6680038 يعتير خاصية
بتضاعف المزايا أن يكون لدينا أكثر من طريقة لأداء المهمة الواحدة.
فيدية أخرى تميق قابلية القراءة. ونقصد
مثال: في لغ ++ و 187/8 توجد أربع طرق مختلفة لزيادة قيمة متغير عددي بمقدار واحد صحبح. فلو كان
لدينا متغير 00001 وأردنا إضافة 1 إليه. فستختار واحدة من الجمل الثالية:
7 جثمناف - أصام
تحبصاف
البجتصام
ممعي
جاءت كلمة ا0600108002 من المفهوم الرياضي المسمى 108640:5 0211080031 أي المتجهات المتحامئة.
ابتدائية صغيزة نسيياً بد صغير شيا من الطرق ليناء بنبات التحكم وينبات البيانات الخاصة بقلعة. ونغص
ذلك من القدرة على تعلمها وكذلك القابلية لقراءتها. أي تركيب ممكن للأنواع البيائية الابتدائية هو شرعي وله
معنى كذلك.
»©1861 . بالإضافة إلى نوعين آخرين هما 8001/5 و 010165م. إذا كان بالإمكان تطبيق ال 8003/5 و ال
المثال التالى.
مثال: بالرغم من أن لغة 6 لديها نوعين من الأنواع البيانية الهيكلية. وهي "المصفوفات" 8008/5 و "السجلات"”
- يمكن إرجاع السجلات من داخل الدوال. بينما لا يمكن ذلك مع المصفوفات.
- العتصر داخل السجل بمكن أن يكون من أي نوع ما عدا 010ي أو سجل من نفس النوع. أما بالنسبة
للمصفوفات فإن أي عنصر داخلها بمكن أن بكون من أي نوع ما عدا 0010 أو دالة.
نقص الاستقلالية أو فرطها يمكن أن يسنب المشاكل
' /اة0:470800. واللغة الوظيفية. متل لغة 1158. هي اللغة الني تحتاج بشكل أساسي لتطبيق
اللغات الوظيقية من حيت البساطة الكلية من أبسط أنواع اللعات لأنها تنجز كافة المهام عن طريق بنبة
واحدة عبر نداء الدوال. والئى يمكن بدورها أن تركب مع نداءات أخرى بطرق بسبطة.
جمل التحكم كثصع 52:77 001701
التحكم المحدودة لبن اللغات في خمسينبات وستيئيات الغرن الماضى.
مثال: بالتحديد. كان من المعلوم أن الاستخدام الغير المقيد و المفرط لجمل 8000 بظل وبشكل كبر من قابلية
بتطلب من المستخدم عند قراءئه الفقز من جملة معيثة إلى جملة أخرى غبز مجاورة وذلك بعرض تتيع كيفية
سير البرنامج.
إن وجود تسهيلات كافية لتعريف الأنواع البياتية والبتيات البيانية فى اللغة البرمجية بعد عامااً مساعداً آخر مهم
متال: اغرض إننا استخمنا نوع رقمي كراية مؤشرة ودلك لأنه لا يوجد أنواع بوليانية في اللغة التي نستخمها
سيكون شكل الجملة لتحريف هذه الراية المؤشرة كما بلى:
لوم كص
عنما - عاط_100_ك 001
وهذه الأخبرة معناها أكثر وضوحاً
لصيغة أو لشكل العناصر فى لغة البرمجة تأثير مهم على قائلية البرامج للقراءة. وفيما بلي تلات أمثلة لخبارات
تصميم صباغي لها تأثير على قابلية الفراءة.
تقييد الممرفات تطول قصير جداً يؤثر ملي على قائلية القراءة.
وكمثال على ذلك: في 77 0878/201] أقصى طول للمعرفات هو 6 حروف فقط. وهذا بجيل من الصعب
استخدام أسماء ذات معتى ودلالة للمتغبرات وعناصر البرنامج الأخرى.
وهناك مثال آخر أكثر تطرفاً: في لغة ©8851 80151 يتكون المحرف من حرف واحد فقط أو حرف واحد
متبوع برقم. ولك أن تتخيل مدى صعوية فهم معنى متغيرات البرنامج فى هذه اللغة.
عي "الكلمات الخاصة كوورب اوز6عم5.
بتأثر مظهر البرتامج وبلتالى قاتلبته للقراءة بشكل كبير جداً بأشكال الكلمات الخاصة آلغات البرمجة.
متال: تستخدم العديد من لغات البرمجة زوج خاص من الكلمات أو الرموز لتكوين المجموعات الجملية أو
ما يسمى بال 6ان10. ئلا لغة اهع085 تتطلب استخدام الكلمئين 00ج06 و 608 لصباغة المجموعات
في كل بثيات التحكم ما عدا بثبة 6810م حيث يمكن الاستغناء عن هائين الكلمئين هنا (وهذا بعد
الكلمة. وهذا يجعل من الصحب تحديد ما هي ال ا016 الني انتهت عند مصادخئنا ل 600 او ل [.
أما لغنا 90 2087880 ولغة و80 فق نائغنا هذه المشكلة وجطنا عملية بدء ال 01066 وإغائفها أوضح
عن طريق استخدام صبغة إغلاق مختلفة لكل نوع من أنواع ال 0106165
مثال: تستخدم لغة ج80 العبازة 6م 600 لإنهاء بنيات الاختيار . والحبارة 1000 800 لإنهاء بنيات الدوران.
متالاً على التضارب بين البساطة النائجة من استخدام كلمات محجوزة ظبلة في ا9568م+
القراءة الكبيرة جدا النائجة من استخدام المزيد من الكلمات المستخدمة كما فى لغة 9م8.
وهناك نفطة مهمة أخرى وهي: هل يمكن استخدام هذه الكلمات الخاصة كأسماء للمتغيرات في البرنامج.
مثال: في له 90 0878801ع. يمكن استخدام الكلمات الخاصة مثل 00 و 00اع كأسماء شرعية
للمتعيرات. ولذلك فإن ظهوز هذه الكلمات في البرنامج يحتمل أن تكون كلمة خاصة أو اسماً لمتغبر
يه "الشكل والمسنى" 0820106 200 110000
مساعدً لقابلية القراءة. بمعتى أن المعتى أو الدلالة يجب أن يستنطا مباشرة من الصيغة أو الشكل البرمجى
مثال: في لغة ©. معتى الكلمة المحجوزة ©5088 يعتمد على سباق ظهورها. فإذا استخدمت في تعريف
داخل دالة. فهذا بعتي أن المتغير يتولد في زمن الترجمة. أما إذا استخدمت في تعريف متغبر خارج
نطق كل الدوال. فهذا يمني أن المتخير مرتى فقط فى الملف الذي ظهر فيه تعريفها
قابلية الكتابة بغتائط 10/0
ة الكتابة مقباساً لمدى سهولة استخدام اللعة لنوع مشكلة بعينها. كل ما يؤثر فى قائلية القراءة يؤتر كذلك
في قائلية الكثابة. وهذا مستتيط مباشرة من الحقبقة القائلة بأن عملية كتابة البرنامج تتطلب من المبرمج إعادة
القراءة المتكررة لجزء مكثوب مسيق من البرنامج.
كما هو الحال مع قابلية القراءة. فقابلية الكتابة بجب أن تأخذ في سباق المشكلة الهدغبة للغة. ببساطة. من غبر
الميرر مقازنة قائلية الكتابة للغنين فى نطاق تطبيق معين عندما تكون إحدى هائين اللغتين مصممة لذلك التطبيق
والأخرى غير مصممة لذلك.
مثال: تختلف قائلية القراء للغة ا06080 80151 و 801 بشكل كبير جداً عند توليد برنامج للتحامل مع بتبات
جهة أخرى. تحتير 80م أقوى من 801 فيما بخص توليد التقارير المالية لأن ا0080 مصممة في الأساس
البساطة والاستقلالية بت تاقصمع 01460 اعضة لغتعتام 510
إذا كان للغة عبد كبير من البثبات المختلفة. ف لا يكون بض المبرمجين ممتادين عليها كلها. وهنا بمكن أن
يؤدي إلى استخدام خاطئ لبعض مزابا اللغة أو عدم استعمال للبمض الآخر. وقد تكون هذه البنبات المهملة أكثر
ذكاءً وفاعلية من تلك المستخدمة. كتلك. فد يكون من الممكن استخدام مزايا غير معروفة بشكل خاطئ. مما
أفضل من الحصول على عدد كبير من البثبات الانتائية
دعم التجريد ممتاعة فطم +16 501
تقصد ب "التجريد" 80582100 القدرة على تعريف ثم استخدام هباكل أو عمليات معقة بطريقة تسمح بجعل
الكثير من التفاصيل مهملة. والتجريد واحد من المفاهيم الأساسية في تصميم لغات البرمجة الحديئة. وبالتلى فإن
درجة التجزيد التي تسمح بها لغة البرمجة أمر مهم قيما يتطق تقائلبة الكتانة. ويمكن للغات الدرمجة أن تدعم
مثال: استخدام "البرامج الفرعبة" 0868005م5000 بعتبر مثالاً واضحاً على النوع الأول من النجريد والذي هو
ما. فيدون البرنامج الفرعي. ستحتاج إلى تكرير كتابة كود الترتيب فى كل الأماكن الني نحتاج فيها إلى هذه
إذا لم تستخدم برنامج فرعي. فإن كود خوارزمية الترتيب سيضطرب مع تفاصيل خوارزمية الترتيب.
مثال: استخدام "الشجرة الثتائية" 1368 /01080 بعتير مثالاً واضحاً على النوع الثاني من التجريد والذي هو
الششجزة تنقذ عادة في لغة 77 0878/01 كثلات مصفوفات صحيحة متوازية ُ/
الصحيحة تستخدم ك "فهارس" 500561015 لتحديد العقد الطرفية. أما في لغة ++ فيمكن تنفيذ هذه الششجر
عن طريق استخدام تجزيد لعقّة النشجرة في شكل 55اء بسيط له مؤّشّرين وعدد صحبح. وهذا بسهل أكثر من
كتابة مثل هذه البرامج.
درجة التعبير بألا فق ور
ادرجة التعبير في لغة ما يمكن أن يقصد بها عدة خصائص. فمتلاٌ في لغة مثل لة 801. نعتي بدرجة التعبير
الحسابية. وأيضاً قد تعني أن لغة ما لديها طرق ملائمة غير معقدة للقيام بالعمليات الحسابية.
مثال: فى لغة 6. يمكننا استخدام الجملة ++1ص0ن0 لزيادة
1+ 000 - 00001 والسبب في ذلك أن الأولى ملاثمة أكثر ومختصرة أكثر
0008 بمقدار واحد بدلاً من استخدام الجملة
الاعتمادية لنانطقتاع
التالبة مجموعة من المزايا التي لها أثر مهم على اعتمادية البرامج في لغة معيئة.
فحص الأنواع عمتاعط عطل7
تقصد ب "فحص الأنواع" 166106 0/06 اختبار الأخطاء المنلقة بالأنواع البيائية في برنامج ما. وهو عامل
مهم من العوامل المؤثرة على الاعتمادية. ومن المرعغوب به دائماً فحص أخطاء الأنواع في "زمن الترجمة"
©500ا-0116١007 ولبس في "زمن التنفِذ" 00-006 وذلك لأن الأخبر مكلف أكثر. وستنافش هذا المفهوم
باستفاضة أكثر في محاضرات لاحقة.
مثال: فى لغة 6 الأصلية. لم يكن يثم فحص "الوسطاء الفلية " 0828006465 8611081 عد نداء دالة ماء من
أجل التأكد من مواففته لنوع "الوسيط الشكلى" 0272006865 0181م0) الموجود في ترويسة الدالة. فيمكن
إرسال قيمة 101 إلى دالة تستقل 11088 دون أن بحدت أخطاء. وهذا يقود إلى مشاكل عديدة فى الغالب تكون
هناك صعوبة في تحديدها. وذلك لأن مثل هذه الأخطاء لا تكتشف لا في زمن الترجمة ولا في زمن التنفيذ
التعامل مع الاستثناءات 11806 صمنامع :رع
وتقصد بهذه الميزة قدرة البرنامج على إيقاف الأخطاء (وكذلك الحالات الغير اعتيادية) ومن ثم انخاذ
تزود بتسهيلات رائعة للتعامل مع الاستتناءات. مثل لغة و80 ولغة +يج ولغة 817/3[
استعارة التسميات مقلم
وتقصد بتلك أن يكون لدينا مرجعين أو اسمين مخلفين لنفن المكان في الذاكرة. ومن المجمع عليه أن هذه
الميزة خطرة جداً على اعتمادية لغة البرمجة.
تعريف مؤسشرين مختلفين بشيران إلى نفس المكان فى الذاكرة.
لاط* رناطية لم ل اص
حاط
لية القراءة وقابلية الكتابة ب ااتطعغئ/اا عصة بدا النطما 1862
تؤتر كل من قابلية القراءة وقائلية الكتانة على الاعتمادية. فالبرنامج المكتوب بلغة لا تدعم طرق طبيعية للتعبير
قابلية القراءة تؤثر أيضاً على الاعتمادية سواء خلال طور الكتابة أو الصبانة. فكلما كان البرنامج صعب
التكلفة :605
على عدة خصائص موضحة في الأسطر القلدمة.
عه أولاً: تكلفة تدريب المبرمجين على استخدام اللغة. وهذه لها عائقة بخاصيئي البساطة والاستقائلية بالإضافة
يه رابعاً: تكلفة تنفيذ البرنامج. وهذه التكلفة تتأثر بتصميم لغة البرمجة. فللعة التى تقوم يسملبات فحص
الأنواع سوف تمن التنفيذ السريع للبرنامج. بغض النظر عن حودة المنرجم.
له خامساً: تكلفة نظام تنفيذ اللغة. إذا كانت نظام تنفيذ اللغة مكلف أو لا بعمل إلا على هاردوبر مكلف فإن
له _سادساً: تكلفة ضعف الاعتمادية. فإن ضعف الاعتمادية يؤدي إلى تكاليف إضافية كان بالإمكان توفيرها في
ظل وحود نظام معتمد علبه.
له سابعاً: تكلفة صيائة البرنامج. وتشمل التصحيحات لثلافي مشاكل سايقة. أو التحديلات لإضافة مزايا جديدة