آلة تجريدية

في علم الحاسوب ، تُعرَّف الآلة المجردة بأنها نموذج نظري يسمح بتحليل دقيق ومفصل لكيفية عمل نظام الحاسوب. [ 1 ] وهي تشبه الدالة الرياضية في أنها تستقبل مدخلات وتُنتج مخرجات بناءً على قواعد محددة مسبقًا. وتختلف الآلات المجردة عن الآلات المادية في أنها مُصممة للعمل بشكل صحيح ومستقل عن المكونات المادية . [ 2 ] تُسمى الآلات المجردة " آلات " لأنها تسمح بتنفيذ البرامج خطوة بخطوة ؛ وهي " مجردة " لأنها تتجاهل العديد من جوانب الآلات المادية الفعلية . [ 3 ] تتكون الآلة المجردة النموذجية من تعريف من حيث المدخلات والمخرجات ومجموعة العمليات المسموح بها لتحويل المدخلات إلى المخرجات. ويمكن استخدامها لأسباب نظرية بحتة، وكذلك كنماذج لأنظمة الحاسوب في العالم الحقيقي. [ 2 ] في نظرية الحوسبة ، تُستخدم الآلات المجردة غالبًا في التجارب الفكرية المتعلقة بقابلية الحوسبة أو لتحليل تعقيد الخوارزميات . [ 3 ] يُعد استخدام الآلات المجردة أمرًا أساسيًا في مجال نظرية التعقيد الحسابي ، كما هو الحال مع آلات الحالة المحدودة ، وآلات ميلي ، وآلات الدفع لأسفل ، وآلات تورينج . [ 4 ]

تصنيف

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

تشغيل آلة تورينج

تُعدّ آلات تورينج ، على سبيل المثال، من أهم الآلات المجردة في علوم الحاسوب. [ 2 ] تُجري هذه الآلات عمليات على شريط (سلسلة من الرموز) بأي طول. وتُتيح تعليماتها تعديل الرموز وتغيير الرمز الذي يُشير إليه مؤشر الآلة حاليًا. فعلى سبيل المثال، قد تحتوي آلة تورينج بدائية على أمر واحد فقط، وهو "تحويل الرمز إلى 1 ثم التحرك إلى اليمين"، وستُنتج هذه الآلة سلسلة من الرقم 1 فقط. [ 8 ] تُعتبر آلة تورينج الأساسية هذه حتمية؛ ومع ذلك، يُمكن أيضًا بناء آلات تورينج غير حتمية قادرة على تنفيذ عدة إجراءات عند إدخال نفس البيانات. [ 2 ]

تطبيق

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

تنفيذ لغة البرمجة

الآلة المجردة، ببساطة، هي تجريد لفكرة الحاسوب المادي. [ 13 ] وللتنفيذ الفعلي، يجب صياغة الخوارزميات بشكل صحيح باستخدام البنى التي توفرها لغة البرمجة . وهذا يعني أن الخوارزميات المراد تنفيذها يجب التعبير عنها باستخدام تعليمات لغة البرمجة. [ 3 ] يُمكّن بناء جملة لغة البرمجة من إنشاء البرامج باستخدام مجموعة محدودة من البنى تُعرف بالتعليمات. تشترك معظم الآلات المجردة في مخزن البرنامج والحالة ، والتي غالبًا ما تتضمن مكدسًا وسجلات. [ 9 ] [ 14 ] في الحواسيب الرقمية، المكدس هو ببساطة وحدة ذاكرة مزودة بسجل عنوان يمكنه عد الأعداد الصحيحة الموجبة فقط (بعد تحميل قيمة ابتدائية فيه). يُعرف سجل عنوان المكدس بمؤشر المكدس لأن قيمته تشير دائمًا إلى العنصر العلوي في المكدس. [ 15 ] يتكون البرنامج من سلسلة من التعليمات، مع مؤشر مكدس يشير إلى التعليمات التالية المراد تنفيذها. عند اكتمال التعليمات، يتقدم مؤشر المكدس . تُعرف آلية التحكم الأساسية هذه للآلة المجردة أيضًا بحلقة التنفيذ . [ 3 ] بالتالي، فإن الآلة المجردة للغة برمجة ما هي أي مجموعة من هياكل البيانات والخوارزميات القادرة على تخزين وتشغيل البرامج المكتوبة بلغة البرمجة. وهي تسد الفجوة بين المستوى العالي للغة البرمجة والمستوى المنخفض للآلة الفعلية من خلال توفير خطوة لغوية وسيطة للترجمة . وتُكيَّف تعليمات الآلة المجردة مع العمليات الفريدة اللازمة لتنفيذ عمليات لغة مصدر معينة أو مجموعة من لغات المصدر. [ 9 ]

اللغات الإجرائية

في أواخر خمسينيات القرن العشرين، طورت جمعية آلات الحوسبة (ACM) وغيرها من المنظمات الحليفة العديد من المقترحات للغة الحاسوبية العالمية الموجهة (UNCOL) ، مثل آلة كونواي . يُعد مفهوم UNCOL جيدًا، لكنه لم يُستخدم على نطاق واسع بسبب ضعف أداء الكود المُولّد . في العديد من مجالات الحوسبة، سيظل أداؤه يُمثل مشكلة على الرغم من تطوير آلة جافا الافتراضية في أواخر تسعينيات القرن العشرين. ومن بين الآلات المجردة الناجحة من هذا النوع: كود كائنات ألغول (1964)، وآلة P4 (1976)، وآلة UCSD P (1977)، ولغة فورث (1970). [ 3 ]

لغات البرمجة الكائنية

تعتمد الآلات المجردة للغات البرمجة كائنية التوجه غالبًا على بنية المكدس ، وتتضمن تعليمات وصول خاصة لحقول الكائنات وأساليبها . في هذه الآلات، تتم إدارة الذاكرة ضمنيًا بواسطة جامع البيانات المهملة (ميزة استعادة الذاكرة المدمجة في لغات البرمجة). [ 16 ] تُعد لغات Smalltalk-80 (1980) و Self (1989) و Java (1994) أمثلة على هذا التطبيق. [ 3 ]

لغات معالجة السلاسل

لغة معالجة النصوص هي لغة حاسوبية تركز على معالجة النصوص بدلاً من الأرقام. وقد ظهرت لغات معالجة النصوص على مدى عقود في صورة واجهات أوامر ، وأدوات برمجة ، ومعالجات ماكرو، ولغات برمجة نصية . [ 17 ] يوفر استخدام آلة مجردة مناسبة فائدتين: زيادة سرعة التنفيذ وتعزيز قابلية النقل. وتُعدّ لغتا Snobol4 و ML/I مثالين بارزين على لغات معالجة النصوص المبكرة التي تستخدم آلة مجردة لتحقيق استقلالية الآلة. [ 3 ]

لغات البرمجة الوظيفية

تمثيل تصويري لآلة كريفين

عرّفت الآلات المجردة المبكرة للغات الوظيفية ، بما في ذلك آلة SECD (1964) وآلة كارديلي المجردة الوظيفية (1983)، التقييم الصارم، المعروف أيضًا بالتقييم الفوري أو التقييم بالقيمة ، [ 3 ] حيث تُقيّم وسائط الدالة قبل استدعائها ومرة ​​واحدة فقط. في الآونة الأخيرة، تركزت معظم الأبحاث على التقييم المؤجل (أو التقييم عند الحاجة) ، [ 18 ] مثل آلة G (1984) وآلة كريفين (1985) وآلة التعليمات الثلاث (1986)، حيث تُقيّم وسائط الدالة فقط عند الضرورة ومرة ​​واحدة على الأكثر. أحد الأسباب هو أن التنفيذ الفعال للتقييم الصارم أصبح مفهومًا جيدًا الآن، وبالتالي تضاءلت الحاجة إلى آلة مجردة. [ 3 ]

اللغات المنطقية

يُعدّ حساب المسندات (منطق الرتبة الأولى) أساس لغات البرمجة المنطقية . وتُعتبر لغة برولوج أشهر لغات البرمجة المنطقية . تُكتب قواعد برولوج بصيغة موحدة تُعرف باسم "بنود هورن" المُكمّمة عالميًا، والتي تعني بدء الحساب الذي يسعى إلى اكتشاف برهان الهدف. وقد حظيت آلة وارن المجردة WAM (1983) [ 3 ] ، التي أصبحت المعيار الفعلي في ترجمة برامج برولوج، باهتمام كبير في الدراسات. فهي تُوفّر تعليمات خاصة، مثل تعليمات توحيد البيانات وتعليمات التحكم في التدفق، لدعم التراجع (خوارزمية البحث). [ 19 ]

