क्या किसी कार्यक्रम को यंत्रवत लागू किया जा सकता है?


13

क्या Microsoft Word का एकल उद्देश्य (नॉन ट्यूरिंग पूर्ण) यांत्रिक कार्यान्वयन संभव है? क्या पुनरावृत्तियों, प्रथम-क्रम के कार्यों, प्रोग्रामिंग तकनीकों के संपूर्ण सरगम ​​के रूप में ऐसी चीजों को लागू करना संभव है? क्या गियर और अन्य यांत्रिक भाग डेटा संरचनाओं या यहां तक ​​कि प्रोग्राम ऑब्जेक्ट का प्रतिनिधित्व कर सकते हैं? एक निश्चित बिंदु पर, यह एक सामान्य उद्देश्य ट्यूरिंग-समतुल्य मशीन के निर्माण की आवश्यकता है, या प्रत्येक फ़ंक्शन, चर, आदि हो सकता है, फ्लाईवहेल्स और / या गियर, रैचेचेस के रूप में अपने स्वयं के अनूठे यांत्रिक निर्माण हैं, आपके पास क्या है? सारांश में, मुझे आश्चर्य है कि एक मानक कंप्यूटर पर किसी भी सॉफ्टवेयर के टुकड़े को मैकेनिकल ब्लूप्रिंट में संकलित किया जा सकता है या नहीं।


मुझे लगता है, Microsoft Word चलाने वाली किसी चीज़ को ट्यूरिंग मशीन पर चलाने की भी आवश्यकता नहीं है, क्योंकि Word में सभी प्रक्रियाओं को मुख्य ईवेंट लूप से अलग (प्रोविज़न) समाप्त होना चाहिए (अगर वहाँ बग की पहचान है) को छोड़कर।
Realz Slaw


1
यदि यह संभव है - जो संभावना लगता है - तो गैर-ट्यूरिंग-पूर्ण मशीन बनाना संभव होना चाहिए जो संकलक के रूप में कार्य करता है, स्रोत कोड से अन्य मशीनों के लिए ब्लूप्रिंट बना रहा है। मशीनें जो स्वयं पूरी हो सकती हैं या नहीं।
निक जॉनसन

@ रेलेज़ स्लाव: यदि आप I / O, VBA मैक्रोज़, या एक्सटेंशन शामिल नहीं करते हैं। उदाहरण के लिए, मुझे संदेह है कि यदि आप इसे एक अनन्त शब्द दस्तावेज़ खिलाते हैं तो Word शिकायत करेगा। यह शायद अंतर्निहित ओएस है जो एक सीमा तक पहुंच जाएगा।
रीइनियरियरपोस्ट

@reinierpost लेकिन प्रत्येक दिनचर्या को पूरा करने की आवश्यकता नहीं है; वे या तो ख़त्म कर देंगे या साबित नहीं करेंगे। यानी यदि आपने इसे एक अनंत दस्तावेज़ खिलाया है, तो यह निश्चित रूप से समाप्त नहीं होगा। मेरा कहना यह था कि हम जो भी प्रोग्राम बनाते हैं, उनमें ट्यूरिंग की पूरी भाषा का उपयोग नहीं होता है, क्योंकि हम इसे उन प्रोग्रामों तक सीमित कर सकते हैं, जिन्हें हम टर्मिनेट कर सकते हैं, गैर-अनंत डेटा दिए जा सकते हैं, और अनंत डेटा दिए जाने पर समाप्त नहीं होते हैं; और यदि आप ऐसा कर सकते हैं, तो हॉल्टिंग समस्या के साथ कोई समस्या नहीं है। TLDR; यदि आप अपनी दिनचर्या को समाप्त या साबित नहीं कर सकते, तो आप एक भयानक प्रोग्रामर हैं।
Realz Slaw

जवाबों:


23

हाँ यही है। यहाँ आप इसे कैसे करते हैं:

आप मूल रूप से सर्किट के लिए किसी भी प्रोग्राम को संकलित कर सकते हैं। उदाहरण के लिए, सिंथेसिस के ज्यामिति पर डैन घिका और उनके सहयोगियों के काम को देखें, जो दिखाता है कि सर्किट में कार्यक्रमों को कैसे संकलित किया जाए।

  1. दान आर। घिका। संश्लेषण की ज्यामिति: वीएलएसआई डिजाइन के लिए एक संरचित दृष्टिकोण
  2. डैन आर। घिका, एलेक्स स्मिथ। सिंथेसिस II की ज्यामिति: खेलों से लेकर देरी-असंवेदनशील सर्किट तक
  3. डैन आर। घिका, एलेक्स स्मिथ। सिंथेसिस III की ज्यामिति: प्रकार के अनुमान के माध्यम से संसाधन प्रबंधन।
  4. डैन आर। घिका, एलेक्स स्मिथ, सतनाम सिंह। संश्लेषण चतुर्थ की ज्यामिति: स्थैतिक हार्डवेयर में affine पुनरावृत्ति संकलन।

फिर इंजीनियरिंग में सर्किट फिर से प्रकट होते हैं। जॉन बैज़ अवधारणाओं की उपमाओं की एक बड़ी तालिका देते हैं, और इस सप्ताह के फाइनल 288-296 में बहुत सारे कनेक्शन काम करते हैं। यदि आप वास्तव में चाहते थे तो सर्किट आरेख दान के संकलक को यांत्रिक या हाइड्रोलिक सिस्टम के रूप में तैयार किया जा सकता है!

╔══════════════════════════════════════════════════════════════╗
║                 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
कोरोलरी: सॉफ्टवेयर पेटेंट का कोई मतलब नहीं है।
अंद्र दास सलामोन

1
एक सवाल का शानदार जवाब मैं मुश्किल से जानता था कि कैसे पूछें। अतिरिक्त चार्ट के लिए धन्यवाद!
एलेक्स नी

5

इसका एक व्यावहारिक उदाहरण बोस्टन साइंस म्यूजियम (मूल रूप से एमआईटी छात्रों की एक टीम द्वारा बनाया गया) में टिंकर टॉयज से बना टिक टीएसी टो कंप्यूटर है। बेशक, यह माइक्रोसॉफ्ट वर्ड की तुलना में बहुत सरल है।

यहाँ इसका वर्णन करने वाले वैज्ञानिक अमेरिकी का 1989 का लेख है।

लेगोस के बाहर ट्यूरिंग मशीन भी बनाई गई हैं (यह थोड़ा धोखा देता है क्योंकि यह बिजली का उपयोग करता है --- वास्तव में एक कंप्यूटर --- आंदोलन के लिए, लेकिन मुझे लगता है कि इस से बचने के लिए डिजाइन को संशोधित किया जा सकता है) स्क्रैप धातु , और बहुत कुछ।


मैंने लेख और लेगो मशीन का आनंद लिया, धन्यवाद।
एलेक्स नी

1

विशेष रूप से हार्डवेयर में संपादक बनाने के आपके उदाहरण को संबोधित करने की कोशिश करते हुए, एक प्रारंभिक प्रायोगिक कंप्यूटर बनाया गया था जो पूरी तरह से हार्डवेयर में ऑपरेटिंग सिस्टम और संपादक दोनों को लागू करता है। बाद में संपादक को सॉफ्टवेयर के साथ बदल दिया गया, जिसने हार्डवेयर की जरूरत को काफी हद तक कम कर दिया। कंप्यूटर वास्तुकला और इतिहास पर एक किताब में इसका वर्णन किया गया था। दुर्भाग्य से मैं नाम भूल गया हूं और मूल स्रोत को ट्रैक करने के लिए कीवर्ड नहीं मिला है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.