Skip to content

Commit 21c7681

Browse files
authored
Merge pull request #1 from 0ud/main
added basic file structure
2 parents e8350af + 797592e commit 21c7681

22 files changed

Lines changed: 9564 additions & 3 deletions

basics-doc/index.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
---
2+
title: مقدمة
23
sidebar_position: 1
34
---
45

5-
# وثائقي جديد
6+
# مرحبًا
67

7-
هذه بداية قسم **الأساسيات** على المسار `/basics-doc`.
8+
مرحبًا بك في قسم الأساسيات, هنا تجد ما تحتاجه من المعلومات للبدء في مسيرتك البرمجية مرتبة على عدة أقسام:
89

9-
يمكنك إضافة صفحات أخرى داخل مجلد `basics-doc` وستظهر تلقائيا في الشريط الجانبي.
10+
* التعريف: فيه نبذة هامة عن علم البرمجة وكيف يقرأ الحاسوب النصوص التي نكتبها.
11+
12+
* لغات البرمجة: فيه التعريف بمفهوم لغات البرمجة وأنواعها والفرق بينها.
13+
14+
* مجالات البرمجة: نستعرض فيه أبرز أقسام ومجالات البرمجة الشهيرة مع نبذة عن كل واحد منها.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"label": "التعريف",
3+
"position": 1
4+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
title: "البرمجة"
3+
sidebar_position: 2
4+
---
5+
6+
## التعريف بالبرمجة
7+
8+
البرمجة هي عملية إعطاء الأوامر للحاسوب لغرض تنفيذ أمر معين سواءً عن طريق كتابة نصوص وأوامر ( وهي الطريقة الأكثر شيوعًا في وقتنا الحاضر ), أو من خلال ربط دائرة كهربائية أو قطع ميكانيكية بصورة معينة لتعطي نتائج محددة ( وهو المستعمل في بعض الاختصاصات الهندسية ), أو من خلال عمل ثقوب في ورقة مخصصة يتعرف الكمبيوتر على هذه الثقوب ويترجمها إلى أوامر وهي الطريقة المستعملة سابقًا في بداية ظهور الحواسيب في صورها البدائية.
9+
10+
## عناصر البرمجة
11+
12+
تتكون عملية البرمجة من عدة عناصر:
13+
14+
1- المبرمِج: وهو الإنسان المختص بتنفيذ هذه العملية.
15+
16+
2- المستخدم النهائي: وهو المستفيد من مُخرجات عملية البرمجة كمستخدمي التطبيقات والزبائن أو حتى المبرمج نفسه في بعض الأحيان.
17+
18+
3- البرنامج: وهو مجموعة الأوامر التي يضعها المبرمج في الحاسوب.
19+
20+
4- الحاسوب: وهو المسؤول عن معالجة البرنامج وأخذ المدخلات وإعطاء النتيجة النهائية, وقد يتفاعل المستخدم معه أحيانًا.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
title: "البرنامج"
3+
sidebar_position: 1
4+
---
5+
6+
## مقدمة
7+
8+
قبل أن نبدأ في تعلم البرمجة, علينا أن نعلم ماهية الذي نتعلمه. فعلينا أن نعرف: ما هو البرنامج؟ وما هي البرمجة؟ وما الفرق بين البرنامج والتطبيق؟
9+
10+
## البرنامج
11+
12+
يمكننا تعريف البرنامج بأنه مجموعة من الأوامر يقوم المبرمج بتوجيهها إلى الكمبيوتر لتنفيذ غرض معين, وهذا أبسط وأشمل تعريف.
13+
14+
يشمل هذا التعريف كل سطر برمجي يكتبه المستخدم ولو لم يكن موجهًا للمستفيد النهائي والمستخدم النهائي للتطبيق, بل قد تكون أداة خاصة بالمبرمجين تساهم في عملية البرمجة فكل هذا يُطلق عليه " البرنامج ".
15+
16+
نتعلم مما سبق: أن البرنامج هو أوامر برمجية يضعها المبرمج وقد تكون في قطعة إلكترونية صغيرة, أو إضافة للمتصفح, أو حتى الكود البرمجي الخاص بالثلاجة وأجهزة المطبخ الذكية!
17+
18+
## أمثلة شهيرة
19+
20+
يعد نظام التشغيل ( سواءً كان ويندوز, ماك, لينكس, أو غير ذلك ) مجموعةً من البرامج التي تعمل معًا لتوفير بيئة قابلة للاستعمال من قبل المستخدم ويمكنه تثبيت البرامج والتطبيقات الأخرى عليها.
21+
22+
كما ويعد نظام قطعة الإدخال والإخراج ( BIOS ) من أشهر الأمثلة فهي برنامج يربط بين مكونات الحاسوب المتنوعة ( المعالج, كرت الشاشة, الذاكرة العشوائية, الذاكرة التخزينية, وغيرها ) ويجعلها تعمل معًا ويعطي نافذة ربط بين الجزء المادي من الحاسوب والجزء البرمجي
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
title: "التطبيق"
3+
sidebar_position: 3
4+
---
5+
6+
## التعريف بالتطبيق
7+
8+
هو نوع من أنواع البرامج يستهدف المستخدم النهائي بشكل خاص ويمكن للمستخدم التفاعل معه ويتكون من عدة برامج تعمل مع بعضها في نسق معين لتنفيذ غرض واحد
9+
10+
## الفرق بينه وبين البرنامج
11+
12+
* الفئة المستهدفة: البرنامج واسع يستفيد منه المبرمج أو المستخدم النهائي, أما التطبيق فهو موجه للمستخدم النهائي بصورة أساسية.
13+
14+
* التصميم: البرنامج قد يخلو من واجهة رسومية ويكون بتصميم صعب نسبيًا للمستخدم النهائي, أما التطبيق فيحتوي على واجهة رسومية وتصميم جذاب وسهل الاستخدام.
15+
16+
* الوظيفة: يؤدي البرنامج وظيفة واحدة, أما التطبيق فهو أوسع ومتعدد الوظائف.
17+
18+
* الاعتمادية: قد يكون البرنامج مستقلًا لا يعتمد على نظام التشغيل, أما التطبيق فيتم تثبيته فوق نظام التشغيل فهو جزء من نظام التشغيل.
19+
20+
## الفرق بينه وبين نظام التشغيل
21+
22+
نظام التشغيل مجموعة برامج تمثل الجزء البرمجي من الحاسوب فهي التي تربط بين الجزء المادي من الحاسوب وبين المستخدم النهائي. ويتكون من الأساس أو اللب بالإضافة إلى الواجهة وقد تكون الواجهة رسومية أو غير رسومية. ويتم تحميل التطبيقات فوق نظام التشغيل لتكون جزءًا منه.
23+
24+
وتعتمد التطبيقات على السطور البرمجية والمكتبات الموجودة في نظام التشغيل لتبني نفسها عليها.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"label": "لغات البرمجة",
3+
"position": 2
4+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
---
2+
3+
title: "التصنيف العام"
4+
sidebar_position: 3
5+
6+
---
7+
8+
## طرق التصنيف
9+
10+
لغات البرمجة كثيرة جدًا يصعب إحصاؤها إلا أن المستخدم والشائع منها ليس بالكثير, مع هذا يمكننا أن نصنفها إلى أقسام رئيسية بطريقتين:
11+
12+
1- بالاعتماد على قربها وبعدها من لغة الآلة
13+
14+
2- بالاعتماد على طريقة تحويل السطر البرمجي إلى لغة يستطيع الحاسوب فهمها
15+
16+
### التصنيف بالاعتماد على القرب والبعد من لغة الآلة
17+
18+
1- لغات عالية المستوى: وهي اللغات التي يكون النص البرمجي فيها أقرب إلى لغة البشر, سهلة القراءة والبرمجة, إلا أنها بعيدة من أجزاء الحاسوب الأساسية فلا يمكنها - بشكل مباشر - التعديل على الذاكرة العشوائية للكمبيوتر أو القطع المادية, كما أنها تعاني من كونها أبطأ نسبيًا من اللغات منخفضة المستوى
19+
20+
2- لغات منخفضة المستوى: وهي اللغات التي يكون النص البرمجي فيها أقرب إلى لغة الآلة, صعب القراءة نسبيًا, إلا أنها يمكنها مباشرة جميع أجزاء الحاسوب بلا عوائق وتكون في العادة أكثر سرعةً من اللغات عالية المستوى
21+
22+
#### مثال
23+
24+
فيما يلي مثال لطباعة جملة ترحيبية بلغة بايثون ( وهي لغة عالية المستوى ), قم بمقارنته بنفس الأمر لو كان بلغة التجميع الموجودة في الدرس السابق.
25+
26+
```python
27+
print("Hello World")
28+
```
29+
30+
### التصنيف بالاعتماد على طريقة الترجمة
31+
32+
1- لغات مجمّعة: يقوم الحاسوب بجمع البرنامج كله وتحويله مرةً واحدة إلى ملف بلغة الآلة.عند تشغيل هذا الملف يقوم الحاسوب بقراءة ملف يتكون من 0 و 1 يمكن له قراءتها بسهولة وبسرعة
33+
34+
2- لغات مترجمة: يقوم الحاسوب بعد فتح البرنامج بقراءته سطرًا تلو الآخر وتحويل كل سطر إلى لغة الآلة
35+
36+
النتيجة: قد تظهر طريقة العمل متشابهة في الحالتين إلا أنها تختلف اختلافًا كبيرًا وذلك في عدة وجوه من أبرزها:
37+
38+
* إذا غيرت سطرًا واحدًا في البرنامج المجمّع, يجب عليك انتظار الحاسوب ليبني البرنامج كله ويجمعه مرة أخرى مما يجعل التغييرات الطفيفة تأخذ وقتًا كبيرا. أما في البرنامج المترجم, سيقوم الحاسوب بإعادة بناء السطر الذي تغير فقط مع إبقاء باقي الأجزاء.
39+
40+
* السرعة: بما أن اللغات المجمّعة تنتج ملف نهائي مكتوب بلغة الآلة, سيكون تشغيل البرنامج للمرة الثانية بعد بناءه فوريًا وسريعًا, أما في اللغات المترجمة فيجب على الحاسوب أن يترجم الأوامر سطرًا بعد الآخر في كل مرة تقوم بتشغيل البرنامج بها.
41+
42+
إذن: لكل نوع فائدة واستخدام خاص ويعتمد اختيار اللغة المناسبة على الاستخدام المراد والسرعة المطلوبة والبساطة والتعقيد للبرنامج
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
title: "اللغات الاجرائية"
3+
sidebar_position: 4
4+
5+
---
6+
7+
## نبذة تعريفية
8+
9+
تعد اللغات الاجرائية من أهم ركائز البرمجة, وهي ليست لغات برمجة بذاتها وإنما تستعمل مع لغات البرمجة كعامل مساعد. ونستطيع أن نعرّفها بأنها لغات تستعمل لغرض الترتيب, وبيان هيكلية موقع \ مستند ما. تشتمل على ذكر النصوص والعناصر فقط.
10+
11+
## أبرز اللغات
12+
13+
* HTML: تُستعمل مع مواقع الويب لتطوير واجهات المستخدمين.
14+
15+
* XML: وهي شبيهة بلغة ( HTML ) إلا أن استخدامها أوسع فهي تستعمل مع لغات برمجة متنوعة ولا نستخدمها في واجهات المواقع وإنما تستخدم في خزن البيانات الأساسية كإعدادات تطبيق ما.
16+
17+
ويشابهها في الوظيفة لغات ( YAML, TOML ).
18+
19+
* JSON: وهي واسعة الاستعمال تستخدم في مجال الويب مع لغة ( JavaScript و PHP ) وتستعمل أيضًا مع باقي لغات البرمجة في جميع المجالات مثل ( Python, Java, C# ) وغيرها. فكل لغة تقريبا لديها مكتبة أوامر يمكنها من خلالها قراءة ملفات ( JSON ) والتعامل مع البيانات المخزونة فيها.
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
---
2+
3+
title: "لغة التجميع"
4+
sidebar_position: 2
5+
6+
---
7+
8+
## التعريف بها
9+
10+
لغة التجميع هي من أقدم اللغات البرمجية وهي أقدم لغة يتم استعمالها في عصرنا الحاضر وإن كان استخدامها قد قلَّ بسبب ظهور ما هو أحدث منها.
11+
12+
## مكانتها
13+
14+
تعد لغة التجميع عنصر مفصلي مهم في تأريخ البرمجة إذ أنها أول محاولة ناجحة لتقريب لغة الآلة الثنائية إلى المبرمجين لتمكن لهم كتابة البرامج المتنوعة
15+
16+
وتعد أيضًا اللغة الأقرب للغة الآلة بل يمكن أن نقول أنها لغة الآلة ذاتها لكن بصورة مبسطة بعيدة عن الأصفار والواحدات
17+
18+
## تكوينها وطريقة عملها
19+
20+
تتواصل لغة التكوين مع قطع الحاسوب المادية بشكل مباشر وتقوم بالتعديل في ذاكرة الحاسوب العشوائية بلا وساطة مما يشكل خطرًا كبيرًا في حالة وقع خطأ من المبرمج.
21+
22+
لكن هذا الأمر كان إيجابيًا في الوقت ذاته إذ أن انعدام الوساطة بين الحاسوب والبرنامج يؤدي إلى تنفيذ الأوامر بأقصى سرعة ممكنة دون وجود بطء ناتج من عملية ترجمة الأوامر البرمجية إلى أوامر يفهمها الحاسوب
23+
24+
## مثال عليها
25+
26+
المثال التالي يطبع جملة ( Hello World ) بلغة التجميع ويظهرها أمام المستخدم
27+
28+
```asm6502
29+
section .data
30+
hello: db 'Hello world!',10 ; في البداية نقوم بتحديد الجملة التي نريد طباعتها
31+
helloLen: equ $-hello ; نطلب من الكمبيوتر اعطاءنا عدد الحروف في الجملة لغرض حجز مكان يكفي في الذاكرة العشوائية للنتيجة المرادة
32+
section .text
33+
global _start
34+
_start:
35+
; هذا الجزء من الأوامر يطلب من الحاسوب استدعاء أمر الطباعة
36+
mov eax,4
37+
mov ebx,1
38+
; هذا الجزء يطلب طباعة الجملة
39+
mov ecx,hello
40+
mov edx,helloLen
41+
; هذا الجزء ينبه الحاسوب بانتهاء الأوامر المرادة وإغلاق التطبيق
42+
int 80h
43+
mov eax,1
44+
mov ebx,0
45+
int 80h;
46+
```
47+
48+
النتيجة:
49+
50+
```
51+
Hello World
52+
```
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
title: "ماهيتها"
3+
sidebar_position: 1
4+
---
5+
6+
## نبذة تأريخية
7+
8+
كما أن للبشر لغات يتكلمون بها ويتواصلون مع بعضهم, للحاسوب أيضًا لغة يتفاعل بها وتُكتب فيها الأوامر تسمى اللغة " الثنائية " وتتكون من حرفين " 0 " و " 1 " فهي محصورة في احتمالين فقط إما " 0 " ويعني أن الدائرة الكهربائية مغلقة و " 1 " الذي يعني أن الدائرة الكهربائية مفعلة. ثم يحول الحاسوب هذه الإشارات الكهربائية إلى أوامر ويخرج منها بنتائج.
9+
10+
## ظهور لغات البرمجة
11+
12+
تصعب على الإنسان كتابة الصفر والواحد وخصوصًا على المدى البعيد ولو افترضنا هذا ممكنًا فسيصعب قراءة الأمر البرمجي وخاصةً إن كان الأمر طويلًا مما أدى إلى ظهور لغات البرمجة: وهي رموز وحروف يمكن للإنسان قراءتها وفهمها ثم يقوم الكمبيوتر بتحويلها إلى لغة الصفر والواحد.
13+
14+
مثال:
15+
16+
``` Hello World -> 01001000 01100101 01101100 01101100 01101111 00100000 01110111 01101111 01110010 01101100 01100100 ```
17+
18+
تقوم أداة تسمى " المترجم " بتحويل الكلمة التي يكتبها المبرمج إلى أصفار وواحدات يمكن للحاسوب فهمها وتطبيقها مما أدى إلى تسهيل عملية كتابة الأوامر البرمجية وجعلها قريبة من المبرمج ويستطيع الحاسوب قراءتها في الوقت ذاته

0 commit comments

Comments
 (0)