มีหลายวิธีในการใช้บางสิ่งบางอย่างที่สามารถใช้เครื่องจักรทัวริง
ในขณะที่คุณกำลังมองหาที่ประมวลผลหนึ่งที่มีผลบังคับใช้มากที่สุดน่าจะเป็นรูปแบบเครื่องลงทะเบียน ที่ง่ายที่สุดของเหล่านี้ (ในแง่ของสัญลักษณ์) เป็น mulit เทปสองสัญลักษณ์ ( markและblank) หากคุณไปสำหรับบางสิ่งบางอย่างไม่ได้ค่อนข้างเป็นความลับที่inc(r), dec(r)และjz(r,z)(กระโดดลงทะเบียนถ้าrเป็นศูนย์การเรียนการสอนz) หรือclr(r)(ชัดเจนr) inc, je(i,j,z)(กระโดดลงทะเบียนถ้า i และ j จะเท่ากับการเรียนการสอน z)
ฉันเคยเห็นพูดถึงเครื่องลงทะเบียนที่:
- inc (i, m) - เพิ่มการลงทะเบียน i และไปที่บรรทัด m
- jzdec (i, m1, m2) - ถ้าลงทะเบียน i คือ 0 ไปที่ line m, ลดลง i อื่น, และไปที่ line m2
ซึ่งกำลังทำให้สมบูรณ์เช่นกัน - เครื่องลงทะเบียน Minskyแม้ว่ามันจะมีข้อ จำกัด อื่น ๆ เกี่ยวกับข้อมูลในเทป
แค่นั้นแหละ. ไม่มีอะไรเพิ่มเติม
เหตุใดจึงไม่ใช้โปรเซสเซอร์ risc แบบพิเศษเหล่านี้แทน มันเป็นความเจ็บปวดที่แท้จริงในการเขียนคอมไพเลอร์ให้พวกเขาและคุณก็ยอมแพ้สิ่งต่าง ๆ มากมายที่โปรเซสเซอร์สามารถทำได้ มันดีมากที่ได้ bitwise andและaddแทนที่จะพยายามทำทุกอย่างด้วยการลงทะเบียนที่เพิ่มขึ้นและวนซ้ำ นั่นคือพื้นฐานของภาษาการเขียนโปรแกรมโปรดที่ชื่อว่าBrainfuckซึ่งมี 8 คำแนะนำ
> เพิ่มตัวชี้ข้อมูล
< ลดตัวชี้ข้อมูล
+ เพิ่มข้อมูลที่ตัวชี้ข้อมูล
- ลดค่าข้อมูลที่ตัวชี้ข้อมูล
. ส่งออกข้อมูลที่ตัวชี้ข้อมูล
, อ่านอินพุตเก็บข้อมูลที่ตัวชี้ข้อมูล
[หากข้อมูลที่ชี้เป็นศูนย์แทนการย้ายตัวชี้คำสั่งข้างหน้าหนึ่งกระโดดไปข้างหน้ากับคำสั่งหลังจากการจับคู่]คำสั่ง
]หากข้อมูลที่ชี้เป็นเลขแทนการย้ายตัวชี้การเรียนการสอนไปข้างหน้าข้ามมันกลับไปที่คำสั่งหลังจากการจับคู่]คำสั่ง
หนึ่งสามารถค้นหาคอมไพเลอร์เพื่อ Brainfuck แม้ว่ามันจะไม่สนุกที่จะทำสิ่งที่เรียบง่ายในนั้น นอกเสียจากว่าคุณจะเพลิดเพลินกับความหงุดหงิดซึ่งเป็นจุดประสงค์ของภาษา
การอ่านที่เกี่ยวข้อง: