Makineyi kaydettir - Register machine

İçinde matematiksel mantık ve teorik bilgisayar bilimi a kayıt makinesi genel bir sınıftır soyut makineler benzer bir şekilde kullanılır Turing makinesi. Tüm modeller Turing eşdeğeri.

Genel Bakış

Kayıt makinesi, adını bir veya daha fazla kullanımından alır "kayıtlar ". Turing makinesinin kullandığı bant ve kafanın aksine, model birden çok, benzersiz şekilde adreslenmiş kayıtlar, her biri tek bir pozitif tamsayı.

Literatürde bulunan en az dört alt sınıf vardır, burada en ilkelden en çok benzer olana doğru sıralanmıştır. bilgisayar:

  • Sayaç makinesi - Bir bilgisayar donanımının en ilkel ve indirgenmiş teorik modeli. Dolaylı adresleme yoktur. Talimatlar, sonlu durum makinesinde, Harvard mimarisi.
  • İşaretçi makinesi - sayaç makinesi ve RAM modellerinin bir karışımı. Her iki modelden daha az yaygın ve daha soyut. Talimatlar, Harvard mimarisi tarzında sonlu durum makinesindedir.
  • Rastgele erişimli makine (RAM) - dolaylı adresleme ve genellikle artırılmış komut setine sahip bir sayaç makinesi. Talimatlar, Harvard mimarisi tarzında sonlu durum makinesindedir.
  • Rastgele erişimli depolanan program makinesi model (RASP) - kayıtlarında aşağıdaki gibi talimatlara sahip bir RAM Evrensel Turing makinesi; bu nedenle bir örnek von Neumann mimarisi. Ancak bir bilgisayarın aksine, model idealleştirilmiş Etkili sonsuz yazmaçlarla (ve kullanılırsa, bir toplayıcı gibi etkin bir şekilde sonsuz özel yazmaçlar). Bir bilgisayarın aksine, hatta RISC[şüpheli ]komut seti sayıca çok azalmıştır.

Düzgün tanımlanmış herhangi bir kayıt makinesi modeli Turing eşdeğeri. Hesaplama hızı, modelin özelliklerine çok bağlıdır.

Pratik bilgisayar biliminde, benzer bir kavram olarak bilinen sanal makine bazen temel makine mimarilerine olan bağımlılıkları en aza indirmek için kullanılır. Bu tür makineler aynı zamanda öğretim için de kullanılır. "Kayıt makinesi" terimi bazen ders kitaplarında bir sanal makineye atıfta bulunmak için kullanılır.[1]

Resmi tanımlama

