สร้างภาษาและการใช้งานที่คล้ายกับมิวเรียล


9

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

เราจะกำหนดภาษาที่คล้ายกับมิวเรียลดังนี้:

  1. แต่ก็มีในตัวคำสั่งสำหรับการดำเนินการรหัสในภาษาของตัวเองคล้ายกับมิวเรียลของคำสั่งหรือการหลาม@exec
  2. ทัวริงเสร็จสมบูรณ์
  3. หากคุณลบคำสั่งการเรียกใช้งานในตัวคำสั่งนั้นจะไม่เสร็จสิ้นอีกต่อไป

Muriel นั้นเหมือน Muriel เหมือนกับ@คำสั่งในการประมวลผลในตัว Smurfเป็นเหมือน Muriel (คำสั่งในการประมวลผลในตัวคือx) งูหลามเป็นไม่ Muriel execเหมือนเพราะมันยังคงเป็นทัวริงสมบูรณ์หากคุณลบ

งานของคุณคือการสร้างภาษาการเขียนโปรแกรมที่คล้ายกับมิวเรียลและจากนั้นจะจัดทำมันในภาษาที่คุณเลือก คะแนนของคุณคือระยะเวลาในการใช้งานซึ่งคุณกำลังพยายามลดให้น้อยที่สุด

หมายเหตุ:

  1. การประมวลผลในตัวของคุณไม่จำเป็นต้องทำงานเหมือนกับ Muriel มันขึ้นอยู่กับคุณว่าจะจัดการกับการสิ้นสุดของโปรแกรมย่อยข้อผิดพลาดการกำหนดขอบเขต ฯลฯ ได้อย่างไร
  2. ภาษาที่คุณเขียนการดำเนินการไม่สามารถตัวเองเป็นเหมือนมิวเรียล (นี่คือรายการที่@ไม่ถูกต้อง) และต้องมีอยู่ก่อนโพสต์นี้

คือunderloadภาษา Muriel เหมือน?
alephalpha

@JerryJeremiah การแก้ไขของฉันทำให้ชัดเจนขึ้นหรือไม่
PyRulez

@alephalpha วิกินั้นกล่าวว่า "หากไม่มี ^ โปรแกรมที่เหลือจะลดขนาดลงในที่สุด ถ้านี่เป็นเรื่องจริงถ้าใช่ Underload จะเหมือนมิวเรียล
PyRulez

คุณจะทำอย่างไรถ้าภาษาเป้าหมายของคุณมีหลายevalคำสั่ง (เช่น Python execและeval) ต้องการให้ลบทั้งหมดเพื่อสูญเสีย TCness หรือไม่
CalculatorFeline

1
@PyRulez ฉันคิดว่านี่ควรจะนิยมประกวดมากกว่ารหัสกอล์ฟเพราะมิฉะนั้นทางเลือกของภาษาการดำเนินการจะทำให้มันเป็นความท้าทายที่กิ้งก่า
ยูเรียล

คำตอบ:


3

Python 3และ "ชุดย่อย TC ขั้นต่ำของ Underload แต่เมื่ออักขระเปลี่ยนเป็น2019ย้อนกลับและ0อยู่ด้านบน" 156 ไบต์

c=input()
n=1
t=c
s=[]
while c:
 *c,i=c
 if n:
  if"6">i:n+=int(i)-1
  if n:t=[i]+t
  else:s+=[t];t=[]
 elif"2"==i:n=1
 elif"2">i:s+=s[-1:]
 else:c+=s.pop()

ลองออนไลน์!

คำอธิบายในส่วนหัว, รหัสความคิดเห็นในส่วนท้าย


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