X-makinesi - X-machine

X-makinesi (XM) teorik bir modeldir hesaplama tarafından tanıtıldı Samuel Eilenberg 1974'te.[1] X "X-makinesinde", makinenin çalıştığı temel veri türünü temsil eder; örneğin, veritabanları (türdeki nesneler) üzerinde çalışan bir makine veri tabanı) öyle olabilir mi veri tabanı-makine. X-makine modeli yapısal olarak aynıdır. sonlu durum makinesi makinenin geçişlerini etiketlemek için kullanılan sembollerin ilişkiler tip XX. Bir geçişi geçmek, onu etiketleyen ilişkiyi uygulamaya eşdeğerdir (veri türünde bir dizi değişikliği hesaplama X) ve makinedeki bir yolun üzerinden geçmek, tüm ilişkili ilişkilerin birbiri ardına uygulanmasına karşılık gelir.

Orijinal teori

Eilenberg'in orijinal X-makinesi tamamen genel bir teorik hesaplama modeliydi ( Turing makinesi, örneğin), deterministik, deterministik olmayan ve sonlandırıcı olmayan hesaplamaları kabul eden. Onun ufuk açıcı çalışması [1] temel X-makine modelinin birçok çeşidini yayınladı ve bunların her biri sonlu durum makinesi biraz farklı bir şekilde.

En genel modelde, bir X-makinesi esasen "X tipi nesneleri manipüle etmek için bir makinedir". Varsayalım ki X bir veri tipi, aradı temel veri türüve bu Φ (kısmi) ilişkiler kümesidir φ: X → X. Bir X-makinesi bir sonlu durum makinesi okları Φ 'deki ilişkilerle etiketlenir. Herhangi bir durumda, bir veya daha fazla geçiş olabilir etkinleştirildi Eğer alan adı ilişkili ilişkinin φben X'de saklanan mevcut değerleri (alt kümesini) kabul eder. Her döngüde, tüm etkinleştirilen geçişlerin alınacağı varsayılır. Makine boyunca tanınan her yol bir liste oluşturur φ1 ... φn ilişkilerin. Kompozisyona φ diyoruz1 Ö ... Ö φn bu ilişkilerden yol ilişkisi bu yola karşılık gelir. davranış X-makinesinin, yol ilişkileri ile hesaplanan tüm davranışların birliği olarak tanımlanır. Genel olarak, bu deterministik değildir, çünkü herhangi bir ilişkiyi uygulamak X üzerindeki bir dizi sonucu hesaplar. Biçimsel modelde, tüm olası sonuçlar paralel olarak birlikte değerlendirilir.

Pratik amaçlar için, bir X-makinesi bazı sonlu hesaplamaları tanımlamalıdır. Bir kodlama işlevi α: Y → X, bazılarından dönüştürür. giriş veri türü Y'yi X'in başlangıç ​​durumuna ve bir kod çözme işlevi β: X → Z, X'in son durumlarından bazılarına geri dönüştürür. çıktı veri türü Z. X'in başlangıç ​​durumu doldurulduğunda, X-makinesi tamamlanana kadar çalışır ve ardından çıktılar gözlenir. Genel olarak, bir makine kilitlenebilir (bloke edilebilir) veya canlı kilitlenebilir (asla durmaz) veya bir veya daha fazla tam hesaplama yapabilir. Bu nedenle, daha yeni araştırmalar, davranışları daha kesin bir şekilde kontrol edilebilen ve gözlemlenebilen deterministik X makinelerine odaklanmıştır.

Misal

Gözetleme deliği iyileştiriciye sahip bir derleyici, program yapısını optimize etmek için bir makine olarak düşünülebilir. Bunda Optimizer-makine, kodlama işlevi α, girdi türü Y'den (program kaynağı) kaynak kodunu alır ve onu bellek türü X'e (ayrıştırma ağacı) yükler. Makinenin birkaç duruma sahip olduğunu varsayalım. Artışları Bul, FindSubExprs ve Tamamlandı. Makine başlangıç ​​durumunda başlar Artışları Bul, geçişler aracılığıyla diğer durumlara bağlanan:

 Artışları BulDoIncrement Artışları Bul Artışları BulSkipIncrement FindSubExprs FindSubExprsDoSubExpr FindSubExprs FindSubExprsSkipSubExpr Tamamlandı