بناء

تتكون الآلة المجردة العامة من ذاكرة ومترجم . تُستخدم الذاكرة لتخزين البيانات والبرامج، بينما المترجم هو المكون الذي ينفذ التعليمات المضمنة في البرامج. [ 9 ]

بنية الآلة المجردة

يجب على المترجم تنفيذ العمليات الخاصة باللغة التي يترجمها. ومع ذلك، ونظرًا لتنوع اللغات، فمن الممكن تحديد فئات من العمليات و" آلية تنفيذ " مشتركة بين جميع المترجمات. تُقسم عمليات المترجم وهياكل البيانات المصاحبة لها إلى الفئات التالية: [ 9 ] [ 20 ]

  1. عمليات معالجة البيانات الأولية :
  2. العمليات وهياكل البيانات للتحكم في تسلسل تنفيذ العمليات ؛
  3. العمليات وهياكل البيانات للتحكم في عمليات نقل البيانات ؛
  4. العمليات وهياكل البيانات لإدارة الذاكرة .

معالجة البيانات الأولية

يجب أن تحتوي الآلة المجردة على عمليات لمعالجة أنواع البيانات الأولية مثل السلاسل النصية والأعداد الصحيحة. [ 9 ] على سبيل المثال، تُعتبر الأعداد الصحيحة نوع بيانات أساسيًا في معظم الآلات المجردة المادية والآلات المجردة المستخدمة في العديد من لغات البرمجة . تُجري الآلة العمليات الحسابية اللازمة، مثل الجمع والضرب، خلال خطوة زمنية واحدة. [ 21 ]

التحكم في التسلسل

تتيح العمليات والهياكل الخاصة بـ "التحكم في التسلسل" التحكم في تدفق تنفيذ تعليمات البرنامج. عند استيفاء شروط معينة، يصبح من الضروري تغيير التنفيذ التسلسلي المعتاد للبرنامج. [ 9 ] لذلك، يستخدم المفسر هياكل بيانات (مثل تلك المستخدمة لتخزين عنوان التعليمات التالية المراد تنفيذها) يتم تعديلها بواسطة عمليات تختلف عن تلك المستخدمة لمعالجة البيانات (على سبيل المثال، عمليات تحديث عنوان التعليمات التالية المراد تنفيذها). [ 22 ]

التحكم في عمليات نقل البيانات

تُستخدم عمليات نقل البيانات للتحكم في كيفية نقل المعاملات والبيانات من الذاكرة إلى المفسر والعكس. وتتعامل هذه العمليات مع المخزن وترتيب استرجاع المعاملات منه. [ 9 ]

إدارة الذاكرة

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

التسلسلات الهرمية

تسلسل هرمي للآلات المجردة

تُستخدم غالبًا التسلسلات الهرمية للآلات المجردة، حيث تستخدم كل آلة وظائف المستوى الأدنى منها مباشرةً، وتضيف وظائف خاصة بها لتلبية احتياجات المستوى الأعلى. يمكن إضافة حاسوب مادي ، مُكوَّن من أجهزة إلكترونية مادية، في المستوى الأساسي. وفوق هذا المستوى، يُمكن إدخال مستوى الآلة المجردة المُبرمجة دقيقًا. تقع الآلة المجردة التي يوفرها نظام التشغيل ، والمُنفذة بواسطة برنامج مكتوب بلغة الآلة ، مباشرةً فوق مستوى الآلة المادية (أو فوق مستوى البرامج الثابتة مباشرةً إذا لم يكن موجودًا). ​​من جهة، يُوسِّع نظام التشغيل قدرات الآلة المادية بتوفير عناصر أولية عالية المستوى غير متوفرة على الآلة المادية (مثل العناصر الأولية التي تعمل على الملفات). تتكون الآلة المضيفة من الآلة المجردة التي يوفرها نظام التشغيل، والتي تُنفذ عليها لغة برمجة عالية المستوى باستخدام آلة وسيطة ، مثل آلة جافا الافتراضية ولغة رمزها البايتي. عادةً لا يكون المستوى الذي توفره الآلة المجردة للغة عالية المستوى (مثل جافا) هو المستوى النهائي في التسلسل الهرمي. في هذه المرحلة، يمكن إضافة تطبيق واحد أو أكثر لتقديم خدمات إضافية معًا. على سبيل المثال، يمكن إضافة مستوى "آلة الويب" لتنفيذ الوظائف اللازمة للتعامل مع اتصالات الويب ( بروتوكولات الاتصال أو عرض كود HTML ). يقع مستوى " خدمة الويب " أعلى من ذلك، وهو يوفر الوظائف اللازمة لتواصل خدمات الويب، سواءً من حيث بروتوكولات التفاعل أو سلوك العمليات المعنية. في هذا المستوى، يمكن تطوير لغات جديدة كليًا لتحديد سلوك ما يُسمى "عمليات الأعمال" القائمة على خدمات الويب (مثال على ذلك لغة تنفيذ عمليات الأعمال ). أخيرًا، يمكن إيجاد تطبيق متخصص في أعلى مستوى (على سبيل المثال، التجارة الإلكترونية ) يتميز بوظائف محددة ومحدودة للغاية. [ 9 ]

