samedi 12 novembre 2011

لغات البرمجة في العصر الحديث


يتم تطوير برامج الحاسوب باستخدام لغات البرمجة وتتكون لغة البرمجة من مجموعة من الرموز والقواعد كأي لغة أخرى لتوجيه العمليات في الحاسوب وهناك العديد من لغات البرمجة المستخدمة ويتم تصميم كل منها لحل نوع خاص من المشكلات . ومن أهم لغات البرمجة المعروفة الفورتران , كوبول , الباسكال , سي , وجافا .
يمكن لأي شخص يهدف لأن يصبح مبرمجا أن يتعلم إحدى هذه اللغات ويتقنها ليستطيع بعد ذلك إعطاء أوامره للحاسوب .
مستويات لغات البرمجة
Levels of language
هناك العديد من لغات البرمجة معظمها ينتمي إلى نفس الفئة تسمى مجموعة الفئات المختلفة للغات البرمجة بمستويات لغات البرمجة وذلك لأنها يمكن أن ترتب بشكل هرمي وأدنى المستويات في هذا الهرم تحتله اللغات الاقرب إلى مايستخدمه الحاسوب اي النظام الثنائي (0,1) والمستوى الاعلى تحتله اللغات التي تظهر مشابهه نوعا ما للغة الانسان مثل الانجليزية وعند الانتقال من أدنى المستويات إلى أعلاها تظهر المستويات الاتية:


1.لغات الآلة (متدنية المستوى) Machine Language
2.لغات التجميع (متدنية المستوى) Assembly Language
3.لغات الجيل الثالث (عالية المستوى ) High-Level Languages
4.مولدات التطبيقات (عالية المستوى) Application Generators

قبل الانتقال للحديث عن المستويات لغات البرمجة لابد من التأكيد على أن لغة الحاسوب تتكون من مجموعة صفوف من 0,1 وهي اللغة الوحيدة التي يفهمها وتسمى اللغة الثنائية أو لغة الالة .

ماهي لغة php

تعتبر لغة PHP
 
 
من اقوى اللغات الحاليه واسرعها , وتعتبر المفضله عند كثير من المبرمجين لسهولتها وبساطه التعامل معها, في هذا الدرس سوف أحاول جاهدًا أن نتعلم المفاهيم الاساسيه عن هذه اللغه في منتدانا الغالي كنوز المعرفة ,وايظًا مظاهر قوتها وبعض توضيحات القاء الدروس لان هذا الدرس يعتبر البدايه والانطلاقه لنتعلم معاً



لماذا تتعلم معنا ؟
سوف تتعلم من هذه الدروس كيفية عمل برامج PHP من ابسطها الى اعقدها , مرورا من تعريف المتغيرات الى انشاء الدوال والكائنات البرمجيه وربطها مع بعضها البعض. يجب ان تكون لديك خبره في لغة HTML وقمت ببعض البرمجه من قبل ولا يعني ان تكون خبيرا جدا او قمت ببرمجة مواقع او قواعد بيانات. اما اذا كنت مبتدأ سوف تفيدك الدروس ولكن تحتاج الى كثير من التركيز والتطبيق المتواصل ووقت اطول.
مقدار الاستفاده من تعلم PHP معنا
تعلمك معنا سوف يتيح لك بناء مواقع حقيقه وممتازه وسوف نحاول ان نقوم بتغطية جميع ما يتعلق بهذه اللغه. اذا استخدمت لغة HTML من قبل فمن المؤكد انك لاحظت عدم ديناميكية الصفحات ولكن مع PHP سوف تلاحظ الفرق, وبعد الانتهاء من الدروس بالكامل سوف نقوم بعمل تطبيقات حقيقه يتم تقريرها لاحقا.
ماهي لغة PHP ؟
PHP عباره عن لغة تسمى ( Server Side Scripting Language ) ونعني بذلك انها تترجم من جهة الخادم وليس من جهاز المستخدم. لنضرب مثالا واقعيا على ذلك , عند الدخول الى الدردشه يجب عليك ان تقوم بتحميل (( JAVA VM )) على جهازك لتتمكن من الدخول ولكن اذا قمت بزياره اي موقع يستخدم لغة PHP فلن يكون هناك حاجه لتنصيب او تحميل اي برامج مساعده. فما وراء الكواليس كله يحصل في الخادم (( Server )), صممت هذه اللغه خصيصا للمواقع. ومن ضمن صفحات HTML يمكنك ادراج لغة PHP بداخلها لكي تنفذ في كله مره قمت بزياره الصفحه.
بدأت لغة PHP بمجهود شخص واحد يسمى ( Rasmus Lerdorf ) في سنة 1994 ومرت بثلاث مراحل جذريه لنرى ماهي عليه الان, حتى انه في سنة 2002 كان عدد المواقع التي تستخدمها اكثر من 9000000 (( تسعة مليون )) موقع. PHP لغة برمجة متاحه للكل لتطويرها او العمل عليها وهذا ما يسمى ( Open Source ). قديما كان اختصار PHP هو ( Personal Home Page ) ولكن تغيرت الى الاسم الحالي ( Hypertext Processor ). النسخه الحاليه للغة PHP هي 5 وقد حصل بها تطور كبير وتغيرات جذريه كبيره واصبحت اقوى بكثير من ما هي عليه الان.

