X-машина - X-machine

The X-машина (XM) теориялық моделі болып табылады есептеу енгізген Сэмюэль Эйленберг 1974 ж.[1]The X «X-машинасында» машина жұмыс істейтін деректердің негізгі типін ұсынады; мысалы, мәліметтер базасында жұмыс істейтін машина (тип объектілері) дерекқор) болар еді дерекқор- машина. X-машина моделі құрылымдық жағынан ұқсас ақырғы күйдегі машина, тек машинаның ауысуларын белгілеу үшін қолданылатын таңбалар қарым-қатынастар түр XX. Өтпелі кезеңнен өту оны белгілейтін қатынасты қолдануға тең (мәліметтер типіне өзгерістер жиынтығын есептеу) X), және машинадағы жолды өту барлық байланысты қатынастарды бірінен соң бірін қолдануға сәйкес келеді.

Түпнұсқа теория

Эйленбергтің түпнұсқа X-машинасы есептеудің толық жалпы теориялық моделі болды Тьюринг машинасы детерминирленген, детерминирленбеген және аяқталмайтын есептеулерді қабылдаған). Оның негізгі жұмысы [1] негізгі машиналардың көптеген нұсқаларын жариялады, олардың әрқайсысы жалпыланған ақырғы күйдегі машина сәл басқаша.

Ең жалпы модельде X-машинасы мәні бойынша «X типті объектілерді манипуляциялауға арналған машина» болып табылады. $ X $ - деп санаңыз деректер типі, деп аталады негізгі тип, және бұл Φ (жартылай) қатынастардың жиынтығы Φ: X → X. Х-машина - бұл ақырғы күйдегі машина оның көрсеткілері relations қатынастарымен белгіленеді. Кез-келген жағдайда бір немесе бірнеше ауысулар болуы мүмкін қосылды егер домен байланысты қатынастың φмен Х-да сақталған ағымдық мәндерді қабылдайды (жиынтығы). Әр циклде барлық қосылған өтулер қабылданған деп есептеледі. Құрылғы арқылы танылған әрбір жол a тізімін жасайды1 ... φn қатынастар. Біз композицияны call деп атаймыз1 o ... o φn осы қатынастардың жол қатынасы сол жолға сәйкес келеді. The мінез-құлық X-машинаның жүріс-тұрыс қатынастарымен есептелген барлық мінез-құлықтардың бірігуі анықталған. Жалпы алғанда, бұл детерминистік емес, өйткені кез-келген қатынасты қолдану Х нәтижелерінің жиынтығын есептейді, формальды модельде барлық мүмкін нәтижелер қатар, қатар қарастырылады.

Практикалық мақсаттар үшін, X-машинасы ақырғы есептеуді сипаттауы керек. Α: Y → X кодтау функциясы кейбірінен түрлендіреді енгізу мәліметтер типі Y бастапқы X күйіне, ал декодтау функциясы β: X → Z, Х күйінен соңғы күйге (күйлерге) айналады шығу мәліметтер типі Z. Х-тің бастапқы күйі толтырылғаннан кейін, X-машина аяқталады, содан кейін оның нәтижелері байқалады. Жалпы алғанда, машина тұйықталуы (бұғатталуы) немесе тірі құлпы (ешқашан тоқтамауы) немесе бір немесе бірнеше толық есептеулер орындай алады. Осы себепті жақында жүргізілген зерттеулер детерминирленген X-машиналарға бағытталған, олардың мінез-құлқын дәлірек бақылауға және бақылауға болады.

Мысал

Peep-hole оптимизаторы бар компиляторды бағдарлама құрылымын оңтайландыруға арналған машина деп санауға болады. Бұл Оңтайландырғыш- машина, α кодтау функциясы бастапқы кодты Y кіріс түрінен алады (бағдарлама көзі) және оны жад типіне (талдаушы ағаш) жүктейді. Машинаның бірнеше күйі бар делік FindIncrements, FindSubExprs және Аяқталды. Құрылғы бастапқы күйінде басталады FindIncrementsөтпелер арқылы басқа мемлекеттермен байланысқан:

 FindIncrementsDoIncrement FindIncrements FindIncrementsӨткізіп жіберу FindSubExprs FindSubExprsDoSubExpr FindSubExprs FindSubExprsSkipSubExpr Аяқталды