Bir kayıt makinesi şunlardan oluşur:

  1. Sınırsız sayıda etiketli, ayrık, sınırsız kayıtlar kapsam (kapasite) açısından sınırsızdır: sonlu (veya bazı modellerde sonsuz) kayıt kümesi her biri sonsuz kapsamda kabul edilir ve her biri tek bir negatif olmayan tam sayı (0, 1, 2, ...) tutar.[2] Kayıtlar kendi aritmetiğini yapabilir veya aritmetiği yapan bir veya daha fazla özel kayıt olabilir; bir "akümülatör" ve / veya "adres kaydı". Ayrıca bakınız Rastgele erişimli makine.
  2. Tally sayaçları veya işaretleri:[3] ayrık, ayırt edilemez nesneler veya modele uygun yalnızca bir türden işaretler. En çok azaltılan sayaç makinesi model, her aritmetik işlem başına, konumuna / bandına sadece bir nesne / işaret eklenir veya çıkarılır. Bazı sayaç makine modellerinde (örneğin, Melzak (1961), Minsky (1961)) ve çoğu RAM ve RASP modellerinde, "toplama" ve genellikle "çıkarma" ile tek bir işlemde birden fazla nesne / işaret eklenebilir veya kaldırılabilir; bazen "çarpma" ve / veya "bölme" ile. Bazı modellerde, nesnelerin / işaretlerin "kümelerini" tek bir eylemde kayıttan kayda taşıyan "kopyalama" (çeşitli şekillerde: "taşı", "yükle", "kaydet") gibi kontrol işlemleri vardır.
  3. (Çok) sınırlı bir talimat seti: talimatlar iki sınıfa bölünme eğilimindedir: aritmetik ve kontrol. Talimatlar, iki sınıftan "yönerge kümelerini" oluşturmak için alınır, öyle ki bir yönerge kümesi modelin Turing eşdeğeri (herhangi birini hesaplayabilmelidir kısmi özyinelemeli işlev ).
    1. Aritmetik: aritmetik komutlar tüm kayıtlarda veya sadece özel bir kayıtta (örn. akümülatör) çalışabilir. Onlar genelde aşağıdaki setlerden seçilir (ancak çok sayıda istisna vardır):
      • Sayaç makinesi: {Artış (r), Azaltma (r), Sıfırdan-sıfıra (r)}
      • Azaltılmış RAM, RASP: {Artış (r), Azaltma (r), Sıfırdan sıfıra (r), Yük anında sabit k, Ekle (r1, r2), uygun-Çıkarma (r1, r2), Akümülatörün artırılması, Akümülatörün azaltılması, Akümülatörün temizlenmesi, r yazmacının akümülatör içeriklerine ekle, uygun-yazmacının akümülatör içeriğinden çıkar,}
      • Artırılmış RAM, RASP: Tüm azaltılmış talimatlara ek olarak: {Multiply, Divide, çeşitli Boolean bit-wise (sola kaydırma, bit testi, vb.)}
    2. Kontrol:
      • Sayaç makine modelleri: isteğe bağlı {Copy (r1, r2) }
      • RAM ve RASP modelleri: çoğunda {Copy (r1, r2)} veya {r'den Akümülatörü yükle, Akümülatörü r'ye sakla, Hemen sabitle Yük Birleştiricisi}
      • Tüm modeller: en az bir koşullu "atlama" (şube, goto) bir kayıt testinin ardından ör. {Sıfır ise atlama, Sıfır değilse atlama (yani, pozitifse atla), Eşitse atlama, eşit değilse atlama}
      • Tüm modeller isteğe bağlıdır: {koşulsuz program atlama (goto)}
    3. Kayıt adresleme yöntemi:
      • Sayaç makinesi: dolaylı adresleme yok, yüksek atomize modellerde anında işlenenler mümkün
      • RAM ve RASP: dolaylı adresleme mevcuttur, anlık işlenenler tipiktir
    4. Giriş çıkış: tüm modellerde isteğe bağlı
  4. Eyalet kaydı: Özel bir Komut Kaydı "IR", sonlu ve yukarıdaki kayıtlardan ayrı, yürütülecek mevcut talimatı ve adresini talimatlar TABLOSUNDA kaydeder; bu yazmaç ve TABLOSU sonlu durum makinesinde bulunur.
    • IR, tüm modeller için sınır dışıdır. RAM ve RASP durumunda, bir kaydın "adresini" belirlemek amacıyla, model (i) doğrudan adresleme durumunda - TABLO tarafından belirtilen ve geçici olarak IR'de bulunan adres veya ( ii) dolaylı adresleme durumunda - IR'nin talimatı ile belirtilen kaydın içeriği.
    • IR değil RASP'nin (veya geleneksel) "program sayacı" (PC) bilgisayar ). PC, akümülatöre benzer başka bir kayıttır, ancak RASP'nin mevcut kayıt tabanlı talimatının numarasını tutmaya adanmıştır. Böylece bir RASP, iki "talimat / program" kayıtları - (i) IR (sonlu durum makinesinin Komut Kaydı) ve (ii) kayıtlarda bulunan program için bir PC (Program Sayacı). ("PC" ye adanmış bir kaydın yanı sıra, bir RASP başka bir kaydı "Program-Yönerge Kaydı" na tahsis edebilir ("PIR," IR "," PR ", vb. Gibi herhangi bir sayıda ad kullanır)
  5. Genellikle sıralı olarak etiketlenmiş talimatların listesi: Sonlu bir talimat listesi . Sayaç makinesi, rasgele erişimli makine (RAM) ve işaretçi makinesi durumunda, talimat deposu sonlu durum makinesinin "TABLOSU" içindedir; bu nedenle bu modeller, Harvard mimarisi. RASP durumunda, program deposu kayıtlarda bulunur; bu nedenle bu, von Neumann mimarisi. Ayrıca bkz. Rastgele erişimli makine ve Rastgele erişimli depolanan program makinesi.
    Genellikle gibi bilgisayar programları talimatlar sırayla listelenir; bir atlama başarılı olmadıkça, varsayılan sıra sayısal sırada devam eder. Bunun bir istisnası, abaküs (Lambek (1961), Minsky (1961)) sayaç makine modelleridir - her komutun en az bir "sonraki" komut tanımlayıcısı "z" vardır ve koşullu dalda iki tane vardır.
    • Ayrıca abaküs modelinin iki talimatı birleştirdiğini de gözlemleyin, JZ ve ardından DEC: ör. {INC (r, z), JZDEC (r, zdoğru, zyanlış ) }.
      Görmek McCarthy Biçimciliği hakkında daha fazlası için koşullu ifade "EĞER r = 0 İSE zdoğru BAŞKA zyanlış"(cf McCarthy (1960)).

Kayıt makinesi modelinin tarihsel gelişimi

1950'lerin başında iki eğilim ortaya çıktı: bilgisayar olarak Turing makinesi ikincisi, bilgisayar benzeri modelleri - sıralı komut dizileri ve koşullu sıçramaları olan modeller - bir Turing makinesinin gücüyle, yani sözde Turing denkliği. Bu çalışmaya duyulan ihtiyaç, iki "zor" problem bağlamında gerçekleştirildi: çözülemeyen kelime problemi Emil Post —Bu "etiket" problemi — ve çok "zor" problem Hilbert'in sorunları - 10. soru etrafındaki Diofant denklemleri. Araştırmacılar, doğası gereği daha az "mantıksal" ve daha çok "aritmetik" olan Turing-eşdeğeri modeller arıyorlardı (çapraz başvuru Melzak (1961) s. 281, Shepherdson-Sturgis (1963) s. 218).

İlk eğilim - bilgisayarları karakterize etmeye yönelik - ortaya çıkmış gibi görünüyor[4] ile Hans Hermes (1954), Rózsa Péter (1958) ve Heinz Kaphengst (1959) ile ikinci eğilim Hao Wang (1954, 1957) ve yukarıda belirtildiği gibi, Zdzislaw Alexander Melzak (1961), Joachim Lambek (1961), Marvin Minsky (1961, 1967),[5] ve John Shepherdson ve Howard E. Sturgis (1963).[5]

Son beş isim bu sırayla açıkça listelenir: Yuri Matiyasevich. Aşağıdakileri takip eder:

"Kayıt makineleri [bazı yazarlar" karşı makine "ile eşanlamlı" kayıt makinesi "kullanır], Diophantine denklemlerini oluşturmak için özellikle uygundur. Turing makineleri gibi, çok ilkel talimatlara sahiptirler ve ayrıca sayılarla ilgilenirler" (Yuri Matiyasevich ( 1993), Hilbert'in Onuncu Problemi, kitabın 5. Bölümüne yorum, şurada: http://logic.pdmi.ras.ru/yumat/H10Pbook/commch_5htm. )

Görünüşe göre Lambek, Melzak, Minsky ve Shepherdson ve Sturgis aynı anda aynı fikri bağımsız olarak bekliyorlardı. Aşağıdaki Öncelikle İlgili Nota bakın.

Tarih, Wang'ın modeliyle başlar.

(1954, 1957) Wang'ın modeli: Post – Turing makinesi

Wang'ın çalışması takip etti Emil Post 'ın (1936) makalesi ve Wang'ı kendi tanımına götürdü. Wang B makinesi - iki sembollü Post – Turing makinesi sadece dört atom talimatlı hesaplama modeli:

{SOL, SAĞ, YAZDIR, JUMP_if_marked_to_instruction_z}

Bu dördü için hem Wang (1954, 1957) hem de C.Y. Lee (1961), Gönderi kümesinden {ERASE} başka bir talimat ekledi ve ardından bir Gönderinin koşulsuz sıçraması {JUMP_to_ talimat_z} (veya işleri kolaylaştırmak için koşullu atlama JUMP_IF_blank_to_instruction_z veya her ikisi). Lee bunu bir "W-makinesi" modeli olarak adlandırdı :

{LEFT, RIGHT, PRINT, ERASE, JUMP_if_marked, [belki JUMP veya JUMP_IF_blank]}

Wang, modelinin Turing makinelerinin teorisi ile bilgisayarın pratik dünyası arasında bir "yakınlaşma" (s. 63) olmasını umduğunu ifade etti.

Wang'ın çalışması oldukça etkiliydi. Minsky (1961) ve (1967), Melzak (1961), Shepherdson ve Sturgis (1963) tarafından referans verildiğini görüyoruz. Gerçekte, Shepherdson ve Sturgis (1963) şunu belirtmektedir:

"... Wang tarafından önerilen hesaplamanın pratik ve teorik yönleri arasındaki 'yakınlaşmayı' bir adım daha ileriye taşımaya çalıştık" (s. 218)

Martin Davis sonunda bu modeli (2 sembollü) Turing Sonrası makineye dönüştürdü.

Wang / Post – Turing modeliyle ilgili zorluklar:

Bir sorun olması dışında: Wang modeli (7 talimatlı Turing Sonrası makinenin altı talimatı) hala tek bantlı Turing benzeri bir cihazdı, ne kadar güzel olursa olsun sıralı program talimat akışı olabilir. Hem Melzak (1961) hem de Shepherdson ve Sturgis (1963) bunu gözlemledi (bazı kanıtlar ve araştırmalar bağlamında):

"... bir Turing makinesinin belirli bir opaklığı vardır ... bir Turing makinesi (varsayımsal) işlemde yavaştır ve genellikle karmaşıktır. Bu, onu tasarlamayı oldukça zorlaştırır ve zaman veya depolama gibi konuları araştırmayı daha da zorlaştırır. optimizasyon veya iki algoritmanın verimliliği arasında bir karşılaştırma. (Melzak (1961) s. 281)
"... zor olmasa da ... kanıtlar iki nedenden dolayı karmaşık ve sıkıcıdır: (1) Bir Turing makinesinin yalnızca kafası vardır, bu nedenle hesaplamayı tek bir basamakta çok küçük işlem adımlarına bölmek zorundadır . (2) Üzerinde çalışmak istediği numarayı bulmak ve onu diğer numaralardan ayırmak için kişinin biraz zahmete girmesi gereken tek bir kaseti vardır "(Shepherdson ve Sturgis (1963) s. 218).

Nitekim, örnek olarak Turing makinesi örnekleri, Post-Turing makinesi ve kısmi işlev göster, iş "karmaşık" olabilir.

Minsky, Melzak-Lambek ve Shepherdson-Sturgis modelleri "kaseti kesti"

Öyleyse neden her biri sonsuz uzunlukta (herhangi bir boyutta tamsayı barındırmak için) ancak sol uçlu olacak şekilde 'bandı kesip' ve bu üç kaseti "Post – Turing (yani Wang benzeri) bantlar" olarak adlandırmıyorsunuz? Ayrı kafalar sola (azaltma için) ve sağa (artış için) hareket edecektir. Bir anlamda kafalar, birleştirilmiş işaretlerin "yığının tepelerini" gösterir. Veya Minsky (1961) ve Hopcroft ve Ullman'da (1979, s. 171ff), bant sol uçtaki bir işaret dışında her zaman boştur - hiçbir zaman bir kafa basmaz veya silmez.

Sıfır için test ve atlama oluşması için talimatlarımızı yazmaya dikkat etmeliyiz. önce düşürürüz, aksi takdirde makinemiz "sondan düşer" veya "sona çarpar" - bir örneğimiz olur kısmi işlev. Bir eksiltmeden önce makinemiz her zaman şu soruyu sormalıdır: "Bant / sayaç boş mu? Öyleyse azaltamam, yoksa yapabilirim."

(İm-) uygun çıkarma örneği için bkz. Kısmi işlev.

Minsky (1961) ve Shepherdson-Sturgis (1963) sadece birkaç bandın - bir kadar az - makinenin Turing eşdeğeri olmasına izin verdiğini kanıtladı EĞER kasetteki veriler bir Gödel numarası (veya başka bir benzersiz şekilde kodlanabilir-kodu çözülebilir sayı); hesaplama ilerledikçe bu sayı gelişecektir. Gödel numarasını kodlayan tek bantlı versiyonda, sayaç makinesi (i) Gödel numarasını bir sabitle ("2" veya "3" sayıları) çarpabilmeli ve (ii) bir sabitle ("2" sayıları) bölebilmelidir. veya "3") ve kalan sıfırsa atlayın. Minsky (1967), bu tuhaf komut setine duyulan ihtiyacın, iki bant mevcutsa {INC (r), JZDEC (r, z)} ve kolaylık talimatları {CLR (r), J (r)} için gevşetilebileceğini göstermektedir. . Bununla birlikte, basit bir Gödelizasyon hala gereklidir. Benzer bir sonuç, RASP modeli ile ilgili olarak Elgot-Robinson'da (1964) görülmektedir.

(1961) Melzak'ın modeli farklı: çakıl yığınları deliklere girip çıkıyor

Melzak'ın (1961) modeli önemli ölçüde farklıdır. Kendi modelini aldı, bantları dikey olarak çevirdi, "çakıl sayacı" ile doldurulmaları için "yerdeki delikler" adını verdi. Minsky'nin "artması" ve "azalması" nın aksine Melzak, herhangi bir çakıl sayısının uygun şekilde çıkarılmasına ve herhangi bir çakıl taşının "eklenmesine" izin verdi.

Modeli için dolaylı adreslemeyi tanımlar (s. 288) ve kullanımına ilişkin iki örnek sunar (s. 89); modelinin "kanıtı" (s. 290-292) Turing eşdeğeri O kadar kabataslaktır ki okuyucu, dolaylı adreslemenin ispat için bir gereklilik olup olmadığını anlayamaz.

Melzak'ın mirası, Lambek'in sadeleştirmesi ve 1973'te Cook ve Reckhow'da anımsatıcı kurallarının yeniden ortaya çıkmasıdır.

Lambek (1961), Melzak'ın modelini Minsky (1961) modeline atomize eder: INC ve DEC-with-test

Lambek (1961), Melzak'ın üçlü modelini aldı ve onu iki tekli talimata (X +, X- mümkünse zıpla) atomize etti - Minsky'nin (1961) ortaya çıkardığı ikisinin aynısı.

Bununla birlikte, Minsky (1961) modeli gibi, Lambek modeli de talimatlarını varsayılan sıralı bir şekilde yürütür - hem X + hem de X- sonraki komutun tanımlayıcısını taşır ve X-, sıfır ise atlama talimatını da taşır. -test başarılı.

Elgot-Robinson (1964) ve dolaylı hitap etmeden RASP sorunu

Bir RASP veya rastgele erişimli depolanmış program makinesi "yazmaçlarına" yerleştirilmiş "talimat programı" ile bir sayaç makinesi olarak başlar. Sonlu durum makinesinin "Komut Kaydı" na benzer, ancak ondan bağımsız olarak, kayıtlardan en az biri ("program sayacı" (PC) olarak adlandırılır) ve bir veya daha fazla "geçici" kayıt, kaydını tutar ve üzerinde çalışır, mevcut talimatın numarası. Sonlu durum makinesinin talimatlar TABLOSU (i) akımın getirilmesinden sorumludur. program uygun kayıttan talimat, (ii) ayrıştırma program talimat, (iii) tarafından belirtilen işlenenleri getirme program talimat ve (iv) program talimat.

Bir sorun olması dışında: sayaç makinesi bu bilgisayar benzeri şasi von Neumann makine Turing eşdeğeri olmayacaktır. Hesaplanabilen her şeyi hesaplayamaz. Özünde model, (çok-) boyutuyla sınırlıdır. sonlu makinenin talimatlarını belirtin. Sayaç makinesi tabanlı RASP herhangi bir ilkel özyinelemeli işlev (ör. çarpma) ama hepsi değil özyinelemeli işlevler (ör. Ackermann işlevi ).

Elgot – Robinson, kendi RASP modelinin program komutlarını "kendi kendine değiştirmesine" izin verme olasılığını araştırıyor. Fikir eski bir fikirdi, Burks-Goldstine-von Neumann (1946-7) tarafından önerildi ve bazen "hesaplanan yol" olarak adlandırıldı. Melzak (1961) özellikle "hesaplanmış goto" dan adıyla bahseder ancak bunun yerine modeline dolaylı adresleme sağlar.

Hesaplanmış goto: Bir RASP program koşullu veya koşulsuz bir atlamada "goto adresini" değiştiren talimatların program talimat.

Ancak bu, sorunu çözmez (biri Gödel numaraları ). Gerekli olan, üst sınırının "ötesinde / üstünde" yatan bir program talimatının adresini almak için bir yöntemdir. sonlu makinenin talimat kaydını ve TABLE'yi belirtin.

Örnek: Yalnızca dört sınırsız kayıt ile donatılmış bir sayaç makinesi, örn. herhangi iki sayıyı (m, n) çarparak p'yi elde edin - ve böylece ilkel bir özyinelemeli fonksiyon olun - m ve n sayıları ne kadar büyük olursa olsun; dahası, bunu yapmak için 20'den az talimat gereklidir! Örneğin. {1: CLR (p), 2: JZ (m, bitti), 3 dış_döngü: JZ (n, bitti), 4: CPY (m, sıcaklık), 5: iç_döngü: JZ (m, dış_ döngü), 6: Aralık (m), 7: INC (p), 8: J (iç_ döngü), 9: dış_ döngü: DEC (n), 10 J (dış_ döngü), HALT}
Bununla birlikte, yalnızca 4 yazmaçla, bu makine, çarpma algoritmasını bir olarak yürütebilen bir RASP oluşturacak kadar büyük değildir. program. Sonlu durum makinemizi ne kadar büyük yaparsak yapalım her zaman bir program (parametreleri dahil) daha büyüktür. Yani tanım gereği, Gödel numaraları gibi sınırsız kodlama hilelerini kullanmayan sınırlı program makinesi evrensel.

Minsky (1967), {CLR (r), INC (r) ve RPT ("a" çarpı talimatlarla donatılmış bir sayaç makinesi ("program bilgisayar modelleri" olarak adlandırır) araştırmasında konuya ipucu verir. n)}. Bize sorunu nasıl çözeceğimizi söylemiyor ama şunu gözlemliyor:

"... program bilgisayarı, kaç RPT'nin yapılması gerektiğini takip etmek için bir yola sahip olmalıdır ve bu, bilgisayarın sınırlı bölümünde izin verilen herhangi bir depolama miktarını tüketebilir. RPT işlemleri, kendilerine ait sonsuz yazmaçlar gerektirir. , genel olarak ve düşündüğümüz diğer işlem türlerinden farklı muamele görmeleri gerekir. " (s. 214)

Ancak Elgot ve Robinson sorunu çözüyor: P'lerini artırıyorlar0 Dizine alınmış bir talimat setine sahip RASP - biraz daha karmaşık (ancak daha esnek) bir dolaylı adresleme biçimi. P '0 model, "temel" yazmacın içeriğini (talimatta belirtilen) talimatta açıkça belirtilen "indeks" e ekleyerek (veya tersi, "temel" ve "indeks" değiştirerek) kayıtları ele alır. Böylece, indeksleme P '0 talimatların indekslemeyen P'den bir fazla parametresi var0 Talimatlar:

Örnek: INC (rtemel, dizin); geçerli adres [rtemel] + dizin, burada doğal sayı "endeksi" sonlu durum makine komutunun kendisinden türetilir.

Hartmanis (1971)

1971'de Hartmanis, indekslemeyi basitleştirdi dolaylı RASP modelinde kullanılmak üzere.

Dolaylı adresleme: Bir işaretçi kaydı, sonlu durum makinesine talimat için gerekli hedef yazmacının adresini sağlar. Başka bir şekilde söyledi: içerik işaretçi kaydının adres talimat tarafından kullanılacak "hedef" kayıt. İşaretçi kaydı sınırsızsa, RAM ve kasası üzerine inşa edilmiş uygun bir RASP, Turing'e eşdeğer olacaktır. Hedef kayıt, talimatta belirtildiği gibi bir kaynak veya hedef kayıt olarak hizmet edebilir.

Sonlu durum makinesinin bu hedef yazmacının adresini açıkça belirtmesi gerekmediğini unutmayın. Sadece makinenin geri kalanına diyor ki: Bana işaretçi yazmacımın gösterdiği yazmaç içeriğini getir ve sonra onunla xyz yap. Bu işaretçi yazmacının (örneğin "N" veya "72" veya "PC", vb.) Talimatıyla adıyla açıkça belirtmesi gerekir, ancak işaretçi yazmacının gerçekte hangi sayıyı içerdiğini bilmek zorunda değildir ( belki 279,431).

Cook ve Reckhow (1973) RAM'i tanımlar

Cook ve Reckhow (1973), Hartmanis'e (1971) atıfta bulunur ve modelini, rastgele erişimli makine (RAM — yani, dolaylı ve yönlendirmeli bir makine Harvard mimarisi ). Bir bakıma Melzak'a (1961) geri döndük ama Melzak'ınkinden çok daha basit bir modelle.

Öncelik

Minsky şurada çalışıyordu: MIT Lincoln Laboratuvarı ve çalışmalarını orada yayınladı; makalesi yayınlanmak üzere alındı. Matematik Yıllıkları 15 Ağustos 1960'ta, ancak Kasım 1961'e kadar yayınlanmadı. Makbuz, Melzak ve Lambek'in çalışmalarının alınıp yayınlanmasından tam bir yıl önce gerçekleşirken (sırasıyla 15 Mayıs ve 15 Haziran 1961'de alındı ​​ve Eylül 1961'de yan yana yayınlandı) . (İ) Her ikisinin de Kanadalı olduğu ve Kanada Matematik Bülteni'nde yayınlandığı, (ii) henüz hakemli bir dergide yayınlanmadığı için Minsky'nin çalışmasına atıfta bulunmayacaktı, ancak (iii) Melzak, Wang ve Lambek referanslarına atıfta bulunuyor Melzak, çalışmalarının aynı anda ve bağımsız olarak gerçekleştiğini varsaymaya yöneltir.

Shepherdson ve Sturgis'e neredeyse aynı şey oldu. Bildirileri Aralık 1961'de, Melzak ve Lambek'in çalışmalarının alınmasından sadece birkaç ay sonra alındı. Yine, Minsky'nin çalışmalarını gözden geçirme konusunda çok az (en fazla 1 ay) faydaları oldu veya hiç yararı olmadı. Dipnotlarda Ershov, Kaphengst ve Peter'ın kağıtlarının "yakın zamanda ortaya çıktığını" gözlemlemeye özen gösterdiler (s. 219). Bunlar çok daha önce yayınlandı, ancak Alman dergilerinde Almanca olarak yayınlandı, bu nedenle erişilebilirlik konuları kendilerini gösteriyor.

Shepherdson ve Sturgis'in son makalesi 1963'e kadar hakemli bir dergide yer almadı. Ek A'da Kaphengst (1959), Ershov (1958), Peter'ın (1958) 'sistemleri' hakkında adil ve dürüst bir şekilde belirttikleri gibi hepsi daha sonra elde edilen sonuçlara çok benziyor ve aşağıdakilerden bir dizi ile ayırt edilemez:

0 yani 0 -> n üretir
bir sayı artırın, yani n + 1 -> n
"yani, doğal sayıları üreten işlemleri gerçekleştirmek" (s. 246)
bir sayı kopyala, yani n -> m
iki sayıyı karşılaştırarak veya 0'a kadar azaltarak "bir hesaplamanın gidişatını değiştirmek"

Nitekim Shepherson ve Sturgis şu sonuca varıyor:

"Çeşitli minimal sistemler çok benzerdir" (s. 246)

Sırasına göre yayınlama tarih Kaphengst (1959), Ershov (1958), Peter (1958) eserleri ilk idi.

Ayrıca bakınız

Kaynakça

Arka plan metinleri: Aşağıdaki kaynak makalelerin bibliyografyası, arka plan olarak kullanılacak bir dizi metin içermektedir. 1950'lerde ve 1960'larda soyut makinelerle ilgili makalelerin telaşına yol açan matematik, van Heijenoort'ta (1967) bulunabilir - Frege'den (1879) Gödel'e (1931) kadar 50 yılı kapsayan orijinal kağıtların bir derlemesi. Davis (ed.) Kararsız (1965), meşaleyi Gödel'den başlayarak ileriye taşır (1931)[5] Gödel'in (1964) postscriptum (s. 71) aracılığıyla; orijinal kağıtları Alan Turing (1936-7) ve Emil Post (1936) dahildir Kararsız. Church, Rosser ve Kleene'nin matematiği, orijinal makalelerin yeniden basımı olarak görünür. Kararsız makinelerin arkasındaki matematiği daha derinlemesine anlamak isteyen herkes için zorunlu bir metin olan Kleene'de (1952) daha ileri götürülmüştür. Hem Kleene (1952) hem de Davis (1958) bir dizi makale tarafından referans alınmıştır.

Sayaç makinesinin iyi bir muamelesi için bkz. Minsky (1967) Bölüm 11 "Dijital Bilgisayarlara Benzer Modeller" - o, sayaç makinesine bir "program bilgisayarı" diyor. Van Emde Boas'da (1990) yeni bir genel bakış bulunabilir. Minsky (1961) / Lambek (1961) modelinin yeni bir incelemesi, Boolos-Burgess-Jeffrey (2002); Turing makinelerinin ve kısmi özyinelemeli fonksiyonların denkliğini göstermek için Lambek'in "abaküs modelini" yeniden canlandırıyorlar ve hem soyut makine modellerine (karşı ve Turing-) hem de özyineleme teorisinin matematiğine lisans düzeyinde bir giriş sağlıyorlar. Boolos-Burgess'in (1970) ilk baskısından itibaren bu model hemen hemen aynı muameleyle ortaya çıktı.

Kağıtlar: Makaleler Wang (1957) ve Turing makinesinin dramatik basitleştirilmesiyle başlıyor. Turing (1936), Kleene (1952), Davis (1958) ve özellikle Post (1936), Wang (1957); Buna karşılık Wang, Turing kasetlerini bağımsız olarak "sayaçlara" indirgedikleri için Melzak (1961), Minsky (1961) ve Shepherdson-Sturgis (1961-3) tarafından referans alınmıştır. Melzak (1961), çakıl içi tezgah makinesi modelini dolaylı olarak sunar ancak tedaviyi daha ileri götürmez. Elgot-Robinson'un (1964) çalışması, RASP'yi - bilgisayar benzeri rastgele erişimli depolanmış program makineleri —Ve sınırlı alanların başarısızlığını araştıran ilk kişi gibi görünüyor sayaç makinesi mu-özyinelemeli fonksiyonları hesaplamak için. Bu başarısızlık - acımasız kullanım dışında Gödel numaraları Minsky (1961) tarzında) - RASP modeli için "indekslenmiş" talimatların (yani dolaylı adresleme) tanımlanmasına yol açar. Elgot-Robinson (1964) ve daha fazlası, Hartmanis (1971) kendi kendini değiştiren programlarla RASP'leri araştırır. Hartmanis (1971), Cook'un (1970) ders notlarına atıfta bulunarak dolaylı bir talimat seti belirtir. Hesaplama karmaşıklığının araştırılmasında kullanılmak üzere Cook ve yüksek lisans öğrencisi Reckhow (1973), bir RAM tanımını sağlar (onların modeli ve anımsatıcı kuralları Melzak'ınkine benzer, ancak makalede ona referans vermez). İşaret makineleri, Knuth (1968, 1973) ve bağımsız olarak Schönhage (1980) 'nin bir yan ürünüdür.

Makalelerin çoğu, lisans seviyesinin ötesinde matematik içerir - özellikle ilkel özyinelemeli fonksiyonlar ve yinelemeli işlevler Kleene'de (1952) zarif bir şekilde ve daha az derinlemesine sunulmuş, ancak yine de Boolos-Burgess-Jeffrey'de (2002) yararlıdır.

Dört yıldız haricindeki tüm metinler ve belgeler tanık oldu. Bu dördü Almanca yazılmıştır ve Shepherdson-Sturgis (1963) ve Elgot-Robinson (1964) 'te referans olarak yer almaktadır; Shepherdson-Sturgis (1963), sonuçlarının kısa bir tartışmasını Shepherdson-Sturgis'in Ek A'da sunmaktadır.En az bir makalenin terminolojisi (Kaphengst (1959) Burke-Goldstine-von Neumann'a (1946-7) geri dönüyor gibi görünmektedir. bilgisayar mimarisinin analizi.

YazarYılReferansTuring makinesiSayaç makinesiVeri deposuTÖRPÜİşaretçi makinesiDolaylı adreslemeKendi kendini değiştiren program
Goldstine ve von Neumann1947XX
Kleene1952X
* Hermes1954, 5?
Wang1957XXipuçlarıipuçları
*Peter1958?
Davis1958XX
* Erşov1959?
* Kaphengst1959?X
Melzak1961XXipuçları
Lambek1961X
Minsky1961X
Shepherdson ve Sturgis1963Xipuçları
Elgot ve Robinson1964XXX
Davis- Kararsız1965XX
van Heijenoort1967X
Minsky1967Xipuçlarıipuçları
Knuth1968, 73XXXX
Hartmanis1971XX
Cook & Reckhow1973XXXX
Schonhage1980XXX
van Emde Boas1990XXXXXX
Boolos ve Burgess; Boolos, Burgess ve Jeffrey1970–2002XXX

Referanslar

Notlar

  1. ^ Harold Abelson ve Gerald Jay Sussman Julie Sussman ile Bilgisayar Programlarının Yapısı ve Yorumlanması, MIT Basın, Cambridge, Massachusetts, 2. Baskı, 1996
  2. ^ ".. 1, 2, 3, ... numaralandırılmış, her biri herhangi bir 0, 1, 2, ... doğal sayıyı depolayabilen, sayılabilen bir yazmaç dizisi. Bununla birlikte, her bir özel program, yalnızca sınırlı sayıda bu yazmaçlar, diğerleri hesaplama boyunca boş kalır (yani 0 içerir). " Shepherdson ve Sturgis 1961: 219. Lambek 1961: 295 şunu önerdi: "sayısız sonsuz bir dizi yerler (delikler, teller vb.).
  3. ^ Örneğin, Lambek 1961: 295, çakıl, boncuk vb.
  4. ^ Shepherdson ve Sturgis 1963: 219'daki "Not" a bakın. Yazarlar Ek A'da Kaphengst'in, Ershov'un ve Péter'in talimat setlerinin bir listesini ve tartışmalarını izlerler (cf s. 245ff).
  5. ^ a b c Yeni Bir Bilim Türü [1]

Kaynaklar

  • George Boolos, John P. Burgess, Richard Jeffrey (2002), Hesaplanabilirlik ve Mantık: Dördüncü Baskı, Cambridge University Press, Cambridge, İngiltere. Orijinal Boolos-Jeffrey metni, Burgess tarafından kapsamlı bir şekilde revize edildi: bir giriş ders kitabından daha gelişmiş. "Abaküs makinesi" modeli, Bölüm 5'te kapsamlı bir şekilde geliştirilmiştir. Abaküs Hesaplanabilirliği; kapsamlı bir şekilde işlenen ve karşılaştırılan üç modelden biridir - Turing makinesi (hala Boolos'un orijinal 4-tuple formunda) ve diğer ikisini tekrar eder.
  • Arthur Burks, Herman Goldstine, John von Neumann (1946), "Bir elektronik hesaplama cihazının mantıksal tasarımının ön tartışması", s. 92ff'de yeniden basılmıştır. Gordon Bell ve Allen Newell (1971), Bilgisayar Yapıları: Okumalar ve Örnekler, McGraw-Hill Kitap Şirketi, New York. ISBN  0-07-004357-4 .
  • Stephen A. Cook ve Robert A. Reckhow (1972), Zaman sınırlı rasgele erişimli makineler, Journal of Computer Systems Science 7 (1973), 354-375.
  • Martin Davis (1958), Hesaplanabilirlik ve Çözümlenemezlik, McGraw-Hill Book Company, Inc. New York.
  • Calvin Elgot ve Abraham Robinson (1964), "Rasgele Erişimli Depolanan Program Makineleri, Programlama Dillerine Bir Yaklaşım", Bilgisayar Makineleri Derneği Dergisi, Cilt. 11, No. 4 (Ekim 1964), s. 365–399.
  • J. Hartmanis (1971), "Rasgele Erişimli Depolanan Program Makinelerinin Hesaplamalı Karmaşıklığı" Matematiksel Sistemler Teorisi 5, 3 (1971) s. 232–245.
  • John Hopcroft, Jeffrey Ullman (1979). Otomata Teorisine Giriş, Diller ve Hesaplama, 1. baskı, Okuma Kütlesi: Addison-Wesley. ISBN  0-201-02988-X. "Dillerin" makine-yorumu, NP-Tamlık, vb. Konularına odaklanan zor bir kitap.
  • Stephen Kleene (1952), Metamatatiğe Giriş, North-Holland Publishing Company, Amsterdam, Hollanda. ISBN  0-7204-2103-9.
  • Donald Knuth (1968), Bilgisayar Programlama Sanatı, İkinci Baskı 1973, Addison-Wesley, Reading, Massachusetts. "Bağlantılı yapılarla ilgilenen yeni bir tür soyut makine veya" otomat "ı tanımladığı 462-463. Sayfalara bakın.
  • Joachim Lambek (1961, 15 Haziran 1961'de alındı), "Sonsuz Abaküs Nasıl Programlanır", Matematiksel Bülten, cilt. 4, hayır. 3. Eylül 1961, sayfalar 295-302. Ek II'de Lambek, "programın" resmi bir tanımını önerir. Melzak (1961) ve Kleene (1952) 'ye atıfta bulunur. Metamatatiğe Giriş.
  • Z. A. Melzak (1961, 15 Mayıs 1961'de alındı), "Hesaplanabilirlik ve Hesaplamaya Gayri Resmi Aritmetik Bir Yaklaşım", Kanada Matematik Bülteni, cilt. 4, hayır. 3. Eylül 1961 sayfalar 279-293. Melzak hiçbir referans sunmuyor, ancak "Bell telefon laboratuarlarından Dr. R. Hamming, D. McIlroy ve V. Vyssots ile Oxford Üniversitesi'nden Dr. H. Wang ile görüşmelerin faydasını" kabul ediyor.
  • Minsky, Marvin (1961). "Post'un 'Etiket' Probleminin Özyinelemeli Çözümlenemezliği ve Turing Makineleri Teorisindeki Diğer Konular". Matematik Yıllıkları. 74 (3): 437–455. doi:10.2307/1970290. JSTOR  1970290.
  • Minsky, Marvin (1967). Hesaplama: Sonlu ve Sonsuz Makineler (1. baskı). Englewood Kayalıkları, NJ: Prentice-Hall, Inc. Özellikle 11. bölüme bakın: Dijital Bilgisayarlara Benzer Modeller ve bölüm 14: Hesaplanabilirlik İçin Çok Basit Temeller. Önceki bölümde "Program makineleri" ni tanımlıyor ve sonraki bölümde "İki Kayıtlı Evrensel Program makineleri" ve "... tek kayıtlı" vb. Konuları tartışıyor.
  • John C. Shepherdson ve H. E. Sturgis (1961), Aralık 1961 "Yinelemeli Fonksiyonların Hesaplanabilirliği" aldı, Bilgisayar Makineleri Derneği Dergisi (JACM) 10: 217-255, 1963. Son derece değerli bir referans kağıdı. Yazarlar Ek A'da "4.1'de Kullanılan Talimatların Minimumluğu: Benzer Sistemlerle Karşılaştırma" konusuna atıfta bulunarak 4 kişiden alıntı yapıyorlar.
  • Kaphengst, Heinz, "Eine Abstrakte programmgesteuerte Rechenmaschine", Zeitschrift fur mathematische Logik und Grundlagen der Mathematik 5 (1959), 366-379.
  • Ershov, A. P. "Operatör algoritmaları hakkında", (Rusça) Dok. Akad. Nauk 122 (1958), 967-970. İngilizce çeviri, Otomat. Ekspres 1 (1959), 20-23.
  • Péter, Rózsa "Graphschemata und rekursive Funktionen", Dialectica 12 (1958), 373.
  • Hermes, Hans "Die Universalität programmgesteuerter Rechenmaschinen". Math.-Phys. Semesterberichte (Göttingen) 4 (1954), 42-53.
  • Arnold Schönhage (1980), Depolama Modifikasyon Makinaları, Endüstriyel ve Uygulamalı Matematik Derneği, SIAM J. Comput. Cilt 9, No. 3, Ağustos 1980. Burada Schōnhage, SMM'sinin "halefi RAM" (Random Access Machine) vb. İle eşdeğerliğini gösterir. Depolama Modifikasyon Makinaları, içinde Teorik Bilgisayar Bilimleri (1979), s. 36–37
  • Peter van Emde Boas, "Makine Modelleri ve Simülasyonları" s. 3–66, içinde: Jan van Leeuwen, ed. Teorik Bilgisayar Bilimi El Kitabı. Cilt A: Algoritmalar ve Karmaşıklık, The MIT PRESS / Elsevier, 1990. ISBN  0-444-88071-2 (hacim A). QA 76.H279 1990. van Emde Boas'ın SMM'lere yönelik tedavisi 32-35. Sayfalarda yer almaktadır. Bu muamele, Schōnhage 1980'i açıklığa kavuşturuyor - Schōnhage tedavisini yakından takip ediyor ama biraz genişletiyor. Etkili anlayış için her iki referansa da ihtiyaç duyulabilir.
  • Hao Wang (1957), "Turing'in Hesaplama Makineleri Teorisinin Bir Varyantı", JACM (Bilgisayar Makineleri Derneği Dergisi) 4; 63-92. Dernek 23–25 Haziran 1954 toplantısında sunulmuştur.

Dış bağlantılar