لغة جافا
*استخدمت اللغة منذ القدم للتواصل والتفاھم بین الأشخاص ومع تقدم العلم ظھرت لغات البرمجة التي یفھم بھا الحاسوب طلب الإنسان.*

ومع تطور عتاد الحاسب تطورت ھذه اللغات، ویوجد الیوم المئات من لغات البرمجة التي تختلف في أھدافھا ووظیفتھا، وقد مرت ھذه اللغات بمراحل طویلة من التطور حتى وصلت للشكل المتعارف علیه الیوم، وقد تم تنظیم ھذه المراحل في خمس أجیال تتمایز فیما بینھا بمستویات التجرید، حیث كل جیل یضیف مستوى تجرید متقدم عن سابقه.

ھذه الأجیال واللغات عادة ما تكون بسیطة وبرامج منخفضة المستوى كلما اقتربت من شكل لغة الآلة أو الحاسب وھي "الأرقام الثنائیة" بینما تكون عالیة المستوى كلما اقتربت من اللغة التي یستخدمھا الإنسان «اللغة الطبیعیة».

الجیل الأول
-----------

الجيل الأول (1GL) لغة الآلة (بالإنجليزية: Machine Language)‏

یعتمد ھذا الجیل استعمال نظام العد الثنائي (0,1) لتمثیل الأوامر والعملیات الحسابیة والمنطقیة في الحاسوب الحدیث (الذي یدار بالطاقة الكھربائیة)، حیث أن الحاسب یفھم حالتین فقط وجود التیار (1) أو عدم وجوده (0).
وتعرف الأوامر المكتوبة بنظام العد الثنائي بلغة الآلة.
وفي البدایات البرمجیة كان على المبرمج كتابة البرنامج كاملاً مستخدما لغة الآلة، ولكن ھذه العملیة كانت صعبة ومرھقة وعرضة لكثیر من الأخطاء.

الجیل الثاني
------------

الجيل الثاني (2GL) لغة التجمیع (بالإنجليزية: Assembly language)‏

وھي لغة تختصر بعض العبارات والرموز المستخدمة ففیھا یتم استبدال الرموز الرقمیة في لغة الآلة بمجموعة من الكلمات الرمزیة «المختصرة» باستخدام اللغة الإنجلیزیة، واعتبرت ھذه اللغة قفزة عملاقة في عالم لغات البرمجة.
بعض الامثلة:
L for Load , A for Add, B for Brave C for comp

الجیل الثالث
------------

الجيل الثالث (3GL): اللغات عالیة المستوى الإجرائیة

على الرغم من التمیز الذي أظھرته لغات الجیل الثاني على لغة الآلة، إلا إنھا عانت بعض العقبات فالبرنامج المكتوب بلغة التجمیع معتمد على الآلة التي یتم تنفیذه علیھا ولا یمكن استخدامه على آلة أخرى، إلا بعد إعادة كتابته لیتلاءم مع تكوین ھذه الآلة الجدیدة، عقبة أخرى تتمثل في عملیة تصمیم البرنامج والذي یتطلب من المبرمج التفكیر بدقائق البرنامج جمیعھا وھذا یعني أن على المبرمج أن یبني البرنامج خطوة خطوة من مستوى أدنى لمستوى أعلى. بینما یكون التصمیم الأفضل فیما لو تم التفكیر به من مكونات كلّیة (major features) ومن ثم یتم تقسیم الكلیات لمكونات أكثر تفصیلا.
اعتماداً على ھذه الفكرة تم التوجه نحو تطویر لغات برمجة تمكّن المبرمج من بناء برنامج معتمداً على النظرة الكلیة (high-level) ومن ثم تحویلھا لمكونات أدنى (low-level).

ونتج عن ذلك جیل ثالث من لغات البرمجة عرفت باسم لغات البرمجة عالیة المستوى واعتمدت ھذه اللغات على لغة الإنسان الطبیعیة - اللغة الإنجلیزیة - ورموز ریاضیة ومنطقیة معروفة.

ثم ظھرت اللغات الكائنیة التوجه بعد ظھور الویندوز وسمیت موجھة لأنھا توجه الحاسوب لعمل ما یقوم به خطوة خطوة دون الحاجة أیضاً لمعرفة التفاصیل.

ومن أمثلتھا لغة كوبول ومعظم اللغات الحدیثة تعتبر لغات غرضیة التوجه.

من أھم مزایا ھذا الجیل أنھا تمنح المبرمج وقت أكبر للتركیز على احتیاجات المستخدم وبالتالي یصمم برنامج یتوافق مع ھذه الاحتیاجات.

الجیل الرابع
------------

الجيل الرابع (4GL) اللغات عالیة المستوى الغیر إجرائیة
الجیل الرابع سھل الاستخدام أكثر من الجیل الثالث وھو لغة لا تتطلب خطوات لإجرائھا.
المبرمج یخبر الحاسب النتیجة المطلوب تحقیقھا بدلا من كیف یمكنه تحقیقھا. 
ولسھولتھا منحت المبرمج القدرة على تطویر البرامج أنواعھا:

* لغات الجداول الإلكترونیة.
* قواعد البیانـــــات
* اللغة الاستعلامیة: وھي أسلوب محدد لصیاغة عبارات استعلامیة والتي تتم بإدخالھا إلى النظام من خلال محطات استعلامیة في ھیئة أوامر یطلب استرجاع بیانات من ملف معین موجود في قواعد البیانات.

أیضا یستطیع المستخدم بواسطة اللغة الاستعلامیة طرح تساؤلات فیصل إلى إجابات فوریة.

الجيل الخامس
------------

الجيل الخامس (5GL) اللغات الطبيعية:(بالإنجليزية: Natural Language)‏

وهي لغات صممت لكي يقوم الحاسب بتنفيذ برامج بدون المبرمج ودون الحاجة لمعرفة كيف يتم كتابة الكود بالتفصيل، تستخدم هذه بشكل رئيسي في برامج الذكاء الصناعي وتتميز باهتمامها بالواجهة البينية بين المستخدم والكمبيوتر بحيث يمكن التعامل معها بالصوت والصورة واللغة البشرية، ويمكن اعتبار الفيجوال بيسك مثال بسيط عليها.

| * ع
* ن
* ت
المواضيع الأساسية في علم الحاسوب النظري |
| --- |
| علم الحاسوب النظري | 
* تحسيب
* خوارزميات
* نظرية المعلومات
* نظرية الأتمتة
* نظرية المخططات
* نظرية التعقيد الحسابي
* تشفير
* علم التعمية
* ترميز
* لغات شكلية
* استمثال (توضيح)
* بناء المترجمات البرمجية
* نظرية أنظمة التشغيل
* نظرية قواعد البيانات
* طريقة شكلية
* حوسبة طبيعية

 |
| معلوماتية عملية | 
* نظام تشغيل
* حوسبة
* رسوميات حاسوبية
* قواعد بيانات
* بنى بيانات
* برمجة

 |
| هندسة الحاسب | 
* تقنية المعلومات
* شبكة حاسوب
* عتاد الحاسوب
* أمن الحاسوب
* اختراق الحاسوب

 |
| معلوماتية عملية | 
* نظم معلومات
* معلوماتية حيوية
* معلوماتية جيولوجية
* كيمياء حاسوبية
* فيزياء حاسوبية
* معلوماتية اقتصادية
* وسائط متعددة

 |
| ذكاء اصطناعي | 
* تعلم الآلة
* معلوماتية عصبية
* تصنيف إحصائي
* لغويات حاسوبية

 |
| برمجيات | 
* لغات البرمجة
* برمجيات حرة
* برمجيات تجارية

 |
| أنظمة التشغيل | 
* دوس (نظام تشغيل)
* ويندوز
* يونكس
* لينكس
* ماك أو إس
* آي بي إم إيه آي إكس
* نتوير
* تاريخ أنظمة التشغيل

 |