İlişki DoIncrement "x: = x + 1" e karşılık gelen ayrıştırılmış bir alt ağacı optimize edilmiş "++ x" alt ağacına eşler. İlişki DoSubExpr aynı "x + y ... x + y" ifadesinin birden çok oluşumunu içeren bir ayrıştırma ağacını, tekrarlanan hesaplamayı "z: = x + y; ... z ... saklamak için yerel bir değişkenle optimize edilmiş bir sürüme eşler z ". Bu ilişkiler yalnızca X, üzerinde çalıştıkları alan değerlerini (alt ağaçlar) içeriyorsa etkinleştirilir. Kalan ilişkiler SkipIncrement ve SkipSubExpr vardır nullops tamamlayıcı durumlarda etkinleştirilen (kimlik ilişkileri).

Böylece Optimizer-makine, ilk önce önemsiz eklemeleri yerinde artışlara dönüştürerek tamamlanana kadar çalışacaktır ( Artışları Bul durum), ardından FindSubExprs bir dizi ortak alt ifade kaldırma işlemini belirtin ve gerçekleştirin, ardından son duruma geçecektir Tamamlandı. Kod çözme işlevi β daha sonra bellek türü X'ten (optimize edilmiş ayrıştırma ağacı) çıktı türü Z'ye (optimize edilmiş makine kodu) eşlenir.

ortak düşünce

Eilenberg'in orijinal modeline atıfta bulunulurken, "X-makinesi" tipik olarak küçük harfle "m" ile yazılır, çünkü anlamı "X'i işleyen herhangi bir makinedir". Daha sonraki belirli modellere atıfta bulunulurken, bu varyantın özel adının bir parçası olarak büyük harf "M" kullanılır.

1980'ler

X-makinesine olan ilgi 1980'lerin sonunda Mike Holcombe tarafından yeniden canlandırıldı.[2] modelin yazılım için ideal olduğunu fark eden resmi şartname amaçlar, çünkü temiz bir şekilde ayırır kontrol akışı itibaren işleme. Yeterince soyut bir seviyede çalıştığı takdirde, bir hesaplamadaki kontrol akışları genellikle bir sonlu durum makinesi olarak temsil edilebilir, bu nedenle X-makine spesifikasyonunu tamamlamak için geriye kalan tek şey, makinenin geçişlerinin her biri ile ilişkili işlemeyi belirlemektir. Modelin yapısal basitliği onu son derece esnek kılar; fikrin diğer erken örnekleri arasında Holcombe'un insan-bilgisayar arayüzleri spesifikasyonu vardı.[3]hücre biyokimyasındaki süreçlerin modellenmesi,[4]ve Stannett'in askeri komuta sistemlerinde karar verme modellemesi.[5]

1990'lar

X-makineleri, Gilbert Laycock'un belirleyiciliğinin 1990'ların ortalarından beri yeniden dikkat çekti. Akış X-Machine[6] büyük yazılım sistemlerini belirlemek için temel olarak hizmet ettiği bulundu. tamamen test edilebilir.[7] Başka bir varyant, Stream X-Machine ile İletişim biyolojik süreçler için kullanışlı bir test edilebilir model sunar[8] ve gelecek sürü temelli uydu sistemleri.[9]

2000'ler

X-makineleri uygulandı sözcüksel anlambilim tarafından Andras Kornai Temel küme X'in bir üyesi olan `` sivri uçlu '' makinelerle kelime anlamını modelleyen, ayırt etti.[10] Diğer dilbilim dallarına, özellikle çağdaş bir yeniden formülasyona uygulama Pāṇini öncülüğünü yaptı Gerard Huet ve meslektaşları[11][12]

Başlıca varyantlar

X-makinesine nadiren orijinal biçiminde rastlanır, ancak sonraki birkaç hesaplama modelinin temelini oluşturur. Yazılım testi teorileri üzerinde en etkili model, Akış X-Machine. NASA yakın zamanda bir kombinasyon kullanarak tartıştı Stream X-Machines İletişim ve tasarım ve testinde süreç hesabı WSCSS sürü uydusu sistemleri.[9]

Analog X Makinesi (AXM)

En eski varyant, sürekli zaman Analog X-Makinesi (AXM), 1990 yılında Mike Stannett tarafından potansiyel olarak "süper Turing" hesaplama modeli olarak tanıtıldı;[13]sonuç olarak çalışmakla ilgilidir hiper hesaplama teori.[14]

Akış X-Makinesi (SXM)

