ما الفرق بين لغة الآلة ولغة التجميع؟

أصبحت لغة البرمجة الوحدة الأساسية لعالم التكنولوجيا اليوم وهي عبارة عن مجموعة الأوامر والتعليمات التي نقدمها للآلات لأداء مهمة معينة فعلى سبيل المثال، إذا أعطيت مجموعة من التعليمات لجمع رقمين، فسيقوم الجهاز بذلك نيابة عنك ويخبرك بالإجابة الصحيحة وفقًا لذلك. [١] في عالم الكمبيوتر، لدينا أكثر من 500 لغة برمجة لها تركيبها وميزاتها الخاصة. حيث تحتوي كل لغة برمجة على مجموعة فريدة من الكلمات الأساسية التي تُستخدم لإنشاء مجموعة من التعليمات. وقد تم تطوير آلاف من لغات البرمجة حتى الآن، ولكن لكل لغة غرضها المحدد. وتختلف هذه اللغات في مستوى قربها من لغة الإنسان وبعدها عن لغة الحاسوب. بناءً على هذا الاختلاف يمكن تصنيفها إلى فئتين:

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

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

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

هي لغات البرمجة التي تسمح للمبرمج بكتابة البرامج المستقلة وتعتبر عالية المستوى لأنها أقرب إلى اللغات البشرية وتشمل تقريباً جميع لغات البرمجة المتبقية. [٢]

لغة الآلة (machine language)

لغة الآلة هي اللغة الرقمية الأساسية التي يمكن للحاسوب فهمها وتنفيذ التعليمات من خلالها علاوةً على أن لغة الآلة هي اللغة الوحيدة التي يمكن لجهاز الحاسوب أن يقوم بتشغيلها مباشرة دون إجراء أي تحويلات أو تعديلات عليها. تتم قراءتها بواسطة وحدة المعالجة المركزية (CPU)، وتتكون من سلسلة أرقام ثنائية التشفير مؤلفة من أصفار وآحاد (0،1). وتُعتبر لغة الآلة لغة منخفضة المستوى ( Low-level Language ) فهي أولى لغات البرمجة وأصعبها. لكن دونها لا يمكن ترجمة اللغات عالية المستوى، فمثلاً يجب ترجمة لغة ++C إلى لغة الآلة قبل تشغيل الكود على الحاسوب. بينما لا تحتاج لغة الآلة لمترجم، ويفهمها الحاسوب بشكل مباشر. [٣]

مثال عن كود بلغة الآلة:

01001000 01100101 01101100 01101100 01101111 00100000 01010111 01101111 01110010 01101100 01100100

نظام التشفير الثنائي (Binary system)

النظام الثنائي هو عبارة عن مجموعة من التعليمات تستعمل لتتحكم بالحاسب، نتعامل في هذا النظام فقط مع رمزين فقط هما 0 و 1. والتي يفهمها الحاسب بشكل فيزيائي بعملية on/off للإشارات، حيث أن الرقم 1 يمثل الوضع الفعال أو الوضع on والرقم 0 يمثل الوضع غير الفعال أو الوضع off. وعند قراءة أي رقم في نظام العدِّ الثنائي فإنَّنا نقوم بقراءة كل رمز منفرداً. فعلى سبيل المثال الرقم 2 = (100) يقرأ واحد صفر صفر أو يقرأ من اليمين صفر صفر واحد، ولا يقرأ مئة. [٤] لتحويل أي عدد صحيح موجب من النظام العشري إلى الثنائي نستعمل طريقة الباقي Remainder Method الموضحة كالآتي:

  • قسم العدد العشري على الأساس 2.
  • أحسب باقي القسمة الذي يكون أما 1 أو 0.
  • استمر في عملية القسمة وتحديد الباقي حتى يصبح خارج القسمة الصحيح صفراً.
  • يتكون العدد الثنائي المطلوب من أرقام الباقي مقروءة من الباقي الأخير إلى الأول .
الباقي الناتجالعدد
022÷4
012÷2
111
بالتالي العدد 4 في التشفير الثنائي هو 100

وللتحويل من نظام ثنائي لنظام عشري نضرب بالأساس 2:

02^(0)×0
02^(1)×0
42^(2)×1
4=4+0+0 1×2^(2)+0×2^(1)+0×2^(0) 100
تحويل الرقم أربعة من ثنائي لعشري

لغة التجميع (Assembly)