Қатынас DoIncrement «x: = x + 1» сәйкес талданған кіші ағашты оңтайландырылған «++ x» кіші ағашқа бейнелейді. Қатынас DoSubExpr «z: = x + y; ... z ...» есептеуін сақтау үшін локальды айнымалысы бар оңтайландырылған нұсқаға «x + y ... x + y» бірдей өрнектің бірнеше қайталануын қамтитын талдау ағашын бейнелейді. z «. Бұл қатынастар тек егер оларда X жұмыс істейтін домен мәндерін (кіші ағаштар) қамтыса ғана қосылады. Қалған қатынастар Өткізіп жіберу және SkipSubExpr болып табылады нулоптар (сәйкестілік қатынастары) бір-бірін толықтыратын жағдайларда іске қосылды.

Сонымен, Оңтайландырғыш- машина аяқталғанға дейін жұмыс істейді, алдымен ұсақ қосымшаларды орнында өсімге айналдырады (кезінде FindIncrements күйі), содан кейін ол ауысады FindSubExprs жалпы экспрессияның бірқатар алып тастау күйін жасаңыз және орындаңыз, содан кейін ол соңғы күйге өтеді Аяқталды. Одан кейін декодтау функциясы X жад түрінен (оңтайландырылған талдау парағы) Z типіне (машинаның оңтайландырылған коды) салыстырылады.

Конвенция

Эйленбергтің түпнұсқа моделіне сілтеме жасаған кезде «Х-машина» әдетте кіші әріппен жазылады «m», өйткені мағынасы «Х-ті өңдеуге арналған кез-келген машина». Кейінірек белгілі бір модельдерге сілтеме жасағанда, конвенция сол варианттың тиісті атауының бөлігі ретінде «M» капиталын қолдану болып табылады.

1980 жылдар

X-машинаға деген қызығушылық 1980 жылдардың соңында Майк Холкомбе,[2] модельдің бағдарламалық жасақтама үшін өте қолайлы екенін байқаған ресми спецификация мақсаттар, өйткені ол таза бөлінеді басқару ағыны бастап өңдеу. Біреуі жеткілікті абстрактілі деңгейде жұмыс істеген жағдайда, есептеудегі басқару ағындары ақырғы күйдегі машина ретінде ұсынылуы мүмкін, сондықтан X-машинаның спецификациясын аяқтау үшін машинаның әр ауысуымен байланысты өңдеуді белгілеу қалады. Модельдің құрылымдық қарапайымдылығы оны өте икемді етеді; идеяның басқа иллюстрацияларында Холкомбтың адам-компьютер интерфейстерінің сипаттамасы,[3]оның жасуша биохимиясындағы процестерді модельдеу,[4]және Стэннеттің әскери командалық жүйелерде шешім қабылдауды модельдеуі.[5]

1990 жылдар

Рентген машиналары 1990-жылдардың ортасынан бастап, Гилберт Лейкоктың детерминизацияланған кезінен бастап жаңа назарға ие болды Ағымдағы X-Machine[6] болып табылатын ірі бағдарламалық жасақтама жүйелерін көрсетуге негіз болатындығы анықталды толығымен сыналатын.[7] Тағы бір нұсқасы Байланыс ағыны X-машинасы биологиялық процестер үшін пайдалы сыналатын модель ұсынады[8] және болашақ топқа негізделген спутниктік жүйелер.[9]

2000 ж

Х-аппараттар қолданылды лексикалық семантика арқылы Андрас Корнай, сөз негізін X базалық жиынтығының бір мүшесі ерекшеленетін «үшкір» машиналар арқылы модельдейтін.[10] Тіл білімінің басқа салаларына, атап айтқанда қазіргі заманғы реформацияға қолдану Панини ізашар болды Джерар Уэт және оның әріптестері[11][12]

Негізгі нұсқалар

Х-машина сирек кездеседі, бірақ оның алғашқы бірнеше формалары негізделеді. Бағдарламалық жасақтаманы тестілеудің ең ықпалды моделі болып табылады Ағымдағы X-Machine. НАСА жақында комбинациясын қолдану туралы талқыланды Ағынды рентген машиналары және жобалау мен сынау кезінде WSCSS технологиялық есептеу топ серігі жүйелер.[9]

Аналогтық X машинасы (AXM)

Ең алғашқы нұсқа, үздіксіз уақыт Аналогты X-Machine (AXM), Майк Станнетт 1990 жылы есептеудің ықтимал «супертурингтік» моделі ретінде енгізген;[13]бұл жұмыспен байланысты гипер есептеу теория.[14]

Stream X-Machine (SXM)

