โปรแกรมแบบเธรดเดี่ยวใด ๆ ที่ทำงานบนเครื่องที่มีจำนวน จำกัด ของพื้นที่จัดเก็บสามารถจำลองเป็นเครื่องสถานะ จำกัด สถานะเฉพาะในเครื่องสถานะ จำกัด จะแสดงค่าเฉพาะของหน่วยเก็บข้อมูลที่เกี่ยวข้องทั้งหมด - ตัวแปรโลคัล, ตัวแปรโกลบอล, ที่เก็บข้อมูลฮีป, ข้อมูลที่ถูกแลกเปลี่ยนในหน่วยความจำเสมือน, แม้กระทั่งเนื้อหาของไฟล์ที่เกี่ยวข้อง กล่าวอีกนัยหนึ่งจะมีรัฐจำนวนมากในรูปแบบสถานะ จำกัด นั้นแม้จะเป็นโปรแกรมที่ไม่สำคัญก็ตาม
แม้ว่าโปรแกรมของคุณจะมีเพียงตัวแปรเดียวทั่วโลกซึ่งเป็นชนิดจำนวนเต็ม 32 บิต แต่ก็มีความหมายอย่างน้อย 2 ^ 32 (มากกว่า 4 พันล้านครั้ง) และนั่นไม่ได้คำนึงถึงตัวนับโปรแกรมและ call stack
หุ่นยนต์แบบกดลงนั้นดูสมจริงมากขึ้นสำหรับสิ่งนี้ มันเป็นหุ่นยนต์ที่มีขอบเขต จำกัด แต่มีแนวคิดในตัวของสแต็ก มันไม่ได้เป็น call-stack เหมือนภาษาการเขียนโปรแกรมส่วนใหญ่
มีคำอธิบายของ Wikipediaแต่อย่าจมดิ่งลงในส่วนคำจำกัดความที่เป็นทางการ
มีการใช้ออโตบอร์ดแบบกดลงเพื่อคำนวณแบบจำลองทั่วไป เครื่องจักรทัวริงจะคล้ายกันแต่ไม่เหมือนกัน IIRC - แม้ว่าความสามารถในการคำนวณของพวกเขาจะเทียบเท่า
ขอบคุณที่เควินไคลน์ชี้ให้เห็นข้อผิดพลาดข้างต้น - เนื่องจากวิกิพีเดียชี้ให้เห็นว่าการกดออโตมาต้านั้นมีประสิทธิภาพมากกว่าเครื่องสถานะ จำกัด แต่มีประสิทธิภาพน้อยกว่าเครื่องทัวริง
ผมไม่ทราบว่านี้ผายลมสมองมาจาก - ฉันทำรู้บริบทที่มีความละเอียดอ่อนไวยากรณ์มีประสิทธิภาพมากขึ้นกว่าบริบทฟรีและที่บริบทไวยากรณ์ที่มีความสำคัญไม่สามารถแยกวิเคราะห์โดยใช้หุ่นยนต์ผลักดันลงง่ายๆ ฉันยังรู้ว่าในขณะที่เป็นไปได้ที่จะแยกไวยากรณ์ไวยากรณ์ที่ไม่มีบริบทใด ๆ ในเวลาเชิงเส้น แต่โดยทั่วไปแล้วจะใช้เวลามากกว่า (กดลง) ออโตเมติกแบบกดลงเพื่อทำสิ่งนั้น ดังนั้นฉันจะจบลงได้อย่างไรว่าการเชื่อว่าหุ่นยนต์แบบกดลงนั้นเทียบเท่ากับเครื่องจักรทัวริงที่แปลกประหลาด
บางทีฉันอาจกำลังคิดว่าหุ่นยนต์แบบกดลงที่มีการเพิ่มเครื่องจักรพิเศษบางอย่าง แต่นั่นก็เหมือนกับการนับจำนวนเครื่องจักรอัตโนมัติที่มีค่าเทียบเท่ากับเครื่องจักรแบบกดลง (เพียงแค่เพิ่มและใช้ประโยชน์จากกองซ้อน)
ออโต้แบบกดลงมีความสำคัญในการแยกวิเคราะห์ ฉันคุ้นเคยกับพวกเขาเพียงพอในบริบทนั้น แต่ฉันไม่เคยศึกษาพวกเขาเป็นแบบจำลองการคำนวณทางวิทยาศาสตร์คอมพิวเตอร์ดังนั้นฉันจึงไม่สามารถให้รายละเอียดมากกว่าที่ฉันมีอยู่
เป็นไปได้ที่จะจำลองวัตถุ OOP เดียวเป็นเครื่องสถานะ จำกัด สถานะของเครื่องจะถูกกำหนดโดยสถานะของตัวแปรสมาชิกทั้งหมด โดยปกติคุณจะนับเฉพาะสถานะที่ถูกต้องระหว่างการเรียกใช้เมธอด (ไม่ใช่ระหว่าง) อีกครั้งโดยทั่วไปคุณจะมีรัฐจำนวนมากที่ต้องกังวล - เป็นสิ่งที่คุณอาจใช้เป็นแบบจำลองเชิงทฤษฎี แต่คุณไม่ต้องการระบุรัฐเหล่านั้นทั้งหมดยกเว้นในกรณีเล็ก ๆ น้อย ๆ
มันเป็นเรื่องธรรมดาแม้ว่าแบบจำลองบางแง่มุมของสถานะของวัตถุโดยใช้เครื่องจักรสถานะ จำกัด กรณีทั่วไปคือ AI สำหรับวัตถุในเกม
นี่คือสิ่งที่มักทำเมื่อกำหนด parser โดยใช้โมเดลออโตเมติกแบบกดลง แม้ว่าจะมีชุด จำกัด ของรัฐในรูปแบบของรัฐเพียงรุ่นนี้เป็นส่วนหนึ่งของรัฐ parser - ข้อมูลเพิ่มเติมจะถูกเก็บไว้ในตัวแปรเสริมข้างรัฐ การแก้ปัญหาเช่นปัญหา 4 พันล้านสถานะสำหรับหนึ่งจำนวนเต็มไม่ระบุรัฐเหล่านั้นทั้งหมดเพียงแค่รวมตัวแปรจำนวนเต็ม ในแง่หนึ่งมันยังคงเป็นส่วนหนึ่งของสถานะออโตเมติกแบบกดลง แต่ก็เป็นวิธีการจัดการที่ดีกว่าการวาดเอฟเฟกต์ 4 พันล้านฟองบนไดอะแกรม