لغة الآلة
المحتويات

بدايةً، لغة الآلة أو كود الآلة هي برنامج كمبيوتر مكتوب في تعليمات لغة الآلة يمكن تنفيذه مباشرة من خلال وحدة المعالجة المركزية للكمبيوتر (CPU). تتسبب كل تعليمة في قيام وحدة المعالجة المركزية بأداء مهمة محددة جدًا، مثل التحميل أو أو عملية وحدة الحساب والمنطق على وحدة البيانات في سجل وحدة المعالجة المركزية أو الذاكرة. وفيما يلي تفاصيل أوسع عن ذلك.
ومن جهة أخرى، تتم كتابة الغالبية العظمى من البرامج العملية اليوم بلغات عالية المستوى أو لغة التجميع. يتم لاحقًا ترجمة الكود المصدري إلى كود الآله القابل للتنفيذ من خلال الأدوات المساعدة مثل المترجم، والمجمع، والرابط، مع الاستثناء المهم للبرامج المفسرة، التي لا تترجم إلى كود الآلة. ومع ذلك، فإن المترجم نفسه، والذي يمكن أن يُرى كمنفذ أو معالج، يقوم بتنفيذ تعليمات الكود المصدري، عادة ما يتكون من كود آلة قابل للتنفيذ مباشرة (تم إنشاؤه من التجميع أو شفرة مصدر لغة عالية المستوى).
في هذا الإطار، إن كود الآلة هو، بالتعريف، أدنى مستوى من تفاصيل البرمجة المرئية للمبرمج، ولكن الكثير من المعالجات تستعمل داخليا الكود المصغر أو تحسن تعليمات كود الآلة وتحولها إلى تتابعات من ، وهذا لا يعتبر بشكل عام رمز الآلة في حد ذاته.
ومن جهة أخرى، كود الآلة عبارة عن لغة رقمية بحتة تهدف إلى التشغيل في أسرع وقت ممكن، ويمكن اعتبارها أدنى مستوى تمثل برنامج كمبيوتر مُترجم أو مُجمع أو كلغة برمجة بدائية تعتمد على عتاد الحاسوب. في حين أنه من الممكن كتابة البرامج مباشرة في كود الآلة، فإنه من الممل والخطأ التعرض لإدارة البتات الفردية وحساب العناوين الرقمية والثوابت يدوياً. لهذا السبب، في السياقات الحديثة نادراً ما يتم كتابة البرامج مباشرة في كود الآلة، ولكن يمكن القيام بها لتصحيح الأخطاء على مستوى منخفض، وإنتاج باتش لبرنامج ما، وتفكيك لغة التجميع.
مجموعة التعليمات
وعلى صعيد آخر، قد تحتوي مجموعة التعليمات الخاصة بالمعالج على كافة التعليمات من نفس الطول، أو قد يكون لها تعليمات متغيرة الطول. تختلف كيفية تنظيم الأنماط اختلافًا كبيرًا مع البنية المحددة، وغالبًا كذلك مع نوع التعليمة. تحتوي أغلب التعليمات على واحد أو أكثر من حقول كود التشغيل التي تحدد نوع التعليمة الأساسية (مثل الحساب، والعمليات المنطقية، و، وما إلى ذلك) والتشغيل الفعلي (مثل إضافة أو مقارنة) والحقول الأخرى التي قد تعطي نوع المعامل، أو وضع العنونة، أو موازنة وتسجيل العناوين، أو القيمة الفعلية نفسها (تسمى هذه المعاملات المستمرة الواردة في التعليمة بـ المعاملية أو instantiates).
في هذا الإطار، كل معالج أو عائلة معالجات لديها مجموعة التعليمات الخاصة بها. التعليمات هي أنماط من البتات التي تتوافق مع التصميم المادي لأوامر مختلفة إلى الجهاز. وبالتالي، فإن مجموعة التعليمات خاصة بفئة المعالجات التي تستعمل (في الغالب) نفس البنية. غالباً ما تتضمن تصميمات المعالج اللاحقة أو المشتقة كل تعليمات المعالجات السابقة وربما تضيف تعليمات إضافية. من حين لآخر، سيؤدي التصميم التالي إلى إيقاف أو تغيير معنى بعض تعليمات التعليمات البرمجية (عادةً لأنها مطلوبة لأغراض جديدة)، مما يؤثر على توافق التعليمات البرمجية إلى حد ما؛ حتى المعالجات المتوافقة تمامًا على وجه التقريب قد تظهر سلوكًا مختلفًا بعض الشيء لبعض التعليمات، ولكن نادرًا ما تكون هذه مشكلة. قد تختلف الأنظمة كذلك في التفاصيل الأخرى، مثل ترتيب الذاكرة أو أنظمة التشغيل أو الأجهزة الطرفية. نظرًا لاعتماد البرنامج على هذه العوامل بشكل طبيعي، لن تعمل الأنظمة المختلفة عادةً على نفس كود الآلة، حتى في حالة استخدام نفس نوع المعالج.
وفي هذا السياق، ليس كل الآلات أو التعليمات الفردية لها معاملات صريحة. تحتوي الآلة المراكمة على مُجمّع مدمج يسفر عن تراكم ضمني لأغلب التعليمات الحسابية. تشتمل المعماريات الأخرى (مثل 8086 و عائلة x86) على إصدارات من تراكمات التعليمات الشائعة، مع اعتبار جهاز التراكم كأحد السجلات العامة من خلال إرشادات أطول. يحتوي على أغلب أو كافة المعاملات الخاصة به على مكدس ضمني. غالبًا ما تحتوي تعليمات الأغراض الخاصة كذلك على معاملات صريحة (مثلًا، تعمل وحدة المعالجة المركزية في بنية x86 على كتابة القيم في أربعة سجلات للمقصد الضمني). هذا التمييز بين المعاملات الصريحة والضمنية مهم في مولدات الكود، خاصة في أجزاء تخصيص المسجل وتتبع النطاق الحي. يمكن لمُحسِّن الشفرة الجيد أن يتتبع المعامِلات الضمنية والصريحة التي قد تسمح على نحو متكرر، مع للمسجلات (مسجل يُنسب نتيجة تعبير ثابت يتم تحريره باستبداله بذلك الثابت) وتحسينات أخرى في الكود.
برامج الحاسوب
من جانب آخر، وعادةً ما تكون هذه التعليمات مكتوبة بلغة برمجة عالية المستوى يمكن للإنسان التعامل معها بسهولة وكفاءة وهي أقرب إلى لغة البشر الطبيعية من اللغة البرمجية التي يفهمها جهاز الحاسب وهي لغة الآلة (Machine Language).
علاوةً على ذلك، ويتم تحويل جميع الجمل البرمجية المكتوبة بلغات برمجة عالية المستوى وتنفيذها جملة جملة باستخدام المفسر (Interpreter) أو تنفيذها دفعة واحدة باستخدام المترجم Compiler.
ومن جهة أخرى، سميت برامج الحاسوب بهذا الاسم لتمييزها عن مكونات جهاز الحاسوب"الهارد وير" والتي تشمل ما يُعرف باسم لغة الآلة، «البرمجيات» عبارة عن سلسلة مرتبة من التعليمات .
المراجع
من جهة ثانية، والشفرة الناتجة من هذا التحويل يُطلق عليها لغة الآلة Machine Language أو شفرة الهدف Object Code. يمكن كذلك كتابة البرامج باستخدام لغة الأسيمبلي(Assembly)- وهي - عبارة عن ترميز للغة البرمجية التي يفهمها الحاسب باستخدام الأحرف الهجائية الإنجليزية. هذا ويجب تحويل لغة Assembly إلى اللغة البرمجية التي يفهمها الحاسب باستخدام أداة المجمـِّع Assembler
📝 هل في هذه المقالة خطأ؟
إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.
ما رأيك في هذه المقالة؟