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

بناءً على ذلك ، سيكون من الأصح الحديث عن أنظمة التحكم الآلي (ACS). الآن دعونا نلقي نظرة على الشكل الوظيفي النموذجي للأسلحة ذاتية الدفع الموضحة في الشكل. 1. إذا كان شريط آلة تورينج هو كائن التحكم ، فإن الأجهزة المشغلة (IS) ستكون عناصر MT التي تنفذ التغيير في محتويات الشريط وتحرك الرأس ، وستكون أجهزة القياس (IS) هي العناصر التي تقرأ المعلومات من الشريط.
الشكل 1. مخطط وظيفي للبنادق ذاتية الدفعولكن لماذا أنتقل إلى TAU ، إذا كانت هناك ممارسة أقرب إلى برمجة تصميم أنظمة الكمبيوتر ، حيث تعتبر أجهزة التشغيل (OS) ، والتي تتضمن MT بالطبع ، مزيجًا من آلات التشغيل (OA) والتحكم (UA). وهذا أقرب إلى ما نسعى إليه في النهاية - تبرير قوة البرمجة التلقائية. في التين. 2 يعرض شاشة النص من دراسة من قبل Mayorov S.A. ، Novikov G.I. هيكل الحواسيب الإلكترونية [5] ، حيث يتم النظر في قضايا التصميم من أمبير المرجع بتفصيل كبير.
الشكل 2. مفهوم مدير وآلات التشغيللكن إذا قارنا نظرية تصميم الكمبيوتر ونظرية البرامج ، فيمكن تتبع تشابه هيكلي واضح بينهما. في نظرية البرمجة ، يمكن تمثيل نموذج أي برنامج على المستوى الهيكلي كمخطط برنامجي S = (M ، A ، C) ، حيث M هي مجموعة عناصر الذاكرة ، A هي مجموعة العوامل ، C هو التحكم [10]. باتباع هذا النهج ، يمكن أيضًا تعريف أي برنامج لآلة Turing على أنه مخطط برنامج يتم فيه تمثيل المجموعة M بخلايا الأشرطة ومجموعة المشغلين بإجراءات MT المرتبطة بتحليل الخلية و 2) تغيير الأحرف في خلايا الشريط و 3) تحريك الرأس.
وبالتالي ، فإن مفهوم مخطط البرنامج مماثل تمامًا للمفهوم المدروس لأتمتة التشغيل والتحكم ، حيث يكون نموذج UA هو نموذج آلة الحالة الهيكلية المحدودة (SKA) المذكورة أدناه ، و OA "هو هيكل لتنفيذ الإجراءات على المعلومات." في هذه الحالة ، تتضمن الزراعة العضوية عناصر تخزين البيانات (أعلاه هي الذاكرة) وكتل لمعالجة المعلومات التي تنفذ حساب الشروط المنطقية وتنفيذ إجراءات معينة (أعلاه - العديد من العوامل).
مما سبق ، يمكن فهم أن الشريط لا يمكن اعتباره سوى كائن التحكم لـ MT. إذا لم يكن لجهاز التحكم في آلة تورينج الوصول المباشر إليه ، لأنه يتم تحقيق جميع العمليات مع الخلايا بشكل غير مباشر من خلال كتل الزراعة العضوية. بالإضافة إلى ذلك ، يبدو أنه ليس مألوفًا جدًا أو ، إن لم يكن القول ، من الغريب اعتبار هدف إدارة البرنامج ، كنظام تحكم ، كائنًا يمثل ذاكرة (شريط).
وبالتالي ، من أجل تعريف رسمي لآلة تورينج ، وفي سياقها مكان لنموذج آلة الحالة المحدودة ، تكون مفاهيم نظرية البرنامج كافية. الآن ، على عكس التعريف الغامض للغاية لبرامج التشغيل الآلي المقدمة في إطار تقنية SWITCH ، يمكننا أن نقول أن برنامج التشغيل الآلي هو برنامج يتمتع بالتحكم في شكل نموذج لآلة الحالة المحدودة.
ماذا سيكون البرنامج نفسه - بسلوك بسيط أو معقد ، ما هو "تنوعه" - مع التحكم المنطقي ، "مع تخصيص حالة صريح" ، إلخ. إلخ لا يهم على الاطلاق. الشيء الرئيسي هو نوع الإدارة. يمكن تحديد العناصر المتبقية من البرنامج على نطاق واسع - من أبسط ، على سبيل المثال ، مع آلة تورينج ، إلى الأكثر تعقيدًا - أي شكل من أشكال المشغلين والوظائف وهياكل البيانات الخاصة بلغات البرمجة - المجمّع ، واللغة عالية المستوى ، إلخ.
يمكنك أيضًا أن تتذكر أن آلة تورينج تعتبر منذ فترة طويلة حصيرة أوتوماتيكية [6] أو ، في الحالات القصوى ، امتدادها البسيط [7]. لكن عليك أن تفهم ما هو نوع الأوتوماتون ، ونوع الامتداد ، وما إذا كانت مكافئة لنماذج آلات الحالة المحدودة الكلاسيكية. دعنا نحاول توضيح ذلك.
2. تورينج البرمجة في بيئة البرمجة الآليةفي التين. يوضح الشكل 3 الأوتوماتون لوظيفة زيادة MT من الدراسة [8]. في الشكل ، من الواضح أن هذا ليس برنامج MT ، ولكنه ليس بالفعل جهازًا كلاسيكيًا للحالة المحدودة. في التين. يوضح الشكل 4 الرسم البياني لآلة الحالة المحدودة الهيكلية الكلاسيكية (SKA) وتنفيذها في بيئة VKPa (بيئة البرمجة الآلية للمكوّن المرئي في C ++ في إطار مكتبة Qt وبيئة Qt Creator) ، التي تنفذ نفس خوارزمية وحدة التحكم MT.
الشكل 3. زيادة الرقم لكل وحدة باستخدام آلة تورينج
الشكل 4: نموذج لبرنامج الزيادة ل MT في شكل SKAيمكنك أن ترى أن الجهاز الهيكلي يحتوي على أربع قنوات إدخال وخمس قنوات إخراج. ترتبط كل من هذه القنوات بوظيفة البرنامج الذي يحمل نفس الاسم - تقييم أو إجراء. هنا ، المسند عبارة عن وظائف بدون معلمات تُرجع قيمة Boolean استنادًا إلى قيمة خلية الشريط التي تعرضها ، والإجراءات عبارة عن وظائف بدون معلمات تؤدي إجراءً واحدًا أو آخر لتغيير خلية الشريط وتحريك رأس آلة Turing.
تحتوي SKA على نفس مجموعة الحالات التي يتمتع بها المحرك الآلي في الشكل 3. علاوة على ذلك ، بالإضافة إلى تعيين الأوتوماتون نفسه ، الذي قدمته SKA ، فإنه يطبق تعيينين إضافيين: تعيين مجموعة من المسندات (x1 ، ... ، xM) إلى مجموعة قنوات الإدخال لنفس الجهاز ، ومجموعة قنوات الإخراج الخاصة بالجهاز إلى مجموعة الإجراءات نفسها - y1 ، ... ، yN. على سبيل المثال ، ستعود القيمة الأصلية x3 إلى القيمة الحقيقية (القيمة 1 لإشارة الدخل التي تحمل نفس الاسم) ، إذا كان هناك 1 في الخلية الحالية ، والإجراء y4 ، الذي سيتم تشغيله عندما تأخذ نفس إشارة الخرج الخاصة بالجهاز ، القيمة 1 ، فسوف تتوافق مع تحريك الرأس إلى اليسار (L) و إلخ إلخ
لاحظ أن SKA لا تتحكم بشكل مباشر في الشريط ، ولكنها تنفذ [تعيينات إضافية] ، وربط إشارات الأوتوماتون بالوظائف التي تحدد العديد من عمليات آلة تورينج. هذا يقنعنا مرة أخرى بأنه ليست هناك حاجة لإدخال مفهوم كائن التحكم الآلي في الحالة التي يكون فيها "التعيين القديم" ، ولكن المفهوم الدقيق للرياضيات ، كافياً.
مقارنة الأوتوماتة في الشكل. 3 والتين. 4 ، يمكن ملاحظة أن SKA لا تستخدم الأمر "*" (انظر الشكل 1). في مثل هذه الحالة ، يكفي أن لا يعطي إشارة مرتبطة بهذا الأمر. بالإضافة إلى ذلك ، هناك إشارتان أو أكثر (المدخلات والمخرجات) في نفس المرحلة الانتقالية متوازية. لذلك ، عندما يكون هناك تعارض في الوصول إلى الكائنات المشتركة (على سبيل المثال ، تحتاج إلى تغيير الخلية وتحريك الرأس) ، يتم استخدام اتفاقية: يتم تنفيذ الإجراءات المتعلقة بمرحلة انتقال واحدة بالتسلسل بترتيب أرقامها ، أي يتم تنفيذ إجراء ذي رقم أعلى بعد إجراء ذي رقم أقل. هذا الاتفاق لا ينطبق على المسندات ، كما انهم لا يغيرون الشريط. لذلك نحن نجعل الجهاز أكثر إحكاما وبديهية (لا حاجة لتقديم حالات وسيطة).
في عملية اختبار برنامج الزيادة ، تم تحديد المواقف التي قد تنشأ فيها مشاكل أثناء تشغيل جهاز MT. أولاً ، الشريط الحقيقي ليس لانهائي ويمكن أن يؤدي تجاوزه إلى تعطل البرنامج. ثانيا ، من الضروري الإشارة إلى الوضع الأولي للرأس. بدون ذلك ، على سبيل المثال ، إذا كان الرقم في مكان تعسفي من الشريط ، وكانت الحالة الأولية للرأس على يسار الرقم ومقابل المساحة ، فسيبدأ الرأس على الفور في الانتقال إلى اليسار. بعد ذلك ، يمكن أن يتجاوز حدود الشريط ، مما يتسبب في "تعطل" البرنامج ، أو بعد نقله خطوة واحدة إلى اليسار ، سيكتب إلى الخلية 1 ، وسيكمل ، معلقًا ، العملية "الناجحة". أو ، إذا كان الرقم يحتوي على رقم واحد في جميع الأرقام وتم كتابته من بداية الشريط ، فإن المحاولة الأخيرة لنقل الرقم 1 إلى الرقم الأقدم ستتسبب في نفس "التعطل".
2.1. كائن تنفيذ MT في C ++ضع في اعتبارك تطبيق برنامج الكائن لجهاز Turing في C ++ في بيئة VKPa ، التي تنفذ أي برنامج لـ MT ، بما في ذلك برنامج حساب الزيادة.
لهذا الغرض ، تم إنشاء فئة أساسية تمثل أي جهاز تورينج ، والذي يتم توارثه بواسطة كائنات البرامج التي تنفذ برنامج MT أو آخر. يظهر هذا العنصر الأساسي في القائمة 1 ، ويتم عرض البرنامج الذي ينفذ مهمة الزيادة في القائمة 2.
القائمة 1. تنفيذ البرنامج للفئة الأساسية MT
#include "lfsaappl.h" class FTuringMashine : public LFsaAppl { public: FTuringMashine(string strNam, CVarFsaLibrary *pCVFL, LArc* pTBL); protected: int x15(); int x16(); void y14(); void y15(); void y16(); void y17(); QString strSrc;
قائمة 2. برنامج زيادة لآلة تورينج
#include "FTuringMashine.h" class FTIncrement : public FTuringMashine { public: LFsaAppl* Create(CVarFSA *pCVF) { Q_UNUSED(pCVF)return new FTIncrement(nameFsa, pCVarFsaLibrary); } FTIncrement(string strNam, CVarFsaLibrary *pCVFL); protected: int x1(); int x2(); int x3(); void y1(); void y2(); }; #include "FTIncrement.h" static LArc TBL_TIncrement[] = {
2.2. أمثلة لبرامج MT مع التنفيذ في C ++فكر في مثال لبرنامج MT الذي "يعمل كمتقبل للغة ، أي يمكنه التعرف على اللغة "من [9]. تظهر وظيفة الانتقال في الشكل. 5 ، والأوتوماتون المكافئ في شكل SKA في الشكل. 6.
δ(1, a) = (2, x, R) δ(1, y) = (4, y, R) δ(2, a) = (2, a, R) δ(2, y) = (2, y, R) δ(2, b) = (3, y, L) δ(3, y) = (3, y, L) δ(3, a) = (3, a, R) δ(3, x) = (1, x, R) δ(4, y) = (4, a, R) δ(4, #) = (F, #, L)
التين. 5. وظيفة الانتقال لآلة تورينج ، مع التعرف على اللغة {anbn: n≥1}
التين. 6. رسم بياني SKA لجهاز تورينج يتعرف على اللغة {anbn: n≥1}تحتوي وحدة التحكم MT في شكل SKA على 6 قنوات إدخال و 7 قنوات إخراج. يشتمل برنامج المستلم أيضًا على العدد المقابل من المسندات والإجراءات ، والتي يتم عرضها في الشكل على يمين الرسم البياني التلقائي. يظهر تنفيذ برنامج C ++ في بيئة VKPA في القائمة 3.
القائمة 3. برنامج لجهاز تورينج يتعرف على اللغة {anbn: n≥1}
#include "FTuringMashine.h" extern LArc TBL_TAcceptor[]; class FTAcceptor : public FTuringMashine { public: LFsaAppl* Create(CVarFSA *pCVF) { Q_UNUSED(pCVF)return new FTAcceptor(nameFsa, pCVarFsaLibrary); } FTAcceptor(string strNam, CVarFsaLibrary *pCVFL, LArc* pTB = TBL_TAcceptor); protected: int x1(); int x2(); int x3(); int x4(); void y1(); void y2(); void y3(); void y18(); int nState{1}; friend class CDlgTAcceptor; }; #include "stdafx.h" #include "FTAcceptor.h" LArc TBL_TAcceptor[] = {
في القائمة رقم 3 ، يمثل الإجراء y18 متغيرًا من برنامج MT وفقًا لنهج تقنية SWITCH. كجزء من تنفيذ البرمجة التلقائية لبيئة VKPA ، في هذه الحالة ، بدلاً من التشغيل التلقائي في الشكل. 6 ، سيكون من الضروري تطبيق آلية مع حالة واحدة ، والتي تصدر إشارة y18 في الدورة. يتوافق مع سطر التعليق الذي تم تعليقه من جدول التحويل في القائمة 3. لكي يعمل الجهاز التلقائي كـ SWICH ، تحتاج إلى إزالة التعليق من هذا السطر والتعليق على الأسطر المتبقية.
النظر في مثال آخر لبرنامج لآلة تورينج من [7] ، حيث يتم تعريف MT بأنه "امتداد بسيط للغاية لنموذج آلة الحالة المحدودة". في هذه الحالة ، يعد برنامج جهاز تورينج عبارة عن قائمة محدودة من الخمسات للدالة المحددة جزئيًا للتحولات والنواتج δ: S × XS × X × G.
يظهر برنامج MT ، الذي يعثر على أكبر مقسوم مشترك (GCD) من رقمين ، في الشكل. 7. يتم عرض الرسم البياني SKA المكافئ له في الشكل. 8. لاحظ أن أمر إعادة الكتابة لا يستخدم هنا أيضًا. يظهر تطبيق C ++ في القائمة 4.
التين. 7. الرسم البياني للانتقال لآلة تورينج التي تحسب GCD من رقمين ، والعديد من تكويناتها عند معالجة زوج من الأرقام <4 ، 6>
التين. 8. الرسم البياني SKA ، أي ما يعادل الرسم البياني في الشكل. 7قائمة 4. برنامج لآلة تورينج للعثور على GCD من رقمين
#include "FTuringMashine.h" class FTGrCmDiv: public FTuringMashine { public: LFsaAppl* Create(CVarFSA *pCVF) { Q_UNUSED(pCVF)return new FTGrCmDiv(nameFsa, pCVarFsaLibrary); } FTGrCmDiv(string strNam, CVarFsaLibrary *pCVFL); protected: int x1(); int x2(); int x3(); int x4(); void y1(); void y2(); void y3(); void y17(); }; #include "FTGrCmDiv.h" static LArc TBL_TGrCmDiv[] = {
في الختام ، هناك برنامج MT آخر من مطوري تقنية SWITH ، تم بحثه في المقال [11] ، والذي يقدم مهمة التعرف على الأقواس في نسختين. إحداها في شكل آلة مايلي ، والثانية هي آلة مختلطة (على التوالي في الشكل 9 والشكل 11). وتظهر الأوتوماتيكية الهيكلية المقابلة لها في الشكل. 10 والتين. 12. يظهر تنفيذ برنامج C ++ في القائمة 5.
التين. 9. الاعتراف بين قوسين من عمق التعسفي. ميل تحويل الرسم البياني
التين. 10. الاعتراف بين قوسين من عمق التعسفي. مايلز إيرل سكاي
التين. 11. الاعتراف بين قوسين من عمق التعسفي. رسم بياني انتقالي لآلية مختلطة
التين. 12. الاعتراف بين قوسين من عمق التعسفي. الرسم البياني SCA من التحولات من automaton مختلطةقائمة 5. برنامج لآلة تورينج للتعرف على الأقواس
#include "../FTuringMashine.h" class FTListing2 : public FTuringMashine { public: void MooreAction(); LFsaAppl* Create(CVarFSA *pCVF) { Q_UNUSED(pCVF)return new FTListing2(nameFsa, pCVarFsaLibrary); } FTListing2(string strNam, CVarFsaLibrary *pCVFL); protected: int x1(); int x2(); int x3(); int x4(); void y1(); void y2(); void y3(); void y4(); void y5(); int i{0}; }; #include "FTListing2.h" static LArc TBL_TListing2[] = {
منذ الأوتوماتون في الشكل. 12 رفض العمل ، تقرر الذهاب إلى الجهاز في الشكل. 9. يتم عرض آلة أوتوماتيكية مكافئة لها في شكل SKA في الشكل. 10. صحيحًا ، هذا أيضًا شكل تلقائي مختلط ، حيث تم ترك الإشارة عند الحالة "0" والإشارة y15 في الحالة "1" من التنفيذ الأول (الشكل 12). الأول ضروري أثناء التثبيت الأولي ، وتنفذ إشارة y15 نوبة رأس إلى اليمين لقراءة حرف الشريط التالي. ما تبقى من SKA يتوافق مع آلة مايلز في الشكل. 9.
بعد التشغيل الآلي في التين. تم اختبار 10 بنجاح ، وعاد إلى الجهاز في الشكل. 11. وأصبح من الواضح أن الإشارة z1_1 بالحالة "1" لا لزوم لها (بالنسبة للإوتوماتون في الشكل 12 فهي الإشارة y2). المشكلة هي أنه عندما يجد "القوس الأيسر" ، فإنه يزيد العداد بوحدتين ، وعندما يجد "القوس الأيسر" لا يغيره على الإطلاق. لذلك ، عندما يتم الكشف عن "القوس الأيسر" ، يتم استدعاؤه مرتين - مرة واحدة على الحلقة التي تحمل علامة x2 / y2 ، والمرة الثانية عند دخول الحالة. وعندما يتم الكشف عن "القوس الأيمن" ، فإن العداد يتناقص أولاً في الحلقة ، ثم يزداد عند دخول الحالة.
السبب في هذا العمل لعنصر التحكم MT هو في تفسير غير صحيح من قبل مؤلفي أداء آلة نوع مور. على ما يبدو ، يعتقدون أن الإشارة التي تحتوي على حالة في Moore automaton يتم تنفيذها فقط عندما تدخل هذه الحالة (انظر الانتقال من الحالة "0" إلى "1") ، ولكن في الواقع يتم إصدارها في كل مرة تدخل فيها هذه الحالة. بما في ذلك عندما يمر حلقة. وبالتالي ، نحن لا نتعامل مع خطأ (من لم يكن مخطئًا؟) ، ولكن مع مشكلة أكثر خطورة - تفسير غير صحيح في إطار SWITH-technology لأداء نوع مور التلقائي. اختبار نموذج مكافئ أظهر هذا.
3. الخاتمةلتلخيص ، يمكننا القول أنه لا توجد اختلافات رسمية بين تورينج والبرمجة التلقائية ، كما آلة تورينج هي نموذج مجردة لبرامج التشغيل الآلي. فقط في الحالة الأخيرة ، يتم استخدام مجموعة واسعة من العوامل وهياكل البيانات (الذاكرة). الآن يمكننا الإجابة بثقة على السؤال عن كيفية اختلاف Post Post ، كنموذج للبرامج العادية ، عن Turing machine ، نموذج البرامج التلقائية. نموذج الإدارة وفقط ، ل الباقي - الذاكرة والمشغلين يمكن أن تكون هي نفسها.
وبالتالي ، تختلف البرمجة العادية عن البرمجة التلقائية في شيء واحد فقط - نموذج التحكم. وبالتالي ، في حين يتم استخدام مشغلي التحكم العادي من نوع المحول لتنفيذ الأتمتة ، ولا يمكن استخدام ما شابه ، بالمعنى الدقيق للكلمة ، تعتبر هذه البرمجة تلقائية. يمكن أن يكون هذا تقليدًا للأتمتة مع فقد خصائصها المحددة ولا شيء أكثر من ذلك.
لذلك ، عند إعطاء تعريف لمفاهيم برنامج التشغيل الآلي وبرمجة التشغيل التلقائي ، لا نحتاج إلى التحدث عن "عناصر التحكم الآلي" ، ولكن عن البرامج والبرامج الوحيدة التي لها تحكم في شكل آلة حالة كلاسيكية محدودة.
وحقيقة أخرى مثيرة للاهتمام أود أن ألفت الانتباه إليها. في أوائل العقد الأول من القرن العشرين ، عبر المؤلفون عن فهمهم للبرمجة التلقائية لجمهور واسع. تم نشر مقالاتهم حول الآلات المجردة في مجلة PC World رقم 2 لعام 2002 [11 ، 12 ، 13]. يمكن القول أنه على مر السنين ، لم تتأثر قناعات الأطراف. على الرغم من أن هذا ربما يعكس فقط درجة ثقتهم في القرارات المختارة.
على سبيل المثال ، في "محاضرة جديدة عن البرمجة التلقائية" أ. شاليتو مقارنة بـ "المحاضرة ذات الشرائح" السابقة (قبل عشر سنوات) ، لم تتم إضافة سوى مقطع فيديو للمثال استنادًا إلى "الحزمة الحديثة" Stateflow. يبدو أن هذا يؤكد صحة أفكار أ. شاليتو ، لأنه ما لا يمكن تنفيذه داخل UniMod (يبدو أن المشروع "تم تجميده") ، يتجسد مطورو Stateflow. وربما ، ليس من المهم من فعل ذلك ...
ومع ذلك ، في وقت نشر المقالات المذكورة ، كان مؤلفو تقنية SWITCH يعرفون بالفعل نقدها. هذا لم يكن سرا منذ ذلك الحين كانت متاحة على موقع SoftCraft [14]. كما أنشأت أقسامًا مخصصة للبرمجة التلقائية بشكل عام وتكنولوجيا SWITH وتكنولوجيا KA على وجه الخصوص. نوقشت مواقف المؤلفين في منتدى الموقع (كان مفتوحًا في ذلك الوقت). لكن كلهم ظلوا غير مقتنعين.
النتائج في الوقت الحالي هي كما يلي. النقد المعبر عنه فيما يتعلق بتكنولوجيا SWITH ذات مرة هو ذو صلة وحديثة. ينطبق أيضًا على حزمة Stateflow. في تقنية SWITH ، لم يكن هناك ، وليس هناك تعريف واضح للبرمجة التلقائية ، لم يتغير أسلوب تنفيذ الأوتوماتة ، النموذج نفسه ليس كلاسيكيًا ، لا يوجد نموذج حوسبة متوازي ، إلخ. إلخ دون القضاء على هذه المشكلات ، تدعي هذه البرمجة الآلية في أفضل الأحوال دورًا محدودًا إلى حد ما.
أسباب المشكلات المذكورة أعلاه واضحة تمامًا: يتم تجاهل نظرية البرامج ، ونسيان نظرية الأتمتة ، على الرغم من قول الكثير من الكلمات الجيدة والصحيحة حول الأتمتة نفسها وخصائصها الرائعة. ولكن في الواقع هذه هي الآلات الأخرى. المؤلف مقتنع بالشك في المحاولات السيئة لإنشاء نماذج أصلية. إنها عن نماذج متزامن ، رد الفعل وغيرها. يمكن أن تكون مريحة عند حل فئة ضيقة من المشاكل وليس أكثر. لكن الأخطر من ذلك هو أنها تقع خارج نظرية الأتمتة دون أن تمتلك نظرية خاصة بها. لكن النموذج الخارجي للنظرية لا حول له ولا قوة ، وبالتالي لا معنى له تقريبًا.
مراجع1. Shalyto A. A. محاضرة جديدة عن البرمجة التلقائية. 2019 ، [المورد الإلكتروني] ، وضع الوصول:
www.youtube.com/watch؟v=PPWTxceMutk&feature=youtu.be ، مجانًا. الجاز. روس. (تاريخ العلاج 5 ديسمبر 2019).
2. شاليتو أ. نموذج البرمجة التلقائية. نشرة علمية وتقنية من جامعة ولاية سانت بطرسبرغ لتكنولوجيا المعلومات والميكانيكا والبصريات. المجلد. 53. البرمجة الآلية. 2008 ، ص. 23/03.
3. شاليتو أ. نموذج البرمجة التلقائية. وقائع المؤتمر الحادي عشر لعموم روسيا حول العلوم والتعليم العالي "البحث الأساسي والابتكار في الجامعات التقنية". STU. 2007 ، ص. 202-205. ، [المورد الإلكتروني] ، وضع الوصول:
is.ifmo.ru/works/_2007_09_27_shalyto.pdf ، مجانًا. الجاز. روس. (تاريخ العلاج 5 ديسمبر 2019).
4. ميروشنيك نظرية التحكم الآلي. النظم الخطية. - سانت بطرسبرغ: بيتر ، 2005. - 336 صفحة.
5. Mayorov S.A ، Novikov G.I. هيكل الحواسيب الالكترونية. - لام: الهندسة ، 1979. - 384 صفحة.
6. مينسكي الحسابية والأتمتة. م: مير ، 1971. - 364 ص.
7. كاربوف يو نظرية الأتمتة. - سانت بطرسبرغ: بيتر ، 2003. - 208 صفحة.
8. Polikarpova N. ، A. Shalyto A. Automaton البرمجة. 2nd ed.، St. Petersburg.: Peter، 2011 .-- 176 p.
9. J. تحليل ماكونيل للخوارزميات. نهج التعلم النشط. الطبعة الثالثة. - M: Technosphere ، 2013 .-- 415 ص.
10. الخوارزميات والبرمجيات والهندسة المعمارية لأنظمة الحوسبة متعددة المعالجات. م: نوكا ، 1982 ، - 336.
11. شاليتو إيه ، توكيل ن. من برمجة تورينج إلى // MirPK تلقائي. رقم 2.
is.ifmo.ru/؟i0=works&i1=turing12. ليوبتشينكو تجارب على الآلات المجردة. "عالم الكمبيوتر" ، رقم 2،3 / 02.
www.osp.ru/pcworld/2002/02/162923 ،
www.osp.ru/pcworld/2002/03/16313713. ليوبتشينكو من آلة تورينج إلى سيارة مايلي. "عالم الكمبيوتر" ، العدد 8/02.
www.osp.ru/pcworld/2002/08/16385614. موقع SoftCraft. باستخدام نظرية الأتمتة في البرمجة. [الموارد الإلكترونية] ، وضع الوصول:
www.softcraft.ru/auto ، مجاني. الجاز. روس. (تاريخ العلاج 5 ديسمبر 2019).