هي أكثر من لغة منخفضة المستوى وأقل من اللغة عالية المستوى لذلك فهي لغة وسيطة حيث أنها تشبه لغة الآلة لكن أكثر تطوراً. تستخدم لغة التجميع الأرقام والرموز والاختصارات في بعض المواضع بدلاً من 0 و1. على سبيل المثال: للجمع والطرح والضرب تستخدم رموز مثل Add وsub وMul. [٥]
مثال عن كود بلغة التجميع:

bdos    equ    0005H    ; BDOS entry pointstart:  mvi    c,9      ; BDOS function: output string        lxi    d,msg$   ; address of msg        call   bdos        ret             ; return to CCPmsg$:   db    'Hello, world!$'end     start

الفارق بين لغة الآلة ولغة التجميع

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

المصادر:

  1. Geeksforgeek.org
  2. Javatpoint.com
  3. Sciencedirect.com
  4. Electronics-tutorials.ws
  5. Geeksforgeek.org

الشطرنج بين الإنسان والآلة: مباراتان حسمتا الصراع

هناك صراع بين الانسان والآلة منذ بداية الثورة الصناعية في جوانب عديدة، أهمها الجانب العقلي. أحد معايير هذا الجانب لدى البشر هو الشطرنج، ومنذ بداية اللعبة والبشر في تقدم هائل تنافسيًا وفكريًا. ولكن مهما تقدمنا فكريًا -كبشر- فلن نتمكن من الشطرنج واحتمالاته، فالشطرنج به عدد هائل من الاحتمالات والنقلات التي تفوق البشر فكريًا، فهناك 10123 احتمال في دور الشطرنج المكون من 80 نقلة [1]. فهل ستتمكن الآلة من حصر كل هذه الاحتمالات؟ وما قصة الشطرنج بين الإنسان والآلة؟

تاريخ الآلة مع الشطرنج

البداية الأولى

بدأ الأمر في القرن التاسع عشر، تحديدًا 1890، عندما قام العالم الاسباني، ليوناردو توريس كيوفادو، باختراع جهاز بسيط مكون من سلك ومفتاح ودائرة كهربية. كان هذا الجهاز قادرًا على إعطاء “كش مات” في مرحلة نهاية الدور المكونة من ملك ضد ملك وقلعة. لم يلعب الجهاز أفضل النقلات، بل إنه كان يحتاج إلا أن يلعب حوالي 50 نقلة ليصل إلى مستوى اللاعب المتوسط.

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

استمر الأمر كما هو عليه حتى الحرب العالمية الثانية، وفي عام 1947، قام آلان تورينج بتطوير جهاز إلكتروني بسيط في جامعة مانشستر. كان للجهاز القدرة على التنبؤ بالنقلة القادمة وتحليلها. وفي عام 1951، أي بعد تورينج بأربع سنوات، قام زميل له يدعى “دي. جي بينز” بكتابة برنامج له القدرة على حل موقف شطرنجي يتطلب “كش مات” في نقلتين، ولكنه لا يلعب الشطرنج. [2]

القفزة الأولى للآلة

في عام 1948، قام عالم أمريكي يدعى “كلود شانون” بنشر ورقة علمية استرعت الكثير من الانتباه. كان شانون، مثل تورينج وليوناردو توريس، يعرف قدرات الآلة وما يمكنها فعله. وكان يعلم انه لكي تتمكن الآلة من صنع الفارق في الشطرنج، فعليها أن تقوم ببعض الحسابات التعجيزية للبشر. لاعب الشطرنج المحترف له القدرة على حساب 50 نقلة على الأكثر قبل اختياره لنقلة معينة، أما الآلة فيجب أن تقطع شوطًا أكبر من هذا بكثير. ففي موقف شطرنجي طبيعي، قد يتاح للاعب أن يختار نقلة من 30 نقلة قانونية، وبما أن لكل نقلة رد معين، فيجب أن تدرس الآلة كل هذه الردود لتصل للمستوى المطلوب، هذا يعني 900 نقلة، وإذا أرادت الآلة إيجاد رد مناسب للرد الذي سيلعبه الخصم، فيجب أن تدرس 30 نقلة أخرى (بافتراض أن ذلك عدد النقلات الذي سيتاح)، هذا يعني 30*30*30 = 27000 نقلة!