انظر أيضاً

مراجع

  1. وايسشتاين، إريك دبليو. "الآلة المجردة" . mathworld.wolfram.com . تم الاطلاع عليه بتاريخ 16-05-2022 .
  2. 1 2 3 4 5 6 "ما هي الآلة المجردة؟" . EasyTechJunkie . تم الاطلاع عليه بتاريخ 16-05-2022 .
  3. 1 2 3 4 5 6 7 8 9 10 ديل، ستيفان؛ هارتل، بيتر؛ سيستوفت، بيتر (مايو 2000). "آلات مجردة لتنفيذ لغات البرمجة" . أنظمة حاسوب الجيل القادم . 16 (7): 739-751 . doi : 10.1016/S0167-739X(99)00088-6 .
  4. "9.1.1: نظرة عامة على آلة الحالة المحدودة" . نصوص هندسية ليبر . 29-04-2021 . تم الاسترجاع في 31-05-2022 .
  5. "ما هو النظام الحتمي؟ - تعريف من موقع Techopedia" . Techopedia.com . 29 أغسطس 2019. تاريخ الاسترجاع: 30 مايو 2022 .
  6. ستيرنز، ريتشارد إي. (يناير 2003). "مسائل الوقت والحدود الدنيا الحتمية مقابل غير الحتمية" . مجلة ACM . 50 (1): 91-95 . doi : 10.1145/602382.602409 . ISSN 0004-5411 . S2CID 2194820 .  
  7. أرموني، ميخال؛ غال-إيزر، جوديث (ديسمبر 2007). "اللا حتمية: مفهوم مجرد في دراسات علوم الحاسوب" . تعليم علوم الحاسوب . 17 (4): 243-262 . Bibcode : 2007CSEd...17..243A . doi : 10.1080/08993400701442885 . ISSN 0899-3408 . S2CID 41928460 .  
  8. جيل، جون (ديسمبر 1977). "التعقيد الحسابي لآلات تورينج الاحتمالية" . مجلة SIAM للحوسبة . 6 (4): 675-695 . doi : 10.1137/0206049 . ISSN 0097-5397 . 
  9. 1 2 3 4 5 6 7 8 9 10 11 12 13 غابرييلي، ماوريتسيو؛ مارتيني، سيموني (2010)، "الآلات المجردة" ، لغات البرمجة: المبادئ والنماذج ، لندن: سبرينغر لندن، ص 1-25 ، doi : 10.1007/978-1-84882-914-5_1 ، ISBN  978-1-84882-913-8تم الاطلاع عليه بتاريخ 16 مايو 2022
  10. باير، راي؛ تشين، أندرو؛ كوك، جانين ؛ دونوفريو، ديف؛ غريدر، غاري؛ كوهن، جيف؛ مور، شيرلي؛ شالف، جون؛ فيتر، جيف (2018-02-01). تقييم الأجهزة: نماذج الآلات المجردة وهياكل الوكيل للحوسبة فائقة السرعة (تقرير فني). مكتب المعلومات العلمية والتقنية التابع لوزارة الطاقة الأمريكية. doi : 10.2172/1733300 . OSTI 1733300 . 
  11. "آلة مجردة من FOLDOC" . foldoc.org . تم الاطلاع عليه بتاريخ 2021-08-07 .
  12. جي، ج.؛ ميلفين، س. و.؛ بات، ي. ن. (1986). "تطبيق لغة برولوج عبر الشفرة المصغرة VAX 8600" . وقائع ورشة العمل السنوية التاسعة عشرة حول البرمجة المصغرة . نيويورك، نيويورك، الولايات المتحدة الأمريكية: مطبعة ACM. الصفحات 68-74 . doi : 10.1145/19551.19538 . ISBN  081860736X. S2CID 3846072 . 
  13. "الآلة المجردة" . مرجع أكسفورد . تم الاسترجاع في 16-05-2022 .
  14. غارسيا-مارتين، خوليو مانويل؛ سوتيل-مارتين، ميغيل (15 أغسطس 1999). "الآلة المجردة: نمط لتصميم الآلات المجردة" (ملف PDF) . وقائع مؤتمر لغات أنماط البرامج 99 .
  15. upscfever.com (25-01-2017). "تنظيم وبنية الحاسوب (تنظيم المكدس) - UPSC FEVER" . upscfever.com . تم الاطلاع عليه بتاريخ 31-05-2022 .
  16. "ما هي البرمجة الكائنية التوجه (OOP)؟" . SearchAppArchitecture . تم الاطلاع عليه بتاريخ 31-05-2022 .
  17. "اعتبارات تصميم لغات معالجة السلاسل النصية" ، دراسة في لغات معالجة السلاسل النصية ، سلسلة محاضرات في علوم الحاسوب، المجلد 205، برلين، هايدلبرغ: سبرينغر برلين هايدلبرغ، 1985، الصفحات 17-37 ، doi : 10.1007/3-540-16041-8_2 ، ISBN   978-3-540-16041-0تم الاطلاع عليه بتاريخ 31 مايو 2022
  18. هاكيت، جينيفر؛ هاتون، غراهام (26 يوليو 2019). "الاستدعاء حسب الحاجة هو استدعاء استبصاري حسب القيمة" . وقائع مؤتمر ACM للغات البرمجة . 3 (ICFP): 1-23 . doi : 10.1145/3341718 . ISSN 2475-1421 . S2CID 195782686 .  
  19. "مقدمة في لغة البرمجة برولوج" . موقع جيكس فور جيكس . 26 مايو 2018. تاريخ الاسترجاع: 31 مايو 2022 .
  20. أكاتولي، بنيامينو؛ بارينباوم، بابلو؛ مازا، داميانو (26-11-2014). "تقطير الآلات المجردة" . إشعارات ACM SIGPLAN . 49 (9): 363-376 . doi : 10.1145/2692915.2628154 . ISSN 0362-1340 . S2CID 234775413 .  
  21. بايلدونغ (11 يناير 2018). "مقدمة إلى أنواع البيانات الأساسية في جافا | بايلدونغ" . www.baeldung.com . تاريخ الاسترجاع: 31 مايو 2022 .
  22. كوتشانا، بارثا (2004)، "المترجم"، أنماط تصميم بنية البرمجيات في جافا ، منشورات أورباخ، doi : 10.1201/9780203496213 ، ISBN 978-0-8493-2142-9

للمزيد من القراءة

  • بيتر فان إمدي بواس، نماذج ومحاكاة الآلات ، الصفحات  3-66، المنشورة في:
يان فان ليوين (محرر). "دليل علوم الحاسوب النظرية. المجلد أ: الخوارزميات والتعقيد" ، مطبعة معهد ماساتشوستس للتكنولوجيا/إلسيفير، 1990. ISBN 0-444-88071-2(المجلد أ). QA 76.H279 1990
  • ستيفان ديل، بيتر هارتل وبيتر سيستوفت، الآلات المجردة لتنفيذ لغة البرمجة مؤرشفة في 2013-05-01 في Wayback Machine ، أنظمة حاسوب الجيل القادم، المجلد 16 (7)، إلسيفير، 2000.
  • فيرنر كلوج (2006). آلات الحوسبة المجردة: منظور حساب التفاضل والتكامل لامدا . سبرينغر. ISBN 978-3-540-27359-2.