En sık karşılaşılan X-machine varyantı Gilbert Laycock'un 1993 Akış X-Machine (SXM ) model,[6]Mike Holcombe ve Florentin Ipate'in teorisinin temelini oluşturan tamamlayınız Test bittikten sonra bilinen doğruluk özelliklerini garanti eden yazılım testi.[7][15] Stream X-Machine, Eilenberg'in orijinal modelinden farklıdır, çünkü temel veri türü X şu şekildedir: Dışarı* × Mem × İçinde*, nerede İçinde* bir giriş dizisidir, Dışarı* bir çıktı dizisidir ve Mem hafızanın geri kalanıdır.

Bu modelin avantajı, bir sistemin her adımda çıktıları gözlemlerken durumları ve geçişleri boyunca her seferinde bir adım sürülmesine izin vermesidir. Bunlar, her adımda belirli işlevlerin yürütüldüğünü garanti eden tanık değerlerdir. Sonuç olarak, karmaşık yazılım sistemleri, yukarıdan aşağıya bir şekilde tasarlanan ve aşağıdan yukarıya bir şekilde test edilen bir Stream X-Machines hiyerarşisine ayrılabilir. Tasarım ve teste yönelik bu böl ve yönet yaklaşımı, Florentin Ipate'in doğru entegrasyon kanıtıyla desteklenmektedir.[16] Bu, katmanlı makinelerin bağımsız olarak test edilmesinin, oluşturulan sistemi test etmeye eşdeğer olduğunu kanıtlıyor.

İletişim X-Machine (CXM)

Birkaç X-makinesini paralel olarak bağlamak için ilk teklif Judith Barnard'ın 1995 X-machine ile iletişim (CXM veya COMX) model,[17][18]makinelerin adlandırılmış iletişim kanalları aracılığıyla bağlandığı ( bağlantı noktaları); bu model hem ayrık hem de gerçek zamanlı varyantlarda mevcuttur.[19] Bu çalışmanın önceki sürümleri tam olarak resmi değildi ve tam girdi / çıktı ilişkileri göstermedi.

Petros Kefalas tamponlu kanalları kullanan benzer bir İletişim X-Machine yaklaşımı geliştirdi.[20][21] Bu çalışmanın odak noktası, bileşenlerin bileşimindeki ifade gücüydü. Kanalları yeniden atama yeteneği, Stream X-Machines'den bazı test teoremlerinin taşınmadığı anlamına geliyordu.

Bu varyantlar tartışılıyor daha detaylı olarak ayrı bir sayfada.

Stream X-Machine (CSXM) İletişim

Eşzamanlı X-makinesi kompozisyonunun tamamen resmi ilk modeli, 1999 yılında Cristina Vertan ve Horia Georgescu tarafından önerildi,[22] Philip Bird ve Anthony Cowling'in daha önceki iletişim otomatata çalışmalarına dayanıyor.[23] Vertan'ın modelinde makineler, paylaşılan bir iletişim matrisi (esasen bir dizi güvercin deliği), doğrudan paylaşılan kanallardan ziyade.

Bălănescu, Cowling, Georgescu, Vertan ve diğerleri bu CSXM modelinin biçimsel özelliklerini ayrıntılı olarak incelediler. Tam girdi / çıktı ilişkileri gösterilebilir. iletişim matrisi senkron iletişim için bir protokol oluşturur. Bunun avantajı, her bir makinenin işlemesini iletişiminden ayırması ve her davranışın ayrı ayrı test edilmesine izin vermesidir. Bu kompozisyon modelinin bir standarda eşdeğer olduğu kanıtlanmıştır Akış X-Machine,[24] bu yüzden Holcombe ve Ipate tarafından geliştirilen önceki test teorisinden yararlanılıyor.

Bu X-makine varyantı tartışılıyor daha detaylı olarak ayrı bir sayfada.

Nesne X-Makinesi (OXM)

Kirill Bogdanov ve Anthony Simons, nesne yönelimli sistemlerdeki nesnelerin davranışını modellemek için X makinesinin çeşitli varyantlarını geliştirdi.[25] Bu model, Akış X-Machine yaklaşım, monolitik veri türü X'in, seri olarak oluşturulmuş birkaç nesne üzerine dağıtılması ve bu nesneler tarafından sarmalanması; ve sistemler, girdiler ve çıktılar yerine yöntem çağrıları ve geri dönüşleri tarafından yönlendirilir. Bu alandaki daha fazla çalışma, biçimsel test teorisini, genişletilmiş alt sınıf nesnelerinde süper sınıfın durum uzayını bölen kalıtım bağlamında uyarlamakla ilgiliydi.[26]