كان تقييم كلود للآلة يختلف عن تقييم تورينج. تورينج رأى أن الأمر يعتمد على كثرة القطع بعد وضع شطرنجي معين، أما كلود فرأى أن الأمر لا يعتمد على القطع، بل على معايير أخرى، مثل سيطرة البيادق على الرقعة، ووضع القطع السليم وتناسقها مع بعضها البعض. [2]

الانسان ضد الحاسوب

أما عن أول مواجهة بين الانسان والحاسوب، فكانت في ستينيات القرن الماضي، عندما اخترع طالب في جامعة MIT، الحاسوب “ماك هات6” وشارك به في بطولة تابعة للاتحاد الأمريكي للشطرنج في فبراير، عام 1967. خسر الحاسوب في أربع مباريات، ولكنه تعادل في واحدة. الأمر المخيف هو تطور ذلك الحاسوب بسرعة ملحوظة، حيث كان تقييم الحاسوب في شهر فبراير حوالي (1200) ولكن بعدها بشهرين أصبح تقيمه (1600) تقريبًا، وهذا تقييم لاعب متوسط في الاتحاد السوفيتي. [2]

القفزة الثانية للآلة (الحاسوب)

عام 1970، طور فريق من الباحثين (تشيس 3)، والذي فاز بالبطولة التي نُظمت في نيويورك بين الآلة. كانت حواسيب الستينات لها القدرة على تقييم المواقف التي تعتمد على حركتين قادمتين، أما في السبعينات فكان الأمر مختلفًا، حيث تنبأ الباحثون أنه بدراسة نصف نقلة فقط، سيزيد تقييم الآلة إلى 250 نقطة. تطور الأمر عندما ظهر الحاسوب Deep thought، والذي لعب بتقييم 2700، وهو تقييم الأساتذة الكبار في الشطرنج. النقلة النوعية كانت بظهور Deep Blue، وهو حاسوب طورته شركة IBM، ظهر عام 1996، وكان النسخة المطورة من Deep thought، ليس هذا فحسب، Deep Blue، استطاع أن يحسب ويحلل 6 نقلات مسبقًا! جاري كاسباروف، وهو أفضل لاعب في التاريخ من وجهة نظر الكثيرين، قال إنه يستطيع أن يحسب فقط من ثلاث إلى 5 نقلات ويحللها مسبقًا. [2]

الشطرنج بين الإنسان والآلة: كاسباروف ضد ديب بلو

10 فبراير 1996، هو تاريخ هزيمة بطل العالم “جاري كاسباروف” وأقوى لاعب في التاريخ -وقتها- أمام حاسوب IBM “ديب بلو”.  [3]

لعب كاسباروف مباراتان أمام ديب بلو، كل مباراة مكونة من 6 أدوار. المباراة الأولى كانت عام 1996، وفي الواقع، فاز كاسباروف على الآلة في هذه المباراة. [4]

الأغلبية العظمى من جمهور الشطرنج لا يعرفون هذه المعلومة، ولكن الحقيقة أن كاسباروف بالفعل هزم ديب بلو في المباراة الأولى عام 1996، بنتيجة 3-1 لكاسباروف. [4]

أما في المباراة الثانية فاز ديب بلو وهذه المباراة هي التي نالت نصيب الأسد، وهذا دليل على شيئين، الأول هو قوة كاسباروف كلاعب شطرنج، فلو كان عاديًا لما فاز في المباراة الأولى ولم يكن ليحظ بكل هذا الاهتمام. الشيء الثاني وهو الأهم: الآلة قادمة! [4]

ليس بالضرورة أن الآلة تفوقت على البشر، وبالحديث عن الشطرنج بين الإنسان والآلة، نجد أنه حتى في ظل الذكاء الاصطناعي الموجود حاليًا، والحواسيب الشطرنجية الخارقة مثل ألفا زيرو (ذكاء اصطناعي)، وستوك فيش، وكومودو، وغيرهم. بالطبع تتفوق الآلة في بعض الجوانب مثل انعدام المشاعر، ولكن هل هذه ميزة أم عيب؟ الأمر نسبي. على الجانب الآخر، نحن البشر نملك زمام الأمور، على الأقل حاليًا، وكما قال كاسباروف “لماذا يجب أن نقارن بين الآلة والانسان؟ بالعكس، يجب أن نعمل معًا” [5].

المصادر

  1. Scientific American
  2. Britannica
  3. The Washington Post
  4. Kasparov
  5. Garry Kasparov Ted Talk
Exit mobile version