ماهي لغة php ?? || !!
( مثال 1 : لاحظ انك لا تحتاج الى مترجم PHP على جهازك الشخصي )

قوة لغة PHP :
سوف اقوم بذكر قوة لغة PHP على شكل نقاط وسوف نتكلم عن كل نقطه بالتفصيل

  • الاداء العالي
    تعتبر اللغه جدا مميزه وفعاله , حتى مع دعمها بتقنيه ZEND اصبحت اقوى , بحيث يمكن ان تتحمل ملايين الاوامر في اليوم الواحد
  • دعمها لعدد كبير من قواعد البيانات
    تدعم لغة PHP عدد كبير من قواعد البيانات منها MySQL و mSQL و Oracle و DBM و وغيرها الكثير
  • الدوال الداخليه او ( Built-In Library )
    تحتوي اللغه على كثير من الدوال الجاهزه للاستخدام , ومسهله بطريقه كبيره , بحيث يمكن من سطرين برمجيين او ثلاث من انشاء صوره من غير استخدام اي برنامج تحرير رسومي
  • القيمه
    اللغه مجانيه ولا يوجد اي مبلغ تقوم بدفعه لتحميلها ويمكنك تحميل اللغه من موقعها الرسمي http://www.php.net
  • التعلم
    تعلم اللغه سهل وهو مبني على لغة PERL و C و JAVA فإذا انت تعرف احدها , فتأكد انك سوف تختصر كثير من الوقت للتعلم

HTML

