مكتمل تورينج: نظام يمكنه تنفيذ أي عملية حسابية (Turing Complete)
يشير مصطلح Turing Complete إلى جهاز يمكنه، مع توفر الوقت والذاكرة الكافيين والتعليمات الضرورية، حل أي مشكلة حاسوبية مهما كانت معقدة. يُستخدم هذا المصطلح عادةً لوصف لغات البرمجة الحديثة مثل C++، Python، وJavaScript، لأنها تعتبر غالبًا Turing Complete.
تاريخ فكرة Turing Machine
قبل ظهور الحواسيب الحديثة، تنبأ آلان تورينج أنه سيكون هناك يومًا ما جهاز يمكنه حل أي مشكلة. هذه الآلة أصبحت معروفة باسم Turing Machine. تخيل تورينج جهازه كقطعة طويلة من الشريط تحمل عليها المعلومات في شكل شفرة ثنائية (1 و 0). وكان الجهاز يمتلك رأس قراءة/كتابة تتحرك على طول الشريط لتقرأ كل مربع واحدًا تلو الآخر.
كيفية عمل Turing Machine
كانت الشفرة تطلب من الآلة مشكلة حسابية، ويكون الشريط طويلًا بمقدار ما هو مطلوب لتحقيق الحل. بينما يتحرك الرأس على طول الشريط، تتبع الآلة تعليمات بسيطة تحدد كيفية تفاعلها. تقرأ الشريط، تتبع التعليمات، وتنفذ إجراء معينًا لكتابة شفرة جديدة بينما تتحرك. هذا النمط الجديد من الشفرة يكون الإجابة على المشكلة.
مفهوم Turing Complete في الأجهزة ولغات البرمجة
يعتبر جهاز أو لغة برمجة Turing Complete عندما يمكنه محاكاة Turing Machine عبر تشغيل أي برنامج أو حل أي مشكلة يمكن لـ Turing Machine حلها. من ناحية أخرى، إذا لم يستطع الجهاز أو اللغة القيام بذلك، فإنه يعتبر Turing Incomplete.
أمثلة على Turing Complete وTuring Incomplete
تعتبر الآلة الحاسبة البسيطة مثالاً على نظام Turing Incomplete لأنها تستطيع القيام بعدد قليل من الحسابات فقط. على العكس، الحاسبة العلمية القابلة للبرمجة يمكن اعتبارها كآلة تورينج لأنها قادرة على تنفيذ جميع أنواع الحسابات.
التكنولوجيا البلوكشين وتورينغ
بينما تعتبر بعض التطبيقات التكنولوجية للبلوكشين Turing Complete، نجد أن بعضها الآخر يكون Turing Incomplete. يختلف هذا بناءً على تقنية التشفير المستخدمة.
تطبيقات في العملات الرقمية
على سبيل المثال، لغة التشفير المستخدمة في بيتكوين تم تصميمها عمدًا لتكون Turing Incomplete لأنها تحقق الهدف المطلوب منها وزيادة التعقيد قد يُدخل مشاكل محتملة. عبر الحفاظ على البساطة، يستطيع المطورون التنبؤ بدقة عالية بكيفية سير العمل في الظروف المختلفة. من ناحية أخرى، تم بناء إيثريوم على أساس بلوكشين Turing Complete. وهذا مهم لأنه يحتاج لفهم الاتفاقيات التي تشكل العقود الذكية.
بفضل Turing Completeness، يتمكن إيثريوم من فهم وتنفيذ أي اتفاقيات مستقبلية، حتى تلك التي لم تؤخذ بنظر الاعتبار بعد. بعبارة أخرى، يعني Turing Completeness في إيثريوم أنه قادر على استخدام قاعدة الشفرة الخاصة به لتنفيذ أي مهمة عمليًا، طالما لديه التعليمات الصحيحة، والوقت الكافي، وقوة المعالجة.