مقدمة البحث

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

تعريف الموضوع

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

أهمية الموضوع

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

أهداف البحث

  • تعريف لغة الآلة وبيان خصائصها.
  • فهم النظام الثنائي وتحويل الأعداد بينه وبين النظام العشري.
  • التعرف على بنية التعليمة في لغة الآلة ودورة تنفيذها في المعالج.
  • المقارنة بين لغة الآلة ولغة التجميع واللغات عالية المستوى.
  • معرفة مميزات لغة الآلة وعيوبها.

عناصر البحث

أولًا: النظام الثنائي

تعتمد أجزاء الحاسب الإلكترونية على حالتين فقط: تيار يمر أو لا يمر، فرمز لهما بالرقمين واحد وصفر. ويسمى كل رقم ثنائي بت (Bit)، وكل ثمانية بتات تسمى بايت (Byte). وللتحويل من الثنائي إلى العشري نضرب كل خانة في قوة العدد ٢ المناسبة لموضعها ثم نجمع.

مثال: حوّل العدد الثنائي 1101 إلى النظام العشري.

11012 = 1×23 + 1×22 + 0×21 + 1×20 = 8 + 4 + 0 + 1 = 13

وللتحويل من العشري إلى الثنائي نقسم العدد على ٢ مرارًا ونكتب البواقي من الأسفل إلى الأعلى. فالعدد ثلاثة عشر يُقسم على اثنين فيكون الناتج ستة والباقي واحد، ثم يُقسم الستة على اثنين فيكون الناتج ثلاثة والباقي صفر، ثم يُقسم الثلاثة على اثنين فيكون الناتج واحدًا والباقي واحد، ثم يُقسم الواحد على اثنين فيكون الناتج صفرًا والباقي واحد. وبقراءة البواقي من الأخير إلى الأول نحصل على الناتج الثنائي 1101 وهو تمثيل العدد ثلاثة عشر بالنظام الثنائي.

وتُستخدم كذلك الأنظمة الست عشرية لاختصار كتابة الأعداد الثنائية الطويلة، إذ يمثل كل رمز ست عشري أربع بتات؛ فالرمز F يقابل 1111 والرمز A يقابل 1010، وبذلك يُكتب البايت الواحد برمزين فقط بدلًا من ثمانية أرقام ثنائية، وهذا أسهل على المبرمج في القراءة والمراجعة.

ثانيًا: بنية التعليمة

تتكون التعليمة في لغة الآلة عادةً من جزأين:

  • رمز العملية (Opcode): يحدد ما المطلوب فعله، كالجمع أو الطرح أو النقل أو القفز إلى تعليمة أخرى.
  • المعاملات (Operands): تحدد البيانات أو عناوين الذاكرة أو السجلات التي ستُجرى عليها العملية.

ولكل نوع من المعالجات مجموعة تعليمات (Instruction Set) خاصة به، ولذلك فإن برنامجًا مكتوبًا بلغة الآلة لمعالج معين لا يعمل بالضرورة على معالج من عائلة أخرى. فلغة الآلة تعتمد على نوع الجهاز.

ثالثًا: كيف ينفذ المعالج التعليمات؟

  1. الجلب (Fetch): يقرأ المعالج التعليمة التالية من الذاكرة.
  2. فك الترميز (Decode): تفسّر وحدة التحكم رمز العملية وتحدد المطلوب.
  3. التنفيذ (Execute): تنفذ وحدة الحساب والمنطق العملية، وتُحفظ النتيجة في سجل أو في الذاكرة.

وتتكرر هذه الدورة ملايين بل مليارات المرات في الثانية. ويساعد عداد البرنامج على معرفة عنوان التعليمة التالية.

رابعًا: لغة التجميع واللغات عالية المستوى

كان المبرمجون الأوائل يكتبون البرامج بالأصفار والأحاديات مباشرة، وهو عمل شاق وكثير الأخطاء. فظهرت لغة التجميع (Assembly) التي تستبدل برموز العمليات كلمات مختصرة سهلة التذكر، ويقوم برنامج يسمى المجمِّع (Assembler) بترجمتها إلى لغة الآلة. ثم ظهرت اللغات عالية المستوى القريبة من اللغة الإنسانية، وتتولى ترجمتها برامج تسمى المترجِمات (Compilers) أو المفسِّرات (Interpreters).

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

خامسًا: مميزات لغة الآلة وعيوبها

المميزات:

  • تنفَّذ مباشرة بلا ترجمة، فهي في غاية السرعة.
  • تتحكم بدقة في العتاد والذاكرة.
  • تستهلك أقل قدر ممكن من موارد الجهاز.

العيوب:

  • يصعب على الإنسان كتابتها وقراءتها وتعديلها.
  • يسهل الوقوع في الأخطاء ويصعب اكتشافها.
  • لا يمكن نقل البرنامج بين أنواع المعالجات المختلفة.
  • تستغرق كتابة البرامج الكبيرة وقتًا طويلًا.

سادسًا: أين تُستخدم لغة الآلة وما قريب منها اليوم؟

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

النتائج

  • لغة الآلة هي اللغة الوحيدة التي يفهمها المعالج مباشرةً، وتقوم على النظام الثنائي.
  • تتكون التعليمة من رمز عملية ومعاملات، ويمر تنفيذها بمراحل الجلب وفك الترميز والتنفيذ.
  • لغة الآلة سريعة لكنها صعبة وتعتمد على نوع المعالج.
  • ظهرت لغة التجميع واللغات عالية المستوى لتسهيل البرمجة.

التوصيات

  • التدرب على تحويل الأعداد بين الأنظمة الثنائي والعشري والست عشري.
  • تجربة محاكيات لغة التجميع المجانية لفهم عمل المعالج.
  • الاستمرار في تعلم لغات عالية المستوى مع معرفة ما يجري خلفها.

الخاتمة

تعرفنا في هذا البحث على لغة الآلة بوصفها لغة الحاسب الأصلية، وعلى النظام الثنائي الذي تقوم عليه، وعلى بنية تعليماتها وطريقة تنفيذها، وعلى العلاقة بينها وبين لغة التجميع واللغات العليا. ومع أن المبرمج المعاصر لا يتعامل معها مباشرةً في الغالب، فإن معرفتها تعمق فهمه لعالم الحاسب.

المراجع

  • كتب الحاسب وتقنية المعلومات للمرحلة الثانوية، وزارة التعليم في المملكة العربية السعودية.
  • كتاب «مدخل إلى علوم الحاسب» لبراكس وغلينز (ترجمة عربية).
  • كتاب «Computer Organization and Design» لباترسون وهينيسي.

كلمات دليلية

بحث، بحث عن، بحث علمي، بحوث، لغة الآلة