3
ใช้เครื่องมือจำลองเครื่องสากล
เป้าหมายคือการเขียนโปรแกรมเต็มรูปแบบที่จำลองเครื่องสากลจาก ICFP 2006 ด้วยรหัสที่สั้นที่สุด เครื่องสากลมีชุดการเรียนการสอนที่ง่ายมากอธิบายที่นี่ อีมูเลเตอร์ต้องอ่านชื่อไฟล์จากอาร์กิวเมนต์บรรทัดคำสั่งและเรียกใช้ไฟล์เป็นโปรแกรมดังนั้นภาษาของคุณจะต้องสนับสนุนอาร์กิวเมนต์บรรทัดคำสั่งและ stdin / out อย่างใด จำลองที่มีการดำเนินการsandmarkภายในเวลาอันสมควร (ไม่ทศวรรษที่ผ่านมา) นี่คือคำอธิบายสั้น ๆ ของชุดคำสั่ง: เครื่องมีการลงทะเบียนแปดครั้งแต่ละคนมีจำนวนเต็ม 32 บิตที่ไม่ได้ลงชื่อ เครื่องเก็บชุดอาร์เรย์ที่จัดทำดัชนีไว้ของเซลล์เลขจำนวนเต็ม 32 บิตที่ไม่ได้ลงชื่อ พูดสั้น ๆ คำแนะนำในการจัดสรรผลตอบแทนทึบแสง 32 บิตซึ่งเป็นมือจับไปยังอาร์เรย์ที่สร้างขึ้นซึ่งมีขนาดคงที่และถือองค์ประกอบ uint 32 บิต อาร์เรย์ 0'th หมายถึงโปรแกรม มันถูกโหลดจากไฟล์ big-endian เมื่อเริ่มต้น นอกจากนี้ยังมี Instruction Pointer ซึ่งชี้ไปที่เซลล์ในอาร์เรย์ 0 ในแต่ละขั้นตอนคำสั่งจะอ่านจากเซลล์ที่ตัวชี้ชี้ไปที่และตัวชี้จะถูกฝังก่อนที่จะทำอะไร บิตที่สำคัญที่สุด 4 บิตแสดงถึง opcode หาก opcode เท่ากับ 13 ดังนั้นบิต …