Herhangi bir program mekanik olarak uygulanabilir mi?


13

Microsoft Word'ün tek amaçlı (Turing tamamlanmamış) mekanik uygulamasını oluşturmak mümkün müdür? Yineleyiciler, birinci dereceden fonksiyonlar, programlama tekniklerinin tüm gamı ​​gibi şeyleri uygulamak mümkün müdür? Dişliler ve diğer mekanik parçalar veri yapılarını veya hatta program nesnelerini temsil edebilir mi? Belirli bir noktada bu, genel amaçlı bir Turing eşdeğeri makine yapılmasını gerektiriyor mu, yoksa her fonksiyon, değişken vb., Volanlar ve / veya dişliler, cırcırlar şeklinde kendi benzersiz mekanik yapısına sahip olabilir mi? Özetle, standart bir bilgisayarda verilen herhangi bir yazılım parçasının mekanik bir tasarıma derlenip derlenemeyeceğini merak ediyorum.


Bence, Microsoft Word çalıştıran bir şey bir Turing Machine üzerinde çalıştırmak için bile gerek yok, çünkü Word'deki tüm prosedürler (muhtemelen) sonlandırılması (bir hata ofc hariç), ana olay döngü dışında bilinmelidir.
Realz Slaw


1
Bu mümkünse - mümkün görünüyorsa - derleyici görevi gören ve kaynak kodundan diğer makineler için taslaklar oluşturan, tamamlanmamış bir makine oluşturmak mümkün olmalıdır. Kendileri tamamlanmış olabilecek veya olmayabilecek makineler.
Nick Johnson

@Realz Lahana Salatası: G / Ç, VBA makroları veya uzantıları eklerseniz değil.Örneğin, Word'e sonsuz bir Word belgesi beslediyseniz şikayet edeceğinden şüpheliyim. Muhtemelen bir sınıra ulaşacak olan temel işletim sistemi.
reinierpost

@reinierpost ancak her rutinin tamamlanması gerekmez; ya makul bir şekilde feshedecekler ya da muhtemelen olmayacaklardı. Eğer sonsuz bir belge ile beslerseniz, muhtemelen sona ermeyecektir. Demek istediğim biz bu programlara sınırlandırabilirsiniz çünkü bir Turing tam bir dil kullanmak zorunda değilsiniz yapmak çoğu programları oldu biz olmayan sonsuz veri verilen sona erer kanıtlayabilirim, ve verilen sonsuz veri eğer sonlandırmak değil; ve bunu yapabilirseniz, Durdurma Sorunu ile ilgili bir sorun yoktur. TLDR; rutinlerinizin sona erdiğini kanıtlayamıyorsanız, korkunç bir programcısınız.
Realz Lahana Salatası

Yanıtlar:


23

Evet öyle. Bunu nasıl yapacağınız aşağıda açıklanmıştır:

Temel olarak, devre yapmak istediğiniz herhangi bir programı derleyebilirsiniz. Örneğin, programların devrelerde nasıl derleneceğini gösteren Dan Ghica ve ortaklarının Sentez Geometrisi üzerindeki çalışmalarına bakın.

  1. Dan R. Ghica. Sentez Geometrisi: VLSI tasarımına yapısal bir yaklaşım
  2. Dan R. Ghica, Alex Smith. Sentez Geometrisi II: Oyunlardan Gecikmeye Duyarsız Devrelere
  3. Dan R. Ghica, Alex Smith. Sentez Geometrisi III: Tür çıkarımı yoluyla kaynak yönetimi.
  4. Dan R. Ghica, Alex Smith, Satnam Singh. Sentez geometrisi IV: Afin özyinelemenin statik donanıma derlenmesi.

Devreler daha sonra mühendislikte tekrar tekrar ortaya çıkıyor. John Baez, bu Haftanın Bulguları 288-296'da büyük bir kavram analojileri tablosu sunuyor ve çok sayıda bağlantı kuruyor. Bu yüzden Dan'ın derleyicisinin oluşturduğu devre şemaları, gerçekten isterseniz mekanik veya hidrolik sistemler olarak somutlaştırılabilir!

╔══════════════════════════════════════════════════════════════╗
║                 displacement  flow      momentum     effort  ║
╠══════════════════════════════════════════════════════════════╣
║ Mechanics      position      velocity  momentum     force    ║
║ (translation)                                                ║
║                                                              ║
║ Mechanics      angle         angular   angular      torque   ║
║ (rotation)                   velocity  momentum              ║
║                                                              ║
║ Electronics    charge        current   flux         voltage  ║
║                                        linkage               ║
║                                                              ║
║ Hydraulics     volume        flow      pressure     pressure ║
║                                        momentum              ║
╚══════════════════════════════════════════════════════════════╝
  1. http://math.ucr.edu/home/baez/week288.html
  2. http://math.ucr.edu/home/baez/week289.html
  3. http://math.ucr.edu/home/baez/week290.html
  4. http://math.ucr.edu/home/baez/week291.html
  5. http://math.ucr.edu/home/baez/week294.html
  6. http://math.ucr.edu/home/baez/week296.html

12
Sonuç: yazılım patentlerinin bir anlamı yoktur.
András Salamon

1
Nasıl soracağımı bildiğim bir soru için harika cevap. Eklenen grafik için teşekkürler!
Alex Nye

5

Bunun pratik bir örneği Boston Bilim Müzesi'ndeki Tinker Toys'dan (orijinal olarak bir MIT öğrencisi ekibi tarafından yapılmıştır) yapılan Tic Tac Toe bilgisayarıdır. Tabii ki, bu Microsoft Word'den çok daha basit.

İşte Scientific American'dan bunu anlatan 1989 tarihli bir makale.

Ayrıca, legolardan yapılmış Turing makineleri de vardı (bu, elektrik için --- aslında bir bilgisayar kullandığı için hareket için biraz hile yapıyor, ancak tasarımın bundan kaçınmak için değiştirilebileceğini düşünüyorum) hurda metal ve daha fazlası.


Makaleyi ve lego makinesini beğendim, teşekkürler.
Alex Nye

1

Özellikle donanımda bir editör oluşturma örneğinizi ele almaya çalışırken, hem işletim sistemini hem de editörü tamamen donanımda uygulayan erken bir deneysel bilgisayar vardı. Daha sonra editör, gerekli donanımı önemli ölçüde azaltan yazılımla değiştirildi. Bu, bilgisayar mimarisi ve tarihi üzerine bir kitapta açıklanmıştır. Ne yazık ki adı unuttum ve orijinal kaynağı izlemek için anahtar kelimeleri bulamadım.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.