Ең жиі кездесетін X-машина нұсқасы - Гилберт Лэйкоктың 1993 ж Ағымдағы X-Machine (SXM ) модель,[6]Майк Холкомб пен Флорентин Ипатенің теориясына негіз болады толық тестілеу аяқталғаннан кейін белгілі дұрыстық қасиеттеріне кепілдік беретін бағдарламалық жасақтама сынағы[7][15] Stream X-Machine-дің Эйленбергтің бастапқы моделінен айырмашылығы бар, бұл X типті мәліметтер типі формада Шығу* × Мем × Жылы*, қайда Жылы* енгізу реті, Шығу* - бұл шығу тізбегі, және Мем бұл (қалған) жад.

Бұл модельдің артықшылығы - бұл жүйені әр сатыдағы нәтижелерді байқай отырып, оның күйлері мен ауысулары арқылы жүйені бір қадаммен басқаруға мүмкіндік береді. Бұл әр қадамда белгілі бір функциялардың орындалуына кепілдік беретін куәлік құндылықтары. Нәтижесінде күрделі бағдарламалық қамтамасыз ету жүйелері жоғарыдан төмен қарай құрастырылған және төменнен жоғарыға қарай тексерілген Stream X-Machines иерархиясына айналуы мүмкін. Дизайн мен тестілеуге бөліну мен бағындыру тәсілін Флорентин Ипатенің дұрыс интеграциялау дәлелі қолдайды,[16] бұл қабатты машиналарды өз бетінше сынау құралған жүйені сынаумен тең болатындығын дәлелдейді.

Байланыс X-Machine (CXM)

Бірнеше рентгенді параллель қосу туралы алғашқы ұсыныс Джудит Барнардтың 1995 ж Байланыс құрылғысы (CXM немесе COMX) модель,[17][18]онда машиналар аталған байланыс арналары арқылы қосылады (белгілі порттар); бұл модель дискретті де, нақты уақытта да бар.[19] Бұл жұмыстың алдыңғы нұсқалары толық формальды болған жоқ және толық кіріс / шығыс қатынастарын көрсете алмады.

Буферлік арналарды қолданатын осындай коммуникативтік X-Machine тәсілін Petros Kefalas жасаған.[20][21] Бұл жұмыстың бағыты компоненттер құрамындағы мәнерлілікке бағытталды. Арналарды ауыстыру мүмкіндігі Stream X-Machines-тен алынған кейбір сынақ теоремаларының орындалмауын білдірді.

Бұл нұсқалар талқыланады толығырақ жеке парақта.

Байланыс ағыны X-машинасы (CSXM)

Бір мезгілде X-машина композициясының толық формальды моделін 1999 жылы Кристина Вертан мен Хориа Джорджеску ұсынды,[22] Филип Берд пен Энтони Коулингтің автоматиканы хабарлау бойынша бұрынғы жұмысына негізделген.[23] Вертанның моделінде машиналар жанама түрде ортақ пайдаланылады коммуникация матрицасы тікелей арналар арқылы емес, (мәні бойынша көгершіндер массиві).

Блесеску, Коулинг, Джорджеску, Вертан және басқалар осы CSXM моделінің формальды қасиеттерін егжей-тегжейлі зерттеді. Толық кіріс / шығыс қатынастарын көрсетуге болады. The коммуникация матрицасы синхронды байланыс үшін хаттама орнатады. Мұның артықшылығы, ол әр машинаның өңдеуін олардың байланысынан ажыратып, әр мінез-құлықты бөлек тексеруге мүмкіндік береді. Бұл композициялық модель стандартқа балама ретінде дәлелденді Ағымдағы X-Machine,[24] сондықтан Holcombe және Ipate жасаған ертерек тестілеу теориясын қолдана отырып.

Бұл X-машина нұсқасы талқыланды толығырақ жеке парақта.

Объект X-Machine (OXM)

Кирилл Богданов пен Энтони Симонс объектіге бағытталған жүйелердегі объектілердің мінез-құлқын модельдеу үшін X-машинаның бірнеше нұсқаларын жасады.[25] Бұл модель ерекшеленеді Ағымдағы X-Machine монолитті X типті мәліметтер тізбектелген бірнеше объектілерге таралатын және қоршалатын тәсіл; және жүйелер кіріс пен шығысқа емес, әдіс шақыруларына және қайтаруларға негізделген. Осы бағыттағы одан әрі жұмыс суперкласстың кеңістікті кеңейтілген ішкі сынып объектілерінде бөлетін мұрагерлік жағдайында ресми тестілеу теориясын бейімдеуге қатысты болды.[26]

