مدونة الاخبار التقنية ، جديد التكنولوجيا ، شروحات البرامج و الالعاب للكمبيوتر تطبيقات الأندرويد فيس بوك ، يوتيوب ، عرض لأفضل المواقع المفيدة في عالم الأنترنت

ما هي لغات البرمجة و كيف تعمل ؟

ما هي لغات البرمجة و كيف تعمل ؟



إن المعالج هو أهم وحدةٍ في الكمبيوتر لأنه الجزء الذي ينفّذ تعليمات البرامج. حتى أن البعض يسميه دماغ
الكمبيوتر، وأحياناً يوصف بالذكاء. ولكنْ تبقى هذه مجردَ ادعاءات، فالمعالج ما هو إلا دارةٌ إلكترونيةٌ مصممةٌ للقيام بمهامٍ محددة مثل:قراءة البيانات من الذاكرة المركزية. تنفيذ العمليات الحسابية بين عددين والتي تشمل: الجمع والطرح والضرب والقسمة. نقل البيانات بين أجزاء الذاكرة. المقارنة بين قيم عددين. ومجموعة من العمليات البسيطة الأخرى.
انطلاقاً من هذه اللائحة، ربما تكون قد لاحظتَ أنَّ المعالج ينفذ عملياتٍ بسيطةً جداً وعلى أجزاء صغيرة من البيانات. إضافةً إلى ذلك فإنّ المعالج لا يقوم بأي عملٍ من تلقاء نفسه، فعلى أحدهم أن يُمليَ عليه ما يفعل، وهذا هو دور البرنامج. البرنامج ما إلا هو مجموعة من التعليمات التي تساعد المعالج على القيام بالعمليات. كلُّ تعليمةٍ في البرنامج هي أمرٌ يُرسَلُ إلى المعالج لأداءِ عمليةٍ محددة. إليكَ مثلاً تعليمةً معينة في برنامج:10110000.
بالنسبة لي ولك، فإنها مجرد سلسلةٍ من الأصفار والواحدات، أما بالنسبة للمعالج فهي تمثل تعليمةً لتنفيذ أمرٍ محدد، وهي مكتوبةٌ بال 0 و 1 لأنّ المعالج لا يفهمُ سوى التعليمات المكتوبة بلغة الآلة. كُلُّ عمليةٍ ينفّذها المعالج تأتي من تعليمةٍ مكتوبةٍ بلغة الآلة،  فمثًلا هناكَ تعليمةٌ للجمعِ وأخرى للطرحِ، وغيرِها. تُسمّى مجموعةُ التعليماتِ التي بإمكان المعالجِ تنفيذُها: " ."Set Instruction في وقتنا الحاضر، هناك العديد من الشركات المصنّعةِ للمعالجات مثل: إنتل، AMD وموتورولا.. ولكلِّ علامةٍ من هذه المعالجات، مجموعةُ التعليمات ( set Instruction ) الخاصةِ بها.المثالُ المذكورُ سابقاً ليس سوى مثالٍ بسيطٍ عن تعليمةٍ للآلة، في الحقيقة يتطلّب الأمرُ أكثرَ من تعليمةٍ
لجهاز الحاسب ليقومَ بشيءٍ ذي معنى. لأنّ العملياتِ التي يقومُ بها المعالج بسيطةٌ بحدِّ ذاتها، فهو يحتاج لتنفيذ الكثير من التعليمات لتحقيق نتيجةٍ يُمكن ملاحظتُها.فمثلاً، لو أردتَ حسابَ قيمةِ الفائدة التي ستجنيها من مدّخراتك هذه السنة، سيقوم المعالج بتنفيذ العديد من التعليمات بشكلٍ منسّق، وهو أمرٌ طبيعيٌُ جداً، إذ ليس من الغريب أن يحتوي برنامجٌ على آلافٍ أو حتى الملايين من التعليماتِ المكتوبة بلغة الآلة. تُخزَّنُ البرامجُ على وسائطِ التخزينِ الثانوية كالأقراص الصلبة، فعند تنصيب برنامجٍ معيّنٍ فإنّك تقومُ بنسخه على القرص الصلب. بالرغم من قولِنا أنّ البرنامج يُخزَّن على وسيطٍ ثانويّ، لكنّه يُنسَخُ أيضاً على الذاكرة المركزية ( RAM ) في كلِّ مرةٍ يُنفذُ المعالجُ تعليماتِه. لنفترض مثلاً أنَّ لديكَ معالجَ نصوصٍ مُنَصَّبٍ على القرص الصلب، عندما تفتحه بنقرتين بزر الفأرة على أيقونة البرنامج مثلاً، يُنسَخُ البرنامجُ من القرص الصلب إلى الذاكرةِ المركزية، ومن ثم يُنفِّذُ المعالجُ تعليماتِ البرنامج التي يجدها في الذاكرة المركزية (كما هو موضّحٌ في الصورة):
عند تنفيذ تعليمات البرنامج، يَدخلُ المعالجُ في حلقةٍ تُعرف ب " execute-decode-fetch " أي "جلب- فك تشفير- تنفيذ"، والتي تتضمن ثلاثَ خطواتٍ من العمل المكرّر لكلّ تعليمة، وهذه الخطواتُ هي: جلبُ التعليمة من الذاكرة، فكُّ تشفيرِ التعليمة، ثم يأتي التنفيذ. الخطوات موضحة في الصورة التالية:



من لغة الآلة إلى لغة الأسمبلي ( :(Assembly


لا تنفِّذُ المعالجاتُ سوى التعليماتِ المكتوبةِ بلغة الآلة. فكما ذكرنا سابقاً في هذا المقال، باستطاعة المعالج تنفيذُ الملايين من هذه التعليمات، ولكنْ من الناحية النظرية فإنّ كتابةَ برنامجٍ كهذا سيكون شاقاً وسيستغرقُ وقتاً طويلاً، مُجرد وجودِ 0 أو 1 فقط في المكان غير الصحيحِ ولن يعملَ البرنامج حينها. كما أنه عملياً شبهُ مستحيل. 
لهذا السبب اختُرِعتْ لغةُ الأسمبلي ( Assembly ) أو لغة التجميع، لتسهيل كتابة البرامج. فبدل الكتابة بلغة الأرقام ( 0 و 1)، تُستعمَلُ رموزٌ مختصرة تُعرف ب mnemonics . فلعملية الجمع مثلاً يُستخدم رمز: ،add ولعملية الضرب: mul ، بينما mov تعني نقلَ قيمةٍ معينةٍ إلى الذاكرة... وهذا سيغني المبرمجَ أو المبرمجةَ عن الكتابة بلغة الرموز الثنائية. هناك العديد من النُّسَخِ لهذه اللغة، كما أنَّ لكل جيلٍ من المعالجات مجموعةُ التعليماتِ الخاصّة به، وهناك أيضاً نسخةُ للأسمبلي لكلِّ معالج. لا يستطيعُ المعالجُ طبعاً تنفيذَ التعليماتِ المكتوبةِ بلغة الأسمبلي، لأنه ببساطةٍ لا يفهمها، لذلك يُستعمَلُ برنامجٌ يسمى: assembler الذي يحوّل الكودَ المكتوب من لغة الأسمبلي إلى لغةِ الآلة لينفذَّها المعالج بعد ذلك.
اللغات عالية المستوى:بالرغم من أن الأسمبلي تُغني المبرمجين عن الكتابة بلغة الآلة، ولكنّ هذا لا يعني أنها لغة سهلة، فهي تُعتبر بديلاً مباشراً عن لغة الآلة، وتتطلبُ معرفةً كبيرةً بالمعالجات وبِنيتها، تماماً مثل مجموعة التعليمات. العشوائية الذاكرة مع مباشر بشكل المبرمج فيها ويتعامل كما .( (instructions set وتحتاجُ أبسطُ البرامج المكتوبة بهذه اللغة لعددٍ كبير من التعليمات. تُعرف الأسمبلي كلغةٍ منخفضة المستوى ( .(Low-Level Languages في عام 1950 ، ظهر جيلٌ جديدٌ من لغات البرمجة عُرِفَتْ باللغات عالية المستوى ( .(High-Level Languages تسمحُ اللغةُ عاليةُ المستوى بكتابة برامجَ معقدةٍ دونَ معرفةٍ مُسبقةٍ بالمعالجات، ودون استعمال الرموز القريبة من لغة الآلة. بالإضافة إلى ذلك فإنّ معظم هذه اللغات تَستعمِلُ كلماتٍ مفهومةً وقريبةً من لغة البشر، فمثلاً:باستعمال لغة COBOL التي تُعتبر أولى اللغات عالية المستوى، لإظهار جملة World Hello على الشاشة، يكفي كتابة:

DISPLAY "Hello world"

(كلمة display : تعني "أظهِر" أو "إظهار")

وبلغة Python التي تعتبر لغة حديثة، نكتب:

print 'Hello world'

تنفيذُ نفسِ هذه العملية بلغةِ أسمبلي سيتطلب العديد من التعليمات، ومعرفةً واسعةً بالمعالجات وكيفية تفاعلها مع وسائط الإخراج.لعلكَ استنتجتَ أنَّ اللغات عالية المستوى تسمحُ للمبرمجِ بالتركيزِ على العملياتِ التي يريد تنفيذها بدل التركيز على تفاصيلِ الآلية التي سينفّذ بها المعالجُ هذه التعليمات.بدءاً من العام 1950 ، ظهرت العديدُ من لغات البرمجة عالية المستوى، وفيما يلي استعراضٌ لأشهرها:


• Ada :ظهرت في السبعينيات، استُعِملت من قبل وزارة الدفاع للكونتيسا ،وهي ً الأمريكية Lovelac Ada، وأخذت اسمها تكريما أحد أشهر الوجوه في مجال علوم الحاسب.


BASIC Beginners All-purpose Symbolic Instruction Code • خرجت في الستينيات لتكون للاستعمال العام، هي لغةٌ بسيطة وسهلة للمبتدئين، توجد العديد من النسخ لها الآن.


• Pascal :ظهرت في 1970 ،كان هدفها تعليميا تمجيدا للرياضي وعالم الفيزياء والفيلسوف Pascal Blaise. ً


• C و ++C :ظهرت لغة C عام 1972 وتعد من اللغات القوية ذات الاستعمال العام طورت من قبل مختبرات Bell .أما لغة ++C . فظهرت عام 1983. ِ من قبل شركة مايكروسوفت.


• #C :" سي شارب "ظهرت حوالي عام 2000 لتطوير تطبيقات متناسبة مع منصة NET.


• Java :ابتُكرت من طرف شركة Microsystems Sun في أوائل 1990 ،تستطيع عمل برامَج تعمل على أجهزة الكمبيوتر وعلى مخدمات الويب.


• JavaScript :ابتُ كرت في التسعينيات، وهي تعمل على صفحات الويب ولا توجد علاقة بينها وبين لغة Java.


• Python :ابتُكرت في التسعينيات وأصبحت لغة رائجة جدا تُستعمل في الأوساط الأكاديمية والتجارية.


• Ruby :ظهرت في التسعينيات وهي لغةٌ مستعملة في مخدمات الويب.


• Basic Visual) :تُعرف أيضا بـ VB تابعة لشركة مايكروسوفت ،(وهي لغةٌ ً ووسٍط برمجي، تسمح بتطوير برامج للويندوز. ِابتُكرت اللغة في التسعينيات.


• Swift :و هي أحدث لغات البرمجة عالية المستوى، إبتكرتها شركة أبل، و ُطرحت في جوان 2014 و تستخدم لتطوير برامج ً تعمل على أنظمة tvOS، WatchOS، iOS، X OS التابعة جميعا لشركة ابل.

تمتلك كلُّ لغةٍ عاليةِ المستوى مجموعةَ الكلماتِ والقواعد الخاصة بها والتي على المبرمج أن يعرفها 
ليستطيع كتابة البرامج. كما أنها تُقسم إلى نوعين، هما: اللغات المترجمة ( Compiled ) والمفسرة ( .(Interpreted ولأنَّ المعالجَ لا يفهمُ سوى التعليماتِ المكتوبة بلغة الآلة، تُتَرجَمُ البرامجُ المكتوبةُ باللغات عالية المستوى إلى لغةِ الآلة عند تنفيذها -بالاعتماد على نوعها- باستعمال المُترجِمات أو المُفسِّرات. المُترجِم هو برنامجٌ يقوم بتحويل البرنامج المكتوب باللغة عالية المستوى إلى برنامجٍ مكتوبٍ بلغة الآلة، ويمكنُ للبرنامج الناتج أن ينفَّذَ في أي وقتٍ دونَ الاستعانة بالمترجم. أما المفسِّر فهو برنامجٌ يقوم بتحويل وتنفيذ التعليمات المكتوبة باللغة عالية المستوى واحدةً تلو الأخرى. فأوًلا يقرأ كلَّ تعليمةٍ من البرنامج، ثمَّ يحوّلها إلى لغةِ الآلة، ثم ينفذّها مباشرةً. وتُكرَّر هذه العملية لكلِّ تعليمةٍ حتى نهاية البرنامج.

هذا الموضوع منقول من موقع : الباحثون السوريون
رابط المقال الاصلي: http://www.syr-res.com/article/10354.html
شاركه

عن Essentiel life

هذا النص هو مثال لنص يمكن ان يستبدل في نفس المساحة ايضا يمكنك زيارة مدونة مدون محترف لمزيد من تحميل قوالب بلوجر.
    تعليقات بلوجر
    تعليقات فيسبوك