الفصل 1
الفصل 1
ثانوية17
--
اثير العنزي
مريم محمد
ردينة يوسف
نوره اليامي
غدير العتيبي
ساره العتيبي
الجوهرة العجمي
سلطانة العتيبي
--
أ /طيف
الصف /اولى-ثاني
لمادة /الحاسب
28/4/1436هـ
الفهرس
عمل الطالبة رقم الصفحة المحتويات
توجد لغات برمجة عديدة :إال أنه يوجد فيها نوع من التخصص ،حيث
يعتمد اختيار اللغة على المهام التي نريد من الحاسب إنجازها ،حيث أن
لكل لغة ما يناسبها ،وهناك مهام يصعب تنفيذها بلغة معينة ولكنها تكون
ميسورة بلغة أخرى ،ومن اللغات التي ظهرت في فترة الستينات لغة
البيسك ( )Basicوهي لغات تدرس للمبتدئينBeginners All Symbolic ،
.Instruction Codeوظهرت بعدها لغة "فيجوال بيسك" ()Visual Basic
(التي وضعتها مايكروسوفت) وهي غنية عن التعريف ولها مميزات
عديدة ،حيث تجمع بين سهولة لغة البيسك وتصميم برامج ذات واجهة
رسومية ،وأيًض ا فيجوال بيسك سكريبت التي تقدم برمجيات تعمل
ضمن صفحات اإلنترنت ،وأيًض ا لغة السي بالس بالس ذائعة الصيت،
وهي لغة برمجة تم ابتكارها كتطوير للغة السي التي هي األخرى
تحسين للغة البي وهناك العشرات من لغات البرمجة األخرى.
ما متطلبات البرمجة؟
مميزات الجافا
لغة الجافا تتميز بخصائص عديدة ال تتميز بها العديد من لغات البرمجة،
ومن بين هذه الخصائص أنها :
سهلة وسلسة :أحد أهم خصائص الجافا أنها لغة بسيطة! ومعنى هنا
بسيطة ليس في تعلمها ،ولكنها تسهل على المبرمج الكثير من األعمال،
فهي مثًال تحتوي على إدارة تخزين البيانات بشكل أوتوماتيكي ،كما أنها
عكس لغة السي بلس بلس مثًال ال تحتوي على الوراثة المتعددة.
امنة :الخاصية الثانية والتي أراها أيضًا مهمة هي األمان ،فلغة البرمجة
جافا يتم تشغيلها على األلة االفتراضية وبذلك فهي تعيش في بيئتها،
فحص حدود المصفوفات
كما أنها تحتوي على إدارة لألمان والتي تمكن من تحديد المكتبة المعينة
الواجب استعمالها من الكالس.
قوية :فبواسطة لغة البرمجة جافا يمكن برمجة برامج جد قوية ،ربما
ألن فلسفة هذه اللغة تحد من البرامج الغير موثوقة.
ليست مربوطة بمنصة معينة :االرتباط بمنصة معينة معناه قدرة
برنامج معين على اإلشغال على أكتر من منصة أو نظام تشغيل .ولغة
البرمجة جافا هي من اللغات التي تتحقق فيها هذه الخاصية .فيمكنك
مثًال االشتغال ببرامجها على لينوكس والويندوز والماك بدون أي
مشاكل.
فعالة :البرامج المكتوبة بلغة البرمجة جافا يتم معالجتها بشكل سريع،
ربما ما يساعد على ذلك هي طريقة ال ،Just-in-Time -والتي تترجم
الكود قبل تنفيذه لكود الحاسوب ،وتقوم بذلك بتخزين بعض المهام
والجمل لإلشغال بها فيما بعد.
كائنية التوجه :ومعناه أن لغة البرمجة جافا تعتمد نموذج للبرمجة يتم
فيه بناء البرامج عن طريق الكائنات والتي تأتى
ديناميكية :ومعناه أن جافا لها القدرة على التأقلم مع بيئات متعددة
ومتغيرة كذلك.
على الرغم من صعوبة عملية البرمجة التي تتطلب عادة أربع سنوات
دراسية للحصول على مؤهل جامعي في مجال تقنية المعلومات وجهاز
حاسب شخصي وقدرات ذهنية مرتفعة وصبر طويل إال أن تعلم البرمجة
بلغة جافا يعد أسهل من تعلم البرمجة بلغات أخرى[بحاجة لمصدر].
والسبب هو انتشار اإلنترنت ،حيث تتوفر أدوات البرمجة بهذه اللغة على
موقع شركة صن ميكرو يستمز ،كما يمكن تحميل برامج جافا من مواقع
إنترنت مختلفة .وهي لغة سهلة التعلم .إال أنها تحتاج كغيرها من اللغات
إلى تطبيق وممارسة. .تعتبر لغة جافا من اللغات الحديثة جدًا في عالم
البرمجة التي أنتجتها شركة sunmicrosystemفي عام. .1991لغة جافا
تناسب تطبيقات االنترنت بصفه خاصه هذا باإلضافة إلى دعم االنواع
المختلفة من التطبيقات مثل تطبيقات تعمل على جهاز واحد(
)DesktopApplicationأو تطبيقات تعمل على شبكه
.))Client/serverApplication
تتصف لغة جافا بالصفات التالية:
لغة تلتزم بقواعد البرمجة بواسطة األهداف object-
).orientedprogramming(oopلغة لها بيئة تشغيل خاصه بها
). JavaVirtualMachine(JVMلها مكتبة فصائل ClasseLibraryكبيره
وغنيه.لغه مبنيه على قواعد اللغة الشهيرة .++c/cتعمل برامجها على
معظم نظم التشغيل .PlatformIndependent
لمحة من تاريخها
هل سمعتم يوما عن لغة اسمها السي طبعا سمعتوا عنها ،على األقل المبرمجون
يعرفونها ،ربما اللغة التي لم تسمعوا عنها والتي سنقوم بالتلميح لها في درسنا
هي Mesaوهي لغة ذات منهج إجرائي.
تم ذكر اللغتين ألنهما اللتان أثرتا بالفكرة لظهور الجافا ،طبعا ليسا الوحيدين
فالجافا تاثرت أيضا ب ,Ada 83 ,Eiffel ,Smalltalk ,Modula-3 ,Objective-C
لكنهما أثرتا بالفكرة لدى Bill Joyفي بداية السبعينات ،فقد كان يريد الجمع بين
إيجابياتهما ،لكن لم يتمكن من تحقيق مبتغاه.
وفي بداية التسعينات وصف في أحد المقاالت اسمه furtherكيف يمكن أن
تكون لغة برمجة ذات منهج غرضي التوجه (البرمجة غرضية التوجه) :يجب أن
تبنى على السي بلس بلس .لكن وبخيبة أمل أخرى فقد أدرك أن السي بلس
بلس كلغة أم غير مالئمة وأنها غير عملية للبرامج الكبيرة .
لكنه لم ييأس وظل يبحث.
شخص أخر كانت له أيضًا عالقة بالجافا ،اسمه ،James Goslingوالذي يعتبر
األب الروحي للغة البرمجة جافا ،قام بالتطوير في لغة السي بلس بلس لكن لم
تعجبه النتيجة .وفي وسط هذا اإلحباط ظهرت له لغة oakوتعني بلوط ،سماها
هكذا ألنه كان يشتغل ثم نظر من خالل نافذته فرأى بلوطة ( ولله في خلقه
شؤون ) .
في دجنبر 1990انطلق مشروع The Green-Project :من طرف Patrick
Naughtonوالذي شارك فيه كل من James Goslingو . Mike Sheridanفكرة
هذا المشروع كانت لتطوير برامج التلفزة واألجهزة االستهالكية الكهربائية .
األدوات األساسية لهذا المشروع كانت ,Green-Os, OAK :وبعض األدوات
األخرى .
قام Bill Joyبعرض مقال furtherعلى بقية األعضاء وبدأ مباشرة بتطوير أحد
واجهات التصميم .بعد ذلك قام goslingبتصميم المترجم الرئيسي بلغة السي
أما لغة OAKفهي التي نفذت وقدمت أول البرامج في غشت 1991التي أدت
بالمجموعة لتصميم آلة سموها .*Sevenمدير شركة Sun : Scott McNealy
انبهر ب *.7
أسست المجموعة شركة First Personفي نونبر . 1992
في بداية سنة 1993سمع الفريق عن طلب من Time Warnerمتعلق بنظام ل
set-top-boxوهي عبارة عن أدوات كهربائية.وجهت شركة First Personالنظر
على هذه األدوات لكن Time Warnerلم تكن مهتمة بذلك.رغم ذلك ظلت
الشركة تطور في نفسها وبتغيير لوجهات تطوير عديدة تمركز التطوير على
World wide Webوالذي كان يحتاج إلى لغة برمجة قوية لتطبيقها في
الويب.رأى فريق العمل أن لغة oakلغة مثالية الستخدامها في الويب رغم أنها
طورت لغرض مخالف تماما .بعد ذلك أخذت لغة oakاسم javaألجل حقوق
الحفظ والطبع :كانت هناك لغة برمجة أخرى أخدت االسم .بعد أن قدمت لغة
الجافا نموذج WebRunnerوهو نموذج للمتصفحات ،قام Jonathan Payne
بتنقيحه حيث ظهر متصفح HotJavaوفي ماي قدم االفتتاح للغة جافا لدى
. sunWorld '95فقط مستعملون قليلون هم من صاحبوا ,HotJavaفجاء
NetScapeكحظ للغة الجافا ليرخص لتقنية الجافا واستعملت بذلك في النسخة
2.0للبرنامج .حتى هذه اللحظة لم يتمكن المبرمجون من برمجة تطبيقات
الجافا ،فقط ابتداء من سنة 1996حيث ظهر JDK 1.0الذي مكنهم من البرمجة.
قبل ذلك بقليل قام أعضاء الفريق بإنشاء شركة javasoftوالتي بدأ معها مشوار
الجاف
Java SE
Java ME
Java Fx
تقنّية أخرى اصدرتها صن ميكروسيستمز لتطوير تطبيقات من نوع " "RIAأي "
."Rich Internet Applications
بالنسبة ألي شخص جديد في عالم البرمجة فبعض المفردات قد تكون غير
اعتيادية ،وكذلك الولوج لهذا العالم يكون صعب بعض الشيء ،ولتبسيط كل ذلك
وجب التحدث عن األشياء العامة أوًال ،ومعرفة عن ماذا نتحدث ! لكي توضح
الرؤية .من الطبيعي أن تعرف أنك هنا من أجل تعلم لغة جافا ،والتي هي لغة
برمجة ،أيضًا يتوجب عليك معرفة ما معنى برمجة ،والتي تم شرحها في الدرس
عن السي .أما هنا فسيتم شرح ألي أنواع البرمجة تنتمي لغة جافا ،وهذا الدرس
أراه مهم وذلك ألنه يعطيك فكرة أولية عن بنية لغة جافا وكيف تشتغل.في عالم
البرمجة هناك طرق عديدة لحل المشاكل في البرامج بحسب كل لغة برمجة،
فبينما يتم هذا االجراء بطريقة تسلسلية في لغة برمجة معينة ،يتم في أخرى
بطريقة تمثيل الواقع بكائناته !سوف أتكلم عن نموذجين من أشهر نماذج
البرمجة وكون أنني سأتكلم عن هذين النموذجين فقط هذا ال يعني أنهما
الوحيدين في عالم البرمجة فهناك أيضا نماذج أخرى لن نتطرق لها والسبب هو
أنها ال تهمنا وألن أغلب لغات البرمجة وأشهرها نظامها يكون على شكل
النموذجين .
البرمجة اإلجرائية
هي المنهج لتصميم برامج ،هذه البرامج تحتوي ببساطة على سلسلة من
المراحل مرحلة بعد األخرى .كما تعتمد تقسيم البرامج لمهام صغيرة أو
Proceduresومنها أتت التسمية .إن تطوير لغات البرمجة التي تتبع هذا المنهج
كان خطوة أساسية بين لغة Assemblerواللغات العالية المستوى.البرمجة
اإلجرائية هي حل أمثل وأحسن من البرمجة المتتابعة التي تعتمد على كتابة
البرنامج مبسط وطويل .
ضعفه أمام البرامج الكبيرة فهو غير مالئم للبرمجة المعقدة . .1
مشاكل كبيرة ومعقدة في التصميم والصيانة . .2
عند إعادة استعمال أجزاء البرنامج (ليس في الكود نفسه ولكن في .3
إعادة استعمال أكواد أخرى يستعملها البرنامج الرئيسي ) :
هي عبارة عن نمط برمجة متقدم ،وفيه يقسم البرنامج إلى وحدات تسمى
الكائنات ( ،)Objectsكل كائن عبارة عن حزمة (تعليب) من البيانات (المتغيرات
والثوابت) والدوال ووحدات التنظيم وواجهات االستخدام .ويتم بناء البرنامج
بواسطة استخدام الكائنات وربطها مع بعض وواجهة البرنامج الخارجية باستخدام
هيكلية البرنامج وواجهات االستخدام الخاصة بكل كائن( .ويكبيديا) .
الفكرة األساسية للبرمجة غرضية التوجه هي تجميع البيانات والدوال لكود ما في
ما يسمى كائن إلعادة استعمالها في الكود لجعل البرنامج مفهوم أكثر وتسهيل
تعقيده .
نفذ هذا النموذج بداية في لغة Smalltalkالتي اخترعت من طرف .Alan Kay
أهم شيء في هذا النموذج هو الكائن objectوللمقاربة بواقعنا فكما يعلم الجميع
أن عالمنا يتكون من أشياء :سيارة ,إنسان ,حجر ...هذه األشياء يتم وصفها فمثال
إن أخذنا شخص ما فوصفه سيكون ربما بالشكل التالي :
ـ طويل .
-أسمر .
-نحيف .
كما ترون فالكائن هو اإلنسان ووصفه يمكن أن نطلق عليه بيانات أو طرق في
البرمجة وهكذا يتم تصنيف األشياء في البرمجة الغرضية التوجه .هذا النوع من
البرمجة هو محبب لدى كثير من المطورين والدليل على ذلك هو تطوير لغة
السي إلى لغة غرضية التوجه :السي بلس بلس حين قال مطورها Bjarne :
: Stroustrup
الشيء الذي يدل على أن البرمجة غرضية التوجه نموذج أريح من نظيره
اإلجرائي ،لكن السي بلس بلس بقيت إجرائية كذلك .
: smalltalkسنة .1980
لغة الجافا تتبع هذا النوع من البرمجة ،بطبيعة الحال فإن البرمجة بهذا النموذج
تكون صعبة ،لكن السهولة النسبية تتمثل في القدرة على تمثيله بسرعة ألنه
قريب من الواقع.
تطرقنا لتاريخ الجافا وكذلك ألنواع البرمجة ،فعرفنا بذلك أن الجافا ليست كعكة
وانما لغة برمجة ،من خاللها يمكننا تصميم برامج كاالكلبس الذي سنراه بعد
قليل ،وهو برنامج يترجم أكواد الجافا والعديد من البرامج االخرى واأللعاب ...
التركيب اللغوي للجافا()syntax
بنية جافا تستمد الكثير من بنية لغة البرمجة سي :بنية اإلسناد ،التعابير ،التحكم،
الكتل الجملية ( .)blocksجافا بنيت خصيًص ا لتكون لغة كائنية التوجه ,حيث أن
كامل الكود يكون مضمنا داخل كائنات( ,) OBJECTSفيما عدا المتغيرات
األساسية(األرقام ,والقيم المنطقية واألحرف) ,حيث أنها لم توضع ككائنات
ألسباب تتعلق باآلداء.
لتجنب العديد من المشاكل ,جافا لم تعتمد العديد من الخصائص ,مثل التوارث
المتعدد( )multiple inheritanceوالتحميل الزائد للعوامل(operator
.)overloading
جافا تستخدم نفس نوعي التعليقات الموجودين في ,++Cالتعليقات التي تنتهي
بنهاية السطر ,وتبدأ بالعالمة " ،"//والتعليقات المتعددة األسطر ,والتي تبدأ
بالعالمة "* "/وتنتهي بالعالمة "."*/
تعتمد برمجة جافا طبعًا على تعليقات ++Cكما عرف سابًقا ألنها لغة برمجة
ناتجة عن تطوير لغة .++C
في هذا الدرس إن شاء الله سوف نرى ماهي هذه األدوات وكذلك كيفية
استخدامها .
بما اننا سوف نبرمج ،فاننا بحاجة لكتابة أكواد ،هذه األكواد لن يتم كتابتها على
الورق! وانما على الحاسوب ،لهذا فسنحتاج لمحرر نصوص على الحاسوب
( برنامج) نكتب فيه األكواد ،بعد االنتهاء من كتابة هذه األكواد يجب أن نرسلها
للحاسوب لكي يقوم بتنفيذ أوامرها .لكنه وكما جاء في الدرس عن السي ال يفهم
هذه األكواد ! إذًا الحل هو التوفر على برنامج يقوم أوًال بترجمة هذه األكواد لكي
يتمكن الحاسوب من فهمها ،بعد ذلك سيكون باالمكان تنفيذ البرنامج .
من هذا التقديم نستلخص اننا بحاجة لبرنامج نكتب فيه األكواد (محرر نصوص)،
ومترجم يترجم هذه األكواد للغة يفهمها الحاسوب ,