[S S S T S S S S S N
_Push_32][S N
S _Duplicate][T N
S S _Print_as_character][S N
S _Duplicate][T N
T T _Read_STDIN_as_integer][T T T _Retrieve][S S S T N
_Push_1][T S S T _Subtract][S N
S _Duplicate][N
T S N
_If_0_Jump_to_Label_EXIT][S S S T S S T N
_Push_9][T N
S S Print_as_character][S S S T N
_Push_1][T S S T _Subtract][N
T S N
_If_0_Jump_to_Label_EXIT][S S S T S T S N
_Push_10][T N
S S _Print_as_character][N
S S N
_Create_Label_EXIT]
เพิ่มตัวอักษรS
(ช่องว่าง), T
(แท็บ) และN
(บรรทัดใหม่) เป็นการเน้นเท่านั้น
[..._some_action]
เพิ่มเป็นคำอธิบายเท่านั้น
ช่องว่างมีเพียง 'คำหลัก' ที่ถูกต้องสามรายการคือช่องว่างแท็บและบรรทัดใหม่
คำอธิบายในรหัสเทียม:
Print space
Integer i = STDIN as integer - 1
If i is 0:
Exit program
Else:
Print tab
i = i - 1
If i is 0:
Exit program
Else:
Print new-line
Exit program
ตัวอย่างการทำงาน:
การป้อนข้อมูล: 1
Command Explanation Stack Heap STDIN STDOUT STDERR
SSSTSSSSSN Push 32 [32]
SNS Duplicate top (32) [32,32]
TNSS Print as character [32] <space>
SNS Duplicate top (32) [32,32]
TNTT Read STDIN as integer [32] {32:1} 1
TTT Retrieve [1] {32:1}
SSSTN Push 1 [1,1] {32:1}
TSST Subtract top two (1-1) [0] {32:1}
SNS Duplicate top (0) [0,0] {32:1}
NTSN If 0: Jump to Label_EXIT [0] {32:1}
NSSN Create Label_EXIT [0] {32:1}
error
โปรแกรมหยุดทำงานโดยมีข้อผิดพลาด: ไม่มีการกำหนดทางออก
ลองใช้ออนไลน์ (ด้วยพื้นที่ว่างเปล่าแท็บและบรรทัดใหม่เท่านั้น)
ส่งออกพื้นที่เดียว
การป้อนข้อมูล: 2
Command Explanation Stack Heap STDIN STDOUT STDERR
SSSTSSSSSN Push 32 [32]
SNS Duplicate top (32) [32,32]
TNSS Print as character [32] <space>
SNS Duplicate top (32) [32,32]
TNTT Read STDIN as integer [32] {32:2} 2
TTT Retrieve [2] {32:2}
SSSTN Push 1 [2,1] {32:2}
TSST Subtract top two (2-1) [1] {32:2}
SNS Duplicate top (1) [1,1] {32:2}
NTSN If 0: Jump to Label_EXIT [1] {32:2}
SSSTSSTN Push 9 [1,9] {32:2}
TNSS Print as character [1] {32:2} \t
SSSTN Push 1 [1,1] {32:2}
TSST Subtract top two (1-1) [0] {32:2}
NTSN If 0: Jump to Label_EXIT [] {32:2}
NSSN Create Label_EXIT [] {32:2}
error
โปรแกรมหยุดทำงานโดยมีข้อผิดพลาด: ไม่มีการกำหนดทางออก
ลองใช้ออนไลน์ (ด้วยพื้นที่ว่างเปล่าแท็บและบรรทัดใหม่เท่านั้น)
ส่งออกช่องว่างตามด้วยแท็บ
อินพุต: 3
(หรือสูงกว่า)
Command Explanation Stack Heap STDIN STDOUT STDERR
SSSTSSSSSN Push 32 [32]
SNS Duplicate top (32) [32,32]
TNSS Print as character [32] <space>
SNS Duplicate top (32) [32,32]
TNTT Read STDIN as integer [32] {32:3} 3
TTT Retrieve [3] {32:3}
SSSTN Push 1 [3,1] {32:3}
TSST Subtract top two (3-1) [2] {32:3}
SNS Duplicate top (2) [2,2] {32:3}
NTSN If 0: Jump to Label_EXIT [2] {32:3}
SSSTSSTN Push 9 [2,9] {32:3}
TNSS Print as character [2] {32:3} \t
SSSTN Push 1 [2,1] {32:3}
TSST Subtract top two (2-1) [1] {32:3}
SSSTSTSN Push 10 [1,10] {32:3}
TNSS Print as character [1] {32:3} \n
NSSN Create Label_EXIT [] {32:3}
error
โปรแกรมหยุดทำงานโดยมีข้อผิดพลาด: ไม่มีการกำหนดทางออก
ลองใช้ออนไลน์ (ด้วยพื้นที่ว่างเปล่าแท็บและบรรทัดใหม่เท่านั้น)
ส่งออกช่องว่างตามด้วยแท็บตามด้วยบรรทัดใหม่