«CCS-ұлғайтылған X-машина» (CCSXM) моделі кейінірек 2002 жылы Симонс пен Станнетт асинхронды байланыс болған кезде объектілік-бағдарланған жүйелердің мінез-құлық сынағын толық қолдау үшін жасалды.[27] Бұл кейбір ұқсастығын білдіреді деп күтілуде НАСА жақында ұсынылған; бірақ екі модельді салыстыру әлі жүргізілген жоқ.

Сондай-ақ қараңыз

Жүктелетін техникалық есептер

  • М. Станнетт және Дж. Х. Симонс (2002) CCS-ұлғайтылған X-машиналарын қолдана отырып, объектіге бағытталған жүйелерді мінез-құлықты толықтай сынау. Tech Report CS-02-06, информатика бөлімі, Шеффилд университеті. Жүктеу
  • Дж. Агуадо және А. Дж. Коулинг (2002) Тестілеуге арналған машиналар теориясының негіздері. Tech Report CS-02-06, информатика бөлімі, Шеффилд университеті. Жүктеу
  • Дж. Агуадо және А. Дж. Коулинг (2002) Таратылған жүйелерді анықтауға арналған байланыс машиналары жүйелері. Tech Report CS-02-07, информатика бөлімі, Шеффилд университеті. Жүктеу
  • М. Станнетт (2005) Х-машиналардың теориясы - 1 бөлім. Tech Report CS-05-09, информатика бөлімі, Шеффилд университеті. Жүктеу

Сыртқы сілтемелер