نبذة تاريخية حول لغة HTML



 
الـ HTML هي اختصار Hyper Text Markup Language أي لغة ترابط النصوص التشعبية , وهي التقنية الجوهر التي تتحكم بما سوف يعرضه المستعرض على الشاشة.
تم تصميم HTML في البدء لكي يتمكن العلماء من إنشاء مستندات نصية تحتوي على أوامر تنسيق أساسية تسمى (ترميز) وارتباطات إلى معلومات أخرى (تسمى نصوص تشعبية أو ارتباطات تشعبية) على سبيل المثال يمكن أن يحتوي مستند عن الهزات الأرضية على ارتباط إلى مستندات أخرى تتحدث عن الهزات الأرضية كتبها علماء آخرون.
لم يخطر على بال مخترعي HTML أن هذه التقنية ستبرهن عن فعالية وفائدة لدرجة أنها ستصبح السبب الرئيسي لنمو الوب.
أساسيات الوسوم (الأوامر) :
هي عبارة عن مجرد ملف نصي عادي يكتب في أي برنامج نصي (على سيبل المثال NotePad) ويحفظ بصيغة HTML أو HTM , ويحتوي هذا المستند على شفرات خاصة تسمى وسوم "أوامر" (Tags) توضع عادة حول كتل من النصوص , تلك الكتل والوسوم تسمى عناصر (Elements) ويفسر مستعرض الوب كإنترنت إكسبلورر او نيتسكيب تلك العناصر ليحدد كيفية عرضه على الشاشة. في معظم الأحيان, يملك كل عنصر في HTML وسم فتح ووسم أغلاق ويتألف وسم الفتح من إسم الوسم مع أشارتي أصغر من وأكبر من < و > . على سبيل المثال:
وسم فتح الخط العريض هو <
B> ويكون وسم إغلاقه محصوراً بين الإشارات أيضاً ولكن في هذه الحالة توجد شرطة أمامية قبل إسم الوسم <B/>, ويوضع النص الذي سيتأثر بالوسم بين وسمي الفتح والإغلاق ... وعند قيام المستعرض بالتفسير سيظهر النص المكتوب بين الوسمين.
على سبيل المثال :
لكتابة الإنترنت للجميع بالخط العريض نجعلها بين وسمَيْ الفتح والاغلاق
<B/>الإنترنت للجميع<B>
** قبل كل شيء إفتح أي برنامج كتابة لديك على سبيل المثال برنامج المفكرة Notepad في ويندوز. واكتب الآتي :-
<HTML dir=rtl>
<
HEAD>
<
TITLE>صفحة إختبار</TITLE>
</
HEAD>
<
BODY>
مرحباً بكم في عالم الإنترنت
</
BODY>
</
HTML>
إحفظ الملف بأي إسم ولكن بصيغة html. مثلاً : index.htm أو index.html
وسوم HTML الحيوية :
الوسم الأول <HTML dir=rtl> يشير للمستعرض أنَّ المواد التي تليه يجب معالجتها باستعمال قواعد التركيب النحوي ..والبنيوي الذي تفرضه لغة HTML ، و dir=rtl تخبر المستعرض أن الكتابة ستكون من اليمين إلى اليسار.(كلغتنا الحبيبة).ويظهر وسم الإغلاق المناسب له كالتالي <HTML/> في نهاية الملف.
وسوم الترويسة :
يشير الوسمان .. <HEAD> و <HEAD/> إلى حدود منطقة الترويسة في الملف .. التي تحتوي على بنود لا تظهر على الصفحة بشكل مباشر ، وهي اختيارية .. رغم أن بعض العناصر تعمل فقط عند وضعها ضمنها .. TITLE هو أحد العناصر . يعرف الوسمان <TITLE> و <TITLE/> ما سيظهر في شريط عنوان المستعرض (الشريط الأزرق الموجود فوق شريط القوائم) ...انظر الى المستعرض الذي أمامك ترى شريط فوق في الاعلى يظهر عليه اسم البرنامج.إذاً سيكون إسم صفحتنا هو (صفحة إختبار).
وسوم الجسم :
المنطقة التالية المبينة في السرد محصورة بالوسمين <BODY> و <BODY/>. كما تتوقع هذه المنطقة تسمى جسم المستند وتحتوي على محتويات المستند - المواد المرئية على الصفحة. لذا فإن مثالنا يعرض النص (مرحباً بكم في عالم الإنترنت).
سيكون الناتج في المستعرض كالتالي:-
مرحباً بكم في عالم الإنترنت
وسوم تنسيق الأحرف :
إذا بين المثال السابق حدود اللغة HTML فإن الويب مضجرة جداً. لكن يمكنك أن تكون إبداعياً أكثر وتغيّر مظهر النص بواسطة وسوم الأحرف ، كما هو مبين في السرد التالي:-
<HTML dir="rtl">
<
HEAD>
<
TITLE>صفحة إختبار</TITLE>
</
HEAD>
<
BODY>
هذا يريك <
B>نصاً عريضاً</B>
هذا يريك <
I>نصاً مائلاً</I>
هذا يريك <
U>خطاً تحت النص</U>
<
FONT COLOR="blue">هذا يريك كيفية تغيير لون الخط</FONT>
<
FONT SIZE="5">هذا يريك كيفية تغيير حجم الخط</FONT>
<
FONT FACE="Tahoma">هذا يريك كيفية تغيير نوع الخط</FONT>
السطران الأولان في الجسم يحتويان على وسمي تنسيق أحرف أساسيين ، لجعل النص أسود عريضاً ومائلاً. في السطر الأول ، يحيط الوسمان <B> و <B/> بالكلمتين نصاً عريضاً وهاتين الكلمتين ستظهران سوداوان عريضتان في المستعرض. وفي السطر التالي يؤدي الوسمان <I> و <I/> إلى جعل الكلمتين نصاً مائلاً مائلة. هناك أيضاً عدة وسوم تنسيق أحرف أخرى ، كـ <U> للتسطير و <STRIKE> للشطب و <SUP> لرفع الأحرف.
يمكنك استعمال الوسم <FONT> لإعداد تنسيق نصي أكثر تعقيداً. يدعم هذا الوسم عدة سمات (attributes) متنوعة ، منها السمة COLOR و SIZE و FACE ، تحدد بالتفصيل كيفية عمله. هناك عدة وسوم أخرى تدعم السمات، وتسمى أحياناً بارامترات.
يبيّن الوسم <FONT> الأول كيفية استعمال السمة COLOR التي تتيح لك تغيير لون النص. تدعم السمة COLOR نطاقاً كبيراً من الألوان ، من AliceBlue إلى Khaki إلى YellowGreen. تدعم السمة COLOR أيضاً استعمال قيم RGB ثلاثية ستعشرية ، أي ما معناه أنه يمكنك تحديد الألوان بواسطة أرقام ستعشرية (0000FF# مثلاً ) لا تقلق إذا كانت هذه الطريقة غير مألوفة لديك. (يمكنك استخدام برنامج باينت شوب برو).
يتضمن الوسم <FONT> التالي السمة SIZE الذي يتيح لك تغيير الحجم النسبي للنص. يمكنك ضبط حجم النص على مقياس من 1 إلى 7 ، حيث الحجم 7 هو الأكبر. لا تتوافق هذه الأرقام مع أي حجم نقاط أو بكسلات محدد ، ونفس إعداد الحجم يمكنك أن يختلف مظهره في الأنظمة المختلفة يمكنك اكتساب مزيد من التحكم باستعمال مزيد من التحكم باستعمال أوراق الأنماط المتتالية.
يستعمل الوسم <FONT> الأخير السمة FACE لتغيير نوع خط النص. بشكل عام ، من الجيد استعمال الخط الإفتراضي لأنه من الصعب عادة التكهن بأنواع الخطوط المتوفرة في كمبيوتر المستخدم. هذا الأمر صحيح خصوصاً في الحالات التي يتمكن أن تتراوح فيها منصات عمل المستخدم من ويندوز إن تي على كمبيوتر شخصي إلى System 8 على ماكنتوش. بعض الخطوط المتوفرة عادة تتضمن Arial و Courier و Times و Vendana (يدعم إنترنت إكسبلورر 4 تقنية تدعى تضمين الخطوط ، تتيح شمل خطوط يستطيع المستخدمون تحميلها مع الصفحات).
سيكون الناتج في المستعرض كالتالي :-
هذا يريك نصاً عريضاً هذا يريك نصاً مائلاً هذا يريك خطاً تحت النص هذا يريك كيفية تغيير لون الخط هذا يريك كيفية تغيير حجم الخط هذا يريك كيفية تغيير نوع الخط
يمكن وسم واحد أن يكون له عدة سمات. مثلاً الإعداد التالي للوسم <FONT> ينتج نصاً أزرق كبير مكتوب بالخط Times.
<FONT SIZE="7" COLOR="blue" FACE="Tahoma">
يمكنك كتابة السمات في أي ترتيب تريده لتحقيق نفس النتيجة.
قد تتفاجأ بأن تعلم أن المستعرض يعالج أسطر HTML المستقلة في المثال السابق كأنها سطر متواصل من النص يلتف فقط عندما يصل إلى حافة إطاره. ولكن هناك وسوم تجعله يبدأ سطراً جديداً مثل <P> و <BR>. الوسم <P> إختصار Paragraph ، أي فقرة. وفي هذه الأثناء سيبدأ المستعرض بفقرة جديدة. والأمر <BR> يدرج فاصل أسطر. والفرق بين هذين الوسمين أن <BR> لا يدرج أي أسطر إضافية فارغة. لنبدأ بالمثال التالي لنبين لك الفرق بين هذين الوسمين:-
<HTML dir=rtl>
<
HEAD>
<
TITLE>صفحة إختبار</TITLE>
</
HEAD>
<
BODY>
مرحباً بكم في عالم الإنترنت
<
BR>
لا يوجد فاصل أسطر إضافي أعلى هذا النص.
<
P>
يوجد فاصل أسطر إضافي أعلى هذا النص.
</
BODY>
</
HTML>
سيكون الناتج في المستعرض كالتالي:-
مرحباً بكم في عالم الإنترنت
لا يوجد فاصل أسطر إضافي أعلى هذا النص.
يوجد فاصل أسطر إضافي أعلى هذا النص. 
للمزيد .. تابع : تنسيق الأسط

أساسيات المبرمج المستقبلي

أساسيات المبرمج المستقبلي
الخورزميات 
على المبرمج المستقبلي التعرف أولا وقبل كل شيء على  الخوريزميات .


ما هي الخوارزمية؟
لماذا تعد دراسة الخوارزميات عملية هامة في تعلم البرمجة ؟
ما هو دور الخوارزمية بالنسبة للتقنيات الأخرى المستخدمة في مجال الحواسيب؟



في هذا الموضوع سنحاول الإجابة على هذه التساؤلات ...

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

الخوارزمية : بشكل عام، يمكننا تعريف الخوارزمية بأنّها أي سلسلة من الخطوات الحسابية المعرفة بشكل جيد، والتي تأخذ قيمة أو أكثر كـدخل Input ، وتعطي قيمة أو أكثر كـ خرج Output 

بهذا المفهموم فإن الخوارزمية عبارة عن أداة لحل المسائل الحسابية. ونقصد بكلمة مسألة : العلاقة بين الدخل والخرج، وبالتالي فإن دور الخوارزمية توضيح الخطوات الضرورية للوصول إلى العلاقة المطلوبة، وعادةً ما تسمى قيم الدخل التي يتم اختبار الخوارزمية عليها بـ Instance.

لتوضيح المفاهيم السابقة نأخذ المثال التالي :
لنفترض أنه لدينا سلسلة من الأعداد الصحيحة ونريد ترتيبها تنازلياً فعندئذٍ :
المسألة : ترتيب تنازلي للأعداد الصحيحة .
الدخل : سلسلة من الأعداد عددها n.
الخرج : سلسلة الدخل مرتبة تنازلياً .
Insatnce:
  بفرض سلسلة الدخل هي <10,5,30,15,40> فإن سلسلة الخرج هي <5,10,15,30,40>.
أخذنا عملية الترتيب كمثال توضيحي لأهميتها الكبيرة في كثير من التطبيقات، وتمَّ تطوير عدد كبير من خوارزميات الترتيب والتي سنتطرق لها بالشرح والتحليل في مواضيع لاحقة .

بشكل عام، فإنّ أي مسألة حسابية ليس لها حل وحيد وحسب، وإنما عدد لا نهائي من الحلول، بمعنى أنّه يوجد
 لدينا عدد لا بأس به من الخورزميات، فكيف نختار الخوارزمية المناسبة للتطبيق؟

يتم الاختيار بحيث نحقق استغلالاً أمثلياًّ لموارد الحاسوب،
  فما هي هذه الموارد؟

أهم هذه الموارد هي: زمن المعالجة وحجم الذاكرة اللازمة لتنفيذ الخوارزمية .

بشكل عام يُفضّل أن يكون كل من زمن المعالجة وحجم الذاكرة المستهلكة أصغر ما يمكن، فنختار الخوارزمية التي تحقق أحد الشرطين السابقين على الأقل .
أتترككم الأن في فرصة قادمة بإدن الله.
 

.مولدات التطبيقات عالية المستوى Application Generators

(عالية المستوى)
Application Generators


 وتدعى أيضا الجيل الرابع وهي لغات قواعد البيانات والتي تساعد المستخدم النهائي في صناعة الملفات والشاشات والتقارير أو أي وظيفة أخرى دون كتابة برنامج .وباستخدام هذه اللغات
Oracle , Access
فإن المبرمج يقوم بصناعة مجموعة ملفات ذات علاقة فيما بينها حسب أصول ومعايير معينة ثم يصنع المبرمج مجموعة شاشات لتحديث هذه الملفات كإجراء عمليات الاضافة والحذف والتعديل وصناعة مجموعة تقارير واستعلامات لاسترجاع البيانات الموجودة في هذه الملفات كل ذلك باستخدام جمل بسيطة تحدد ما هي السجلات المطلوبة دون تحديد كيفية الحصول عليها فمثلا لاسترجاع أسماء الطلاب الناجحين من ملف الطلاب
Students
 نكتب :

 st-name From Students WHERE average<=50; TCELES  

  فيقوم الجهاز بعرض النتائج مباشرة ولو استخدممنا لغات الجيل الثالث فإننا سنظطر حينها لكتابة برنامج يتكون من مجموعة أوامر تبدأ بفتح الملف المذكور وقراءة السجل الأول وفحص المعدل وطباعة أسم الطالب إذا كان المعدل أكبر من أو يساوي 50 ثم ينقل المؤشر إلى السجل التالي حتى نهاية الملف حيث يتم إغلاقة.
  ببساطة عندما تطلب من خادمك أن يعد لك كوبا من الشاي بإعطائه مجموعة أوامر :
أحضر الابريق, املأه بالماء , ضعه على النار ,...... الخ
 فإنك تكون كمن يستخدم لغات الجيل الثالث , أما عندما تقول له :
أريد كوبا من الشاي ليأتيك بعد دقائق فإن هذا يشبه مولدات التطبيقات

لغات المستوى العالي (High Level Language)

لغات المستوى العالي (High Level Language)



لغات ذات المستوى العالي: (High Level Language)
وهي عبارة عن لغات يمكن للإنسان العادي التعامل معها بسهولة لإنها تستخدم اللغات الطبيعة للإنسان وهذه اللغات تحتاج إلي مترجمات ومفسرات.
ومن أمثلة اللغات ذات المستوى العالي ما يلي:

1- لغة بيسك (BASIC):وتعتبر أسهل اللغات من حيث التعليم والاستخدام ، وتمتاز بأنها تسمح بالتفاعل بين المبرمج والآلة مما يمكنه من إدخال البرنامج وتنفيذه واكتشاف الأخطاء في البرنامج بسهولة ويسر،وتعتمد لغة البيسك على المفسر.

2- لغة السي ( C): وتعد أفضل لغة برمجة لكتابة برمجيات النظم.وتمتاز هذه اللغة بعدد من الأوامر والإيعازات التي يمكنها التحكم مباشرة في المكونات المادية للحاسب، ومعظم نظم التشغيل مكتوبة بلغة السي مثل نظام windows95

3- لغة كوبول (Cobol): وقد صممت للاستخدام في التطبيقات التجارية التي تحتاج إلي إدخال كميات كبيرة من البيانات وحفظها واسترجعها.

4- لغة فورتران (Fortran): وتستخدم للتطبيقات الهندسية والعلمية والتي تحتاج إلي إجراء عمليات حسابية رياضية.وهي أقدم لغات البرمجة.

5- لغة (RPG): وهي لغة تجارية خاصة بإصدار التقارير والإحصائيات

6- لغة باسكال (Pascal): تعد أفضل لغة تعليمة في الجامعات ومعاهد التعليم العالي. وتمتاز هذه اللغة باشتراط كتابة البرامج بطريقة هيكلية محددة،وبذلك تسهل عمليات صيانة البرامج واكتشاف الأخطاء بها.ولكن تعلم هذه اللغة ليس سهلاً للمبتدئين.


* مميزات لغات البرمجة ذات المستوى العالي:
1- قريبة جداً من لغة الإنسان ولهذا سميت لغات عالية المستوى
2- سهلة الاستخدام إلي حد ما وسهل فهمها وتعديلها ومراجعتها
3- لا يحتاج المبرمج بهذه اللغات إلي معلومات موسعة عن الحاسب
خطوات برمجة الحاسب بإحدى لغات البرمجة لحل مسألة معينة:
بصرف النظر عن صعوبة المسألة المراد حلها أو سهولتها فإن برمجة الحاسب لآي مسألة أو برنامج تشمل على الخطوات التالية:
1-تعريف المسألة: وفي هذه الخطوة يتم تحديد البيانات والنتائج المطلوبة ومن ثم تحديد المعالجة المطلوبة لحل المسألة.
2-تصميم الخطوات المنطقية للحل: وتعرف هذه الخطوة بخوارزم حل المسألة.
-تعريف الخوارزم:
هو عبارة عن الخطوات المنطقية لحل مسألة معينة ، ويشترط في الخوارزم أن يتم الوصول إلي الحل المطلوب بعد تنفيذ الخطوات في عدد محدود من المرات وان تكون خطوات الخوارزم قابلة لتحويلها إلي خطوات برنامج يكتب بلغة برمجة.
3-إعداد مخطط انسياب للخوارزم:
وتعد مخططات الانسياب وسيلة بصرية مفيدة للتعبير عن المنطق اللازم لحل مسألة ما ولتحقيق هذا الغرض يتم الاستعانة ببعض الأشكال الخاصة(الرموز) تكتب داخلها جمل قصيرة تصف العمليات التي ستنفذ على البيانات
4-ترجمة مخطط الإنسياب إلي برنامج باستخدام لغة برمجة مناسبة.
5-ترجمة البرنامج إلي لغة الآلة.
6-تجربة البرنامج: يجب تجربة البرنامج على عينة من البيانات وتصحيح الأخطاء المنطقية للحل وضمان صحة النتائج المخرجة من البرنامج وحسن أداء البرنامج.
7-توثيق البرنامج
ملاحظة: الخطوات السابقة هي الخطوات المتبعة عند تصميم برامج الحاسب.

-احتياجات لغات البرمجة:
1-المترجم (Compiler): وهو برنامج يقوم بعملية تحويل البرنامج المصدري إلي برنامج هدفي.

2-المفسر (Interpreter): ويقوم المفسر بتفسير البرنامج سطراً سطراً ويقوم بتحويل الأوامر في السطر إلي لغة الالة ثم تنفيذ الأوامر والإيعازات في ذلك السطر، ثم ينتقل إلي السطر التالي ويكرر العملية وهكذا. ويمتاز المفسر بأنه يتيح للمستخدم أن يرى نتيجة تنفيذ الأوامر في كل سطر من البرنامج.مثل: لغة البيسك.

3-مخططات الانسياب (Flow Charts ): وتعد مخططات الانسياب وسيلة بصرية مفيدة للتعبير عن المنطق اللازم لحل مسألة ما ولتحقيق هذا الغرض يتم الاستعانة ببعض الأشكال الخاصة(الرموز) تكتب داخلها جمل قصيرة تصف العمليات التي ستنفذ على البيانات.


أ-تركيب لغة البيسك (Basic):

إن قواعد كتابة البرنامج في لغة بيسك في غاية البساطة مقارنة باللغات الأخرى، وكما نعرف فإن البرنامج يتكون من مجموعة من الجمل و كل جملة لها رقم خاص بها، بمعنى أن الكمبيوتر عندما يبدأ في تنفيذ البرنامج سينفذ الجمل تبعاً لترتيب أرقامها.وللمبرمج الحرية في اختيار الترقيم الذي يرغبه، ولكن الشائع هو الترقيم 30-20-10…، وذلك لترك فرصة لإضافة جمل جديدة للبرنامج إذا رأى المبرمج ضرورة لإضافتها بعد كتابة البرنامج.

لغات التجميع متدنية المستوى Assembly Language

لغات التجميع متدنية المستوى Assembly Language


تقع لغة التجميع في مستوى أعلى من لغة الآلة ولكنها بقيت متدنية . يماثل استخدام هذه اللغة أن يقوم الشخص الآمر-المبرمج- بإلقاء أوامره باستخدام كلمات ورموز بلغته وكلمات ورموز أخرى بلغة الطرف الآخر-الحاسوب- وهذا يعني أهمية استخدام مترجم ليحول أوامر المبرمج المكتوبه بلغته -لغة التجميع - إلى لغة الحاسوب - لغة الالة - .
  وتميزت هذه اللغة بما يلي :
  تتكون لغة التجميع من اختصارات سهلة التذكر أو الرموز المختصرة (Mnemonic Symbols ) والتي تمثل 1 , 0 في لغة الآلة فمثلا يمكن أن تستخدم لغة التجميع (ِِِADD ,STO ,MUL ) بدلا من الشيفرات الثنائية لعمليات الجمع والضرب والتخزين في الحاسوب استخدام العنونه الرمزية (Addressing Symbols) أي استخدام الرموز بدلا من استخدام العناوين الرقمية ويعني هذا أن المبرمج يستطيع أن يسمي موقع الذاكرة بTotal بدلا من 0001001 وبهذا يتكون لدينا ما يسمى بالمتغير Variable وهو عبارة عن معنى تجريدي لموقع معين ويمكن للمبرمج أن يستخدم الارقام الثمانية أو السادس عشرية أو العشرية في قيم البيانات كل هذه العوامل جعلت استخدام لغة التجميع أسهل بكثير من استخدام لغة الآلة .
  وتعتمد لغة التجمع كلغة الآلة على نوع الحاسوب فمثلا لغة التجميع المستخدمة في حواسيب IBM لا يمكن استخدامها مع حواسيب Apple Macintosh وهناك وجه تشابه آخر بين لغة التجميع ولغة الآلة هو أن تعليمات لغة التجميع ليست بتلك القوه بمعنى آخر لتنفيذ مهمة بسيطة يجب استخدام العديد من التعليمات .
  وبعكس برنامج لغة الآلة فإن البرنامج المكتوب بلغة التجميع يجب ترجمته قبل تنفيذه ويستخدم لهذا الغرض برنامج خاص يسمى المجمع (Assembler) إن البرنامج المكتوب بلغة التجميع أو أي لغة أخرى ما عدا لغة الآلة يسمى بالبرنامج المصدري (Source Code) وعندما يتم تحويل هذا البرنامج إلى لغة الآلة ينتج ما يسمى بالبرنامج الهدفي (Object Code).
  أن استخدام هذه اللغة يستحق الجهد الزائد الذي يبذله المبرمج عند الحاجة إلى الاستفادة من خصائص الحاسوب المتميزة أو من كفاءة مصادره لذلك عادة ما تستخدم هذه اللغة في حالة ربط الحاسوب مع أجهزة الادخال والاخراج حيث أنها تعطي المستخدم القدرة على التحكم في توظيف المصادر الداخلية في الحاسوب كما أنها تستخدم من قبل المبرمجين المهرة لأنتاج برامج تنفذ أسرع وتحتل حيزا أفل في الذاكرة ولذلك فللغة التجميع دورا هام ومميز في برمجة نوع من المهمات التي تعتمد على الآلة

لغة البرمجة منخفضة المستوى

لغة البرمجة منخفضة المستوى

 

 

تعرف لغة البرمجة منخفضة المستوى في علم الحاسوب بأنها لغة برمجية توفر القليل من التجريد المأخوذ من مجموعة التعليمات الخاصة بالحاسوب أو قد لا توفره على الإطلاق. ويستخدم لفظ "منخفضة" لوصف القدر القليل أو المعدوم من التجريد الذي يربط بين لغة البرمجة ولغة الآلة، وذلك لأن مثل هذه اللغات منخفضة المستوى توصف أحيانا بأنها "قريبة من العتاد".

يمكن تحويل اللغات منخفضة المستوى إلى شفرة الآلة بدون استخدام مفسّر أو مترجم لتعمل الشفرة الناتجة مباشرة في المعالج. ويتميز البرنامج المكتوب باستخدام اللغة منخفضة المستوى بسرعة التنفيذ واحتلاله حيزا صغيرا جدا من الذاكرة بعكس نظيره المكتوب بلغة عالية المستوى والذي يأخذ وقتا أطول ويحتاج إلى مزيد من المصادر. قد تكون اللغات منخفضة المستوى بسيطة غير أنها صعبة الاستخدام وذلك تبعا لعدة تفاصيل ينبغي أخذها في الحسبان.

فعلى سبيل المقارنة، تعزل لغة البرمجة عالية المستوى دلالات التنفيذ في معمارية الحاسوب عن خصائص البرنامج مما يسهّل عملية التطوير، وتقسم اللغات منخفضة المستوى إلى قسمين: الجيل الأول والجيل الثاني. 

----------------------------------

يعتبر الجيل الأول من لغة البرمجة أو ما يسمى بـ 1GL أحد لغات الآلة، وهي اللغة الوحيدة التي بإمكان المعالج الدقيق معالجتها مباشرة دون الحاجة إلى تحويل مسبق. ولا يكتب المبرمجون في أيامنا هذه البرامج بلغة الآلة مباشرة وذلك لأن مثل هذا العمل يستلزم الاهتمام بتفاصيل عديدة تقوم اللغات عالية المستوى بعملها تلقائيا بالإضافة إلى البحث في الرموز العددية لكل تعليمة يتم استخدامها في كتابة البرنامج بلغة منخفضة المستوى وتذكرها أيضا، ولهذا السبب فإن الجيل الثاني من اللغات البرمجية يوفر مستوى تجريديا واحد على رأس لغة الآلة.

مثال: إحدى دوال لغة الآلة x86 التي تعمل باستخدام 32 بت لحساب رتبة ن من متتالية فيبوناتشي:

------------------------------------

أما الجيل الثاني من لغة البرمجة أو 2GL في اسم آخر، فهو ما يسمى بلغة التجميع. وتعتبر هذه اللغة إحدى لغات الجيل الثاني على الرغم من أنها لا تخص المعالج الدقيق بشكل خاص، فلا بد أن يكون المبرمج الذي يستخدم لغة التجميع على دراية بمعمارية المعالج الدقيق الفريدة (مثل السجلات والتعليمات)، حيث يتم تجميع هذه التعليمات البسيطة مباشرة إلى لغة الآلة. ويمكن تجريد شيفرة التجميع إلى طبقة أخرى بطريقة تشبه تلك المستخدمة في تجريد لغة الآلة إلى شيفرة التجميع.

مثال: نفس البرنامج المذكور سابقا والمستخدم في حساب متتالية فيبوناتشي، وقد كتب هذه المرة باستخدام لغة التجميع x86 باستخدام تركيب MASM.