แลมบ์ดาแคลคูลัสสำหรับฟังก์ชั่นย้อนกลับ (คำนวณได้ r-Turing)


19

ฉันสนใจในแนวคิดของ "R-ทัวริงสมบูรณ์" ที่กำหนดไว้โดยAxelsen และGlück (2011) ระบบ r-Turing เสร็จสมบูรณ์ถ้ามันสามารถคำนวณฟังก์ชันชุดเดียวกันกับเครื่องทัวริงแบบย้อนกลับได้โดยไม่สร้างข้อมูล "ขยะ" ใด ๆ นี่คือความสามารถในการคำนวณทุกฟังก์ชั่นที่มีทั้ง (a) ที่คำนวณได้และ (b) การฉีด

ฉันต้องการคำนวณพื้นที่ของฟังก์ชั่นการฉีดที่คำนวณได้ เพื่อที่จะทำสิ่งนี้ฉันกำลังมองหาภาษาการเขียนโปรแกรมแบบย้อนกลับที่ "น้อยที่สุด" --- สิ่งที่สามารถมีบทบาทที่เทียบเท่ากับการคำนวณ r-Turing ที่แลมบ์ดาแคลคูลัสเล่นเพื่อการคำนวณทัวริง

ฉันรู้ว่ามีหลายภาษาที่สามารถย้อนกลับได้ซึ่งผู้คนได้พัฒนาและพิสูจน์แล้วว่าเป็นภาษาทัวริงที่สมบูรณ์ อย่างไรก็ตามสิ่งเหล่านี้ได้รับการพัฒนาโดยคำนึงถึงการใช้งานจริงดังนั้นผู้เขียนจึงมุ่งเน้นที่จะให้พวกเขามีคุณสมบัติที่น่าสนใจมากกว่าที่จะทำให้พวกเขามีน้อยที่สุด

ไม่มีใครรู้ว่ามีการอธิบายภาษาที่ผันกลับได้น้อยที่สุดหรือมีการวิจัยในทิศทางดังกล่าวหรือไม่? ฉันค่อนข้างใหม่ในวรรณคดีในหัวข้อนี้ดังนั้นฉันอาจพลาดได้ง่าย อีกวิธีหนึ่งไม่มีใครเข้าใจว่าภาษาดังกล่าวสามารถสร้าง?

ด้านล่างนี้เป็นบทสรุปของสิ่งที่ฉันกำลังมองหา ฉันไม่ทราบว่าสามารถสร้างได้โดยการปรับแคลคูลัสแลมบ์ดาเองหรือว่าจะต้องใช้ภาษาที่แตกต่างไปจากเดิมอย่างสิ้นเชิง

  • r-Turing language สมบูรณ์ - คำนวณฟังก์ชั่นกลับด้านที่คำนวณได้ทั้งหมดและสามารถคำนวณฟังก์ชั่นกลับด้านได้เท่านั้น
  • ไวยากรณ์และความหมายน้อยที่สุด (เช่นแคลคูลัสแลมบ์ดามีคำจำกัดความเฉพาะฟังก์ชั่นและแอปพลิเคชันและไม่มีอะไรอื่น) มันไม่จำเป็นสำหรับไวยากรณ์หรือความหมายที่เกี่ยวข้องกับของแลมบ์ดาแคลคูลัสแม้ว่ามันจะเป็น
  • โปรแกรม = data นั่นคือโปรแกรมทำงานบนนิพจน์มากกว่าข้อมูลชนิดอื่น สิ่งนี้รับประกันได้ว่าผลลัพธ์ของโปรแกรมสามารถตีความได้ว่าเป็นโปรแกรม นี่อาจหมายถึงว่ามันจะต้องมีการทำงานมากกว่ารูปแบบที่จำเป็นของภาษา
  • มีวิธีที่เป็นระบบในการแปลงโปรแกรมเป็นอินเวอร์สของโปรแกรมซึ่งไม่เกี่ยวข้องกับการคำนวณอย่างมีนัยสำคัญมากกว่าโปรแกรมที่เกี่ยวข้องกับการคำนวณอินเวอร์ส (ภาษาที่กลับด้านไม่ได้มีคุณสมบัตินี้ แต่มีบางภาษา)

ฉันควรเน้นว่าแนวทางของ Axelsen และGlückในการคำนวณแบบย้อนกลับนั้นค่อนข้างแตกต่างจากวิธีการที่รู้จักกันดีเนื่องจาก Bennett ซึ่งเป็นโปรแกรม (โดยทั่วไปที่ไม่สามารถย้อนกลับได้) จะกลับด้านได้โดยการคืนข้อมูลเกี่ยวกับประวัติของการคำนวณ ความสมบูรณ์ r-Turing นั้นเกี่ยวกับความสามารถในการคำนวณฟังก์ชั่นการฉีดโดยไม่ต้องมีเอาต์พุตเพิ่มเติม มีหลายสิ่งที่เรียกว่าการเปลี่ยนแปลงของ "แคลคูลัสแลมบ์ดาแบบพลิกกลับได้" ซึ่งสามารถย้อนกลับได้ในแง่ของ Bennet - นี่ไม่ใช่สิ่งที่ฉันกำลังมองหา


r-Turing complete ดูเหมือนจะค่อนข้าง defn ใหม่และมันจะมีประโยชน์ที่จะเห็นหลักฐานว่ามันไม่เหมือนกับทัวริงที่สมบูรณ์ & การตีความ / การวิเคราะห์ / การวิเคราะห์โดยผู้เขียนคนอื่น ๆ กว่าผู้ที่แนะนำแนวคิด (& ไม่ใช่ลิงก์แบบจ่ายต่อการดู เป็นไปได้)
vzn

คำตอบ:


4

ฉันไม่คุ้นเคยกับพื้นที่มากนัก แต่มีงานล่าสุดจากชุมชนภาษาการเขียนโปรแกรมที่คุณอาจสนใจ โดยเฉพาะอย่างยิ่งคุณสามารถดู

  • Fractional Typesโดย Roshan P. James, Zachary Sparks, Jacques Carette และ Amr Sabry

เช่นเดียวกับสื่อสิ่งพิมพ์ต่างๆที่เกี่ยวข้องซึ่งคุณสามารถค้นหาบนเว็บไซต์ Amr Sabry ของ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.