Әдебиеттер тізімі

  1. ^ а б С.Эйленберг (1974) Автоматтар, тілдер және машиналар, т. A. Academic Press, Лондон.
  2. ^ M. Holcombe (1988) 'X-машиналар динамикалық жүйенің спецификациясының негізі', Бағдарламалық жасақтама журналы 3(2), 69-76 бб.
  3. ^ М.Холкомб (1988) «Адам-машина интерфейсін нақтылаудың формальды әдістері», Халықаралық J. командалық-басқару, байланыс және ақпарат. Жүйелер. 2, 24-34 бет.
  4. ^ М.Холкомб (1986) 'Жасуша биохимиясының математикалық модельдері'. Техникалық есеп CS-86-4, информатика бөлімі, Шеффилд университеті.
  5. ^ М. Станнетт (1987) «Командалық жүйелерде шешім қабылдауға ұйымдастырушылық тәсіл». Халықаралық J. командалық-басқару, байланыс және ақпарат. Жүйелер. 1, 23-34 бет.
  6. ^ а б Гилберт Лэйкок (1993) Техникалық сипаттамаға негізделген бағдарламалық жасақтаманы сынау теориясы мен практикасы. Докторлық диссертация, Шеффилд университеті. Реферат Мұрағатталды 5 қараша, 2007 ж Wayback Machine
  7. ^ а б М.Холкомб және Ф.Ипейт (1998) Дұрыс жүйелер - бизнес-процестің шешімін құру. Springer, қолданбалы есептеу сериясы.
  8. ^ А.Бэлл мен М.Холкомб (1996) 'Ұялы өңдеудің есептеу модельдері', in Жасушалық және молекулалық биологиялық жүйелердегі есептеу, eds. М.Холкомб, Р.Патон және Р.Кутбертсон, Сингапур, Дүниежүзілік ғылыми баспалар.
  9. ^ а б M. G. Hinchey, C. A. Rouff, J.L.Rash and W. F. Truszowski (2005) 'Интеллектуалды топтарға арналған интеграцияланған формальды әдістің талаптары', FMICS'05, 5-6 қыркүйек, 2005 ж., Лиссабон, Португалия. Есептеу техникасы қауымдастығы, 125-133 бб.
  10. ^ А.Корнай (2009) Лексикалық семантика алгебрасы. 2009 жиналысында ұсынылған құжат Тіл математикасына арналған тапсырма. C. Эберт, Г. Джейгер, Дж. Михаэлис (ред.) Proc. 11-ші математика семинары (MOL11) Springer LNCS 6149 174-199 [1]
  11. ^ Г. Хуэт және Б. Разет (2008 ж.) «Реляциялық машиналармен есеп айырысу» оқулығы ICON-да ұсынылды, желтоқсан 2008 ж., Поо «Мұрағатталған көшірме» (PDF). Архивтелген түпнұсқа (PDF) 2015 жылғы 19 ақпанда. Алынған 7 тамыз, 2013.CS1 maint: тақырып ретінде мұрағатталған көшірме (сілтеме)
  12. ^ P. Goyal, G. Huet, A. Kulkarni, P. Scharf, R. Bunker (2012) «Санскриттік өңдеуге арналған таратылған платформа». COLING 2012, 1011–1028 бб [2]
  13. ^ М. Станнетт (1990) 'Х-аппараттар және тоқтату проблемасы: супертуринг машинасын құру'. Есептеудің формальды аспектілері 2, 331-41 бет.
  14. ^ B. J. Copeland (2002) 'Гипер есептеу'. Ақыл мен машиналар 12, 461-502 бет.
  15. ^ F. Ipate және M. Holcombe (1998) 'Машинаның жалпыланған сипаттамаларын нақтылау және сынау әдісі'. Int. J. Comp. Математика. 68, 197-219 беттер.
  16. ^ F. Ipate және M. Holcombe (1997) 'Барлық ақауларды табатын интеграциялық тестілеу әдісі', Халықаралық компьютерлік математика журналы 63, 159-178 беттер.
  17. ^ Дж.Барнард, C. Тейкер, Дж. Уитуорт және М. Вудворд (1995) «Нақты уақыттағы жүйелерді формальды жобалау үшін нақты уақыт режимінде байланыс жасайтын X-машиналар», DARTS '95 жинағы, Университеттік Либер, Брюссель, Бельгия, 9-11 қараша 2005 ж
  18. ^ Дж. Барнард (1996) COMX: Байланыс жасайтын X-машиналарын қолданатын компьютерлік жүйелерді формальды жобалау әдістемесі. Докторлық диссертация, Стаффордшир университеті.
  19. ^ А.Алдерсон және Дж.Барнард (1997) 'Өтуді қауіпсіз ету туралы', SOCTR / 97/01 техникалық есебі, Есептеу мектебі, Стаффордшир университеті. (Цитезер)
  20. ^ Э.Керис, Г.Элефтеракис және П.Кефалас (2000) 'Оқиғаларды модельдеу және дискретті оқиғаларды модельдеу үшін X-машиналарын қолдану', Proc. Схемалар, жүйелер, байланыс және компьютерлердегі 4-ші дүниежүзілік мультиконференция, Афина.
  21. ^ П.Кефалас, Г.Элефтеракис және Э.Керис (2000) 'Байланыс жасайтын машиналар: үлкен жүйелердің модульдік спецификациясы үшін практикалық тәсіл', Техникалық есеп CS-09/00, Информатика кафедрасы, Қалалық колледж, Салоники.
  22. ^ Х. Георгеску және C. Вертан (2000) «Ағымдағы рентген машиналарын байланыстырудың жаңа тәсілі», Әмбебап компьютерлік ғылымдар журналы 6 (5), 490-502 бет.
  23. ^ P. R. Bird and A. J. Cowling (1994) 'Байланыс машиналары желісін қолдана отырып логикалық бағдарламалауды модельдеу', Proc. Параллельді және үлестірілген өңдеу бойынша 2-ші Euromicro семинары, Малага, 26-28 қаңтар 1994 ж, 156-161 б. Реферат
  24. ^ Т.Баланеску, А.Дж. Каулинг, Х. Джорджеску, М. Георге, М. Холкомб және Ч. Вертан (1999) 'Байланысты X-машиналар жүйелері тек X-машиналардан аспайды', Әмбебап компьютерлік ғылымдар журналы, 5 (9), 494-507 б.
  25. ^ A. J. H. Simons, K. E. Bogdanov және W. M. L. Holcombe (2001) 'Нысан машиналарын қолданумен толық функционалды тестілеу', Техникалық есеп CS-01-18, Информатика кафедрасы, Шеффилд университеті
  26. ^ A. J. H. Simons (2006) 'Мінез-құлыққа сәйкес келетін объект типтері үшін регрессиялық тестілеу теориясы', Бағдарламалық жасақтаманы тексеру, тексеру және сенімділік, 16 (3), Джон Вили, 133-156 бб.
  27. ^ M. Stannett және A. J. H. Simons (2002) 'CCS-ұлғайтылған X-Machines', Техникалық есеп CS-2002-04, Информатика кафедрасы, Шеффилд университеті, Ұлыбритания.