| عتاد الحاسوب | 
* وحدة معالجة مركزية
* الذاكرة
* قرص صلب
* لوحة أم
* بطاقة الرسوميات
* بطاقة الشبكة
* تخزين ضوئي
* وحدات الإدخال والإخراج

 |

| * ع
* ن
* ت
لغات برمجة |
| --- |
| 
* إي شارب (.نت)
* أيدا
* أكشن سكربت
* إرلانج
* باسكال
* بايثون
* بلو
* برولوغ
* بوو
* بي إتش بي
* بيرل
* بيسيك
* بيتا
* تايب سكريبت
* جافا
* جافا سكريبت
* ديبول
* رياكت
* جايثون
* دلفي
* دي
* هاسكل
* روبي
* سكالا
* سي
* سي#
* سويفت
* سي++/سي إل آي
* سي++
* غراف كيو إل
* فورتران
* فيجوال بيسك
* كوبول
* كريستال
* كومال
* كريبتون
* كوتلن
* كوبرا
* لغة تجميع
* ليسب
* لنكس
* مودولا
* نيم

* ***القائمة***

 |

| * ع
* ن
* ت
هندسة البرمجيات |
| --- |
| مجالات | 
* برمجة
* متطلبات البرمجيات
* نشر البرمجيات
* تصميم البرمجيات
* صيانة البرمجيات
* فحص البرمجيات
* تحليل النظم
* أساليب رسمية

 |
| مفاهيم | 
* نمذجة البيانات
* هيكلية الشركات
* مواصفة وظيفية
* لغة نمذجة
* Orthogonality
* نمط برمجة
* برمجية
* معمارية برمجيات
* منهجية تطوير برمجيات
* عملية تطوير البرمجيات
* جودة البرمجيات
* ضمان الجودة (برمجيات)
* برمجيات علم الآثار
* التحليل الإنشائي
* مهندس برمجيات
* كود قديم

 |
| توجهات | 
* تطوير البرمجيات أجايل
* Aspect-oriented
* برمجة كائنية التوجه
* أنطولوجية (علم المعلومات)
* البنية الخدمية
* دورة حياة تطوير البرمجيات

 |
| النماذج | 

|  |  |
| --- | --- |
| تطوير  | 
* تطوير البرمجيات أجايل
* EUP
* Executable UML
* نموذج بناء تدريجي  ‏
* تطوير متكرر ومتزايد
* العملية الموحدة لراشيونال IBM
* سكرم
* نمذجة البرمجيات
* النموذج اللولبي
* V-Model
* نموذج الشلال
* برمجة قصوى

 |
| أخرى  | 
* أيزو/آي إي سي 15504
* تكامل نموذج نضوج المقدرة
* نماذج بيانات
* طريقة الكيانات والعلاقات
* Function model
* نموذج المعلومات
* Metamodeling
* Object model
* Systems model
* View model

 |
| لغات  | 
* IDEF
* لغة النمذجة الموحدة
* SysML

 |

 |
| مهندسو برمجيات | 
* كينت بيك
* Grady Booch
* فريد بروكس
* باري بوهم
* وورد كانينغهام
* توم ديماركو
* مارتن فاولر
* ماري جان هارولد
* توني هور
* واتس همفري
* مايكل جاكسون (عالم حاسوب)
* إيفار جاكوبسون
* Stephen J. Mellor
* برتراند ماير
* David Parnas
* جورج ونستون رويس
* جيمس رامبوغ
* نيكلاوس ويرث
* إدوارد يوردون
* Victor Basili

 |
| مجالات مشابهة | 
* علم الحاسوب
* هندسة حاسبات
* إدارة المشاريع
* هندسة أنظمة

 |
| 
* صفحة تصنيف تصنيف:هندسة البرمجيات
* كومنز

 |

| * ع
* ن
* ت
أجيال لغات البرمجة |
| --- |
| الجيل الأول. الجيل الثاني. الجيل الثالث. الجيل الرابع. الجيل الخامس |

* أيقونة بوابةبوابة برمجة الحاسوب