ฉันสนใจในแนวคิดของ "R-ทัวริงสมบูรณ์" ที่กำหนดไว้โดยAxelsen และGlück (2011) ระบบ r-Turing เสร็จสมบูรณ์ถ้ามันสามารถคำนวณฟังก์ชันชุดเดียวกันกับเครื่องทัวริงแบบย้อนกลับได้โดยไม่สร้างข้อมูล "ขยะ" ใด ๆ นี่คือความสามารถในการคำนวณทุกฟังก์ชั่นที่มีทั้ง (a) ที่คำนวณได้และ (b) การฉีด
ฉันต้องการคำนวณพื้นที่ของฟังก์ชั่นการฉีดที่คำนวณได้ เพื่อที่จะทำสิ่งนี้ฉันกำลังมองหาภาษาการเขียนโปรแกรมแบบย้อนกลับที่ "น้อยที่สุด" --- สิ่งที่สามารถมีบทบาทที่เทียบเท่ากับการคำนวณ r-Turing ที่แลมบ์ดาแคลคูลัสเล่นเพื่อการคำนวณทัวริง
ฉันรู้ว่ามีหลายภาษาที่สามารถย้อนกลับได้ซึ่งผู้คนได้พัฒนาและพิสูจน์แล้วว่าเป็นภาษาทัวริงที่สมบูรณ์ อย่างไรก็ตามสิ่งเหล่านี้ได้รับการพัฒนาโดยคำนึงถึงการใช้งานจริงดังนั้นผู้เขียนจึงมุ่งเน้นที่จะให้พวกเขามีคุณสมบัติที่น่าสนใจมากกว่าที่จะทำให้พวกเขามีน้อยที่สุด
ไม่มีใครรู้ว่ามีการอธิบายภาษาที่ผันกลับได้น้อยที่สุดหรือมีการวิจัยในทิศทางดังกล่าวหรือไม่? ฉันค่อนข้างใหม่ในวรรณคดีในหัวข้อนี้ดังนั้นฉันอาจพลาดได้ง่าย อีกวิธีหนึ่งไม่มีใครเข้าใจว่าภาษาดังกล่าวสามารถสร้าง?
ด้านล่างนี้เป็นบทสรุปของสิ่งที่ฉันกำลังมองหา ฉันไม่ทราบว่าสามารถสร้างได้โดยการปรับแคลคูลัสแลมบ์ดาเองหรือว่าจะต้องใช้ภาษาที่แตกต่างไปจากเดิมอย่างสิ้นเชิง
- r-Turing language สมบูรณ์ - คำนวณฟังก์ชั่นกลับด้านที่คำนวณได้ทั้งหมดและสามารถคำนวณฟังก์ชั่นกลับด้านได้เท่านั้น
- ไวยากรณ์และความหมายน้อยที่สุด (เช่นแคลคูลัสแลมบ์ดามีคำจำกัดความเฉพาะฟังก์ชั่นและแอปพลิเคชันและไม่มีอะไรอื่น) มันไม่จำเป็นสำหรับไวยากรณ์หรือความหมายที่เกี่ยวข้องกับของแลมบ์ดาแคลคูลัสแม้ว่ามันจะเป็น
- โปรแกรม = data นั่นคือโปรแกรมทำงานบนนิพจน์มากกว่าข้อมูลชนิดอื่น สิ่งนี้รับประกันได้ว่าผลลัพธ์ของโปรแกรมสามารถตีความได้ว่าเป็นโปรแกรม นี่อาจหมายถึงว่ามันจะต้องมีการทำงานมากกว่ารูปแบบที่จำเป็นของภาษา
- มีวิธีที่เป็นระบบในการแปลงโปรแกรมเป็นอินเวอร์สของโปรแกรมซึ่งไม่เกี่ยวข้องกับการคำนวณอย่างมีนัยสำคัญมากกว่าโปรแกรมที่เกี่ยวข้องกับการคำนวณอินเวอร์ส (ภาษาที่กลับด้านไม่ได้มีคุณสมบัตินี้ แต่มีบางภาษา)
ฉันควรเน้นว่าแนวทางของ Axelsen และGlückในการคำนวณแบบย้อนกลับนั้นค่อนข้างแตกต่างจากวิธีการที่รู้จักกันดีเนื่องจาก Bennett ซึ่งเป็นโปรแกรม (โดยทั่วไปที่ไม่สามารถย้อนกลับได้) จะกลับด้านได้โดยการคืนข้อมูลเกี่ยวกับประวัติของการคำนวณ ความสมบูรณ์ r-Turing นั้นเกี่ยวกับความสามารถในการคำนวณฟังก์ชั่นการฉีดโดยไม่ต้องมีเอาต์พุตเพิ่มเติม มีหลายสิ่งที่เรียกว่าการเปลี่ยนแปลงของ "แคลคูลัสแลมบ์ดาแบบพลิกกลับได้" ซึ่งสามารถย้อนกลับได้ในแง่ของ Bennet - นี่ไม่ใช่สิ่งที่ฉันกำลังมองหา