Simons ve Stannett tarafından daha sonra, eşzamansız iletişimin varlığında nesne yönelimli sistemlerin tam davranışsal testini desteklemek için "CCS ile artırılmış X-makinesi" (CCSXM) modeli daha sonra 2002 yılında geliştirilmiştir.[27] Bunun ile bazı benzerlikler taşıması bekleniyor NASA son önerisi; ancak iki modelin kesin bir karşılaştırması henüz yapılmamıştır.

Ayrıca bakınız

İndirilebilir teknik raporlar

  • M. Stannett ve A.J.H.Simons (2002) CCS-Augmented X-Machines kullanarak Nesneye Yönelik Sistemlerin Tam Davranışsal Testi. Tech Report CS-02-06, Bilgisayar Bilimleri Bölümü, Sheffield Üniversitesi. İndir
  • J. Aguado ve A. J. Cowling (2002) X-machine Theory for Testing'in Temelleri. Tech Report CS-02-06, Bilgisayar Bilimleri Bölümü, Sheffield Üniversitesi. İndir
  • J. Aguado ve A. J. Cowling (2002) Dağıtılmış Sistemleri Belirlemek için X-makinelerinin İletişim Sistemleri. Tech Report CS-02-07, Bilgisayar Bilimleri Bölümü, Sheffield Üniversitesi. İndir
  • M. Stannett (2005) X-Machines Teorisi - Bölüm 1. Tech Report CS-05-09, Bilgisayar Bilimleri Bölümü, Sheffield Üniversitesi. İndir

Dış bağlantılar

Referanslar

  1. ^ a b S. Eilenberg (1974) Automata, Languages ​​and Machines, Cilt. Bir. Academic Press, Londra.
  2. ^ M. Holcombe (1988) 'Dinamik sistem spesifikasyonunun temeli olarak X-makineleri', Yazılım Mühendisliği Dergisi 3(2), s. 69-76.
  3. ^ M. Holcombe (1988) 'İnsan-makine arayüzünün spesifikasyonunda biçimsel yöntemler', Uluslararası J. Komuta ve Kontrol, İletişim ve Bilgi. Sistemler. 2, sayfa 24-34.
  4. ^ M. Holcombe (1986) 'Hücre biyokimyasının matematiksel modelleri'. Teknik Rapor CS-86-4, Bilgisayar Bilimleri Bölümü, Sheffield Üniversitesi.
  5. ^ M. Stannett (1987) 'Komut sistemlerinde karar vermeye örgütsel bir yaklaşım.' Uluslararası J. Komuta ve Kontrol, İletişim ve Bilgi. Sistemler. 1, s. 23-34.
  6. ^ a b Gilbert Laycock (1993) Spesifikasyon Tabanlı Yazılım Testinin Teorisi ve Uygulaması. Doktora Tezi, Sheffield Üniversitesi. Öz Arşivlendi 5 Kasım 2007, Wayback Makinesi
  7. ^ a b M. Holcombe ve F. Ipate (1998) Doğru Sistemler - Bir İş Süreci Çözümü Oluşturma. Springer, Uygulamalı Hesaplama Serisi.
  8. ^ A. Bell ve M. Holcombe (1996) 'Hücresel işlemenin hesaplamalı modelleri', Hücresel ve Moleküler Biyolojik Sistemlerde Hesaplama, eds. M. Holcombe, R. Paton ve R. Cuthbertson, Singapur, World Scientific Press.
  9. ^ a b M. G. Hinchey, C.A. Rouff, J.L. Rash ve W. F. Truszkowski (2005) 'Intelligent Swarms için Integrated Formal Method Requirements of an Integrated Formal Methods', in FMICS'05 Bildirileri, 5–6 Eylül 2005, Lizbon, Portekiz. Bilgisayar Makinaları Derneği, s. 125-133.
  10. ^ A. Kornai (2009) Sözcüksel Anlambilimin Cebiri. 2009 Toplantısında sunulan bildiri Dil Matematiği Derneği. In C. Ebert, G. Jäger, J. Michaelis (editörler) Proc. 11. Dil Matematiği atölyesi (MOL11) Springer LNCS 6149174-199 [1]
  11. ^ G. Huet ve B. Razet (2008) "İlişkisel Makinelerle Hesaplama" Eğitimi ICON'da sunulmuştur, Aralık 2008, Poona "Arşivlenmiş kopya" (PDF). Arşivlenen orijinal (PDF) 19 Şubat 2015. Alındı 7 Ağustos 2013.CS1 Maint: başlık olarak arşivlenmiş kopya (bağlantı)
  12. ^ P. Goyal, G. Huet, A. Kulkarni, P. Scharf, R. Bunker (2012) "Sanskritçe İşleme için Dağıtılmış Bir Platform" Proc. COLING 2012, s. 1011–1028 [2]
  13. ^ M. Stannett (1990) 'X-makineleri ve Durma Problemi: Bir süper Turing makinesi inşa etmek'. Hesaplamanın Biçimsel Yönleri 2, s. 331-41.
  14. ^ B. J. Copeland (2002) 'Hiper hesaplama'. Akıllar ve Makineler 12, s. 461-502.
  15. ^ F. Ipate ve M. Holcombe (1998) 'Genelleştirilmiş makine spesifikasyonlarını incelemek ve test etmek için bir yöntem'. Int. J. Comp. Matematik. 68, s. 197-219.
  16. ^ F.Ipate ve M. Holcombe (1997) 'Tüm hataları bulduğu kanıtlanmış bir entegrasyon test yöntemi', Uluslararası Bilgisayar Matematiği Dergisi 63, s. 159-178.
  17. ^ J. Barnard, C. Theaker, J. Whitworth ve M. Woodward (1995) 'Gerçek zamanlı sistemlerin biçimsel tasarımı için gerçek zamanlı iletişim kuran X-makineleri', DARTS '95 Bildirileri, Universite Libre, Brüksel, Belçika, 9-11 Kasım 2005
  18. ^ J. Barnard (1996) COMX: İletişim X makinelerini kullanan bilgisayar sistemlerinin resmi tasarımı için bir metodoloji. Doktora Tezi, Staffordshire Üniversitesi.
  19. ^ A. Alderson ve J. Barnard (1997) 'Geçişi Güvenli Hale Getirme Üzerine', Teknik Rapor SOCTR / 97/01, Bilgisayar Okulu, Staffordshire Üniversitesi. (Citeseer)
  20. ^ E. Kehris, G. Eleftherakis ve P. Kefalas (2000) 'Ayrık olay simülasyon programlarını modellemek ve test etmek için X makinelerini kullanma', Proc. Devreler, Sistemler, İletişim ve Bilgisayarlarda 4. Dünya Çok Konferansı, Atina.
  21. ^ P. Kefalas, G. Eleftherakis ve E. Kehris (2000) 'İletişim X-makineleri: büyük sistemlerin modüler özellikleri için pratik bir yaklaşım', Teknik Rapor CS-09/00, Bilgisayar Bilimleri Bölümü, Şehir Koleji, Selanik.
  22. ^ H.Georgescu ve C. Vertan (2000) 'Akış X makinelerinin iletişimine yeni bir yaklaşım', Evrensel Bilgisayar Bilimleri Dergisi 6 (5), s. 490-502.
  23. ^ P.R. Bird ve A.J. Cowling (1994) 'Bir iletişim makineleri ağı kullanarak mantık programlamayı modelleme', Proc. Paralel ve Dağıtılmış İşleme 2. Euromicro Çalıştayı, Malaga, 26–28 Ocak 1994, s. 156-161. Öz
  24. ^ T.Balanescu, A.J. Cowling, H.Georgescu, M. Gheorghe, M. Holcombe ve C. Vertan (1999) 'İletişim kurmak X-makineleri sistemleri X-makinelerinden başka bir şey değildir', Evrensel Bilgisayar Bilimleri Dergisi, 5 (9), s. 494-507.
  25. ^ A. J. H. Simons, K.E. Bogdanov ve W.M.L. Holcombe (2001) 'Nesne makineleri kullanarak tam fonksiyonel test', Teknik Rapor CS-01-18, Bilgisayar Bilimleri Bölümü, Sheffield Üniversitesi
  26. ^ A. J. H. Simons (2006) 'Davranışsal olarak uyumlu nesne türleri için bir regresyon testi teorisi', Yazılım Testi, Doğrulama ve Güvenilirlik, 16 (3)John Wiley, s. 133-156.
  27. ^ M. Stannett ve A. J. H. Simons (2002) 'CCS-Augmented X-Machines', Teknik Rapor CS-2002-04, Bilgisayar Bilimleri Bölümü, Sheffield Üniversitesi, İngiltere.