Cho một chương trình mã trung gian ba địa chỉ (TAC) có nhãn và lệnh nhảy, mỗi dòng là một lệnh, các token cách nhau đúng một khoảng trắng:
LABEL l: đánh dấu nhãn l tại vị trí này (không làm gì khi thực thi ngoài việc là đích nhảy đến).var = a: gán cho var giá trị của a (hằng số nguyên hoặc biến).var = a OP b: OP ∈{+,−,∗,//,%,<,≤,>,≥,==,=} — các phép so sánh trả về 1 (đúng) hoặc 0 (sai); // và % là chia nguyên và phần dư kiểu Python (làm tròn thương về −∞, dấu của phần dư theo dấu số chia); đề bảo đảm không có phép // hay % nào chia cho giá trị đang bằng 0 tại thời điểm thực hiện.GOTO l: nhảy không điều kiện tới ngay sau lệnh LABEL l.IF var GOTO l: nếu giá trị hiện tại của var khác 0 thì nhảy tới ngay sau LABEL l; ngược lại thực hiện lệnh kế tiếp như bình thường.PRINT var: in ra giá trị hiện tại của var, trên một dòng riêng.Biến chưa từng được gán có giá trị mặc định 0. Chương trình thực thi bắt đầu từ lệnh đầu tiên (chỉ số 0). Vì chương trình có nhãn/nhảy nên có thể lặp vô hạn: nếu tổng số lệnh đã được thực thi (mỗi lệnh, kể cả LABEL khi được thực thi tuần tự đi qua nó, tính là một bước — riêng khi nhảy tới sau một LABEL, bản thân lệnh LABEL đó không tính là một bước vì bị bỏ qua) đạt tới 106 mà chương trình vẫn chưa kết thúc (chưa chạy hết danh sách lệnh), thì dừng thực thi và in thêm dòng TIMEOUT sau tất cả các dòng đã PRINT được cho tới lúc đó.
Đề bảo đảm mọi nhãn được GOTO/IF ... GOTO tham chiếu đều tồn tại đúng một lần bằng một lệnh LABEL tương ứng trong chương trình.
Ví dụ: chương trình tính ∑i=15i bằng vòng lặp và in kết quả sẽ in ra một dòng duy nhất 15.
Dòng đầu: n (0≤n≤1000) — số lệnh. n dòng tiếp theo, mỗi dòng một lệnh theo đúng cú pháp trên.
In ra các dòng do lệnh PRINT sinh ra theo đúng thứ tự thực thi. Nếu chương trình bị dừng do vượt giới hạn 106 bước như mô tả trên, in thêm một dòng cuối cùng TIMEOUT.
Ví dụ:
Đầu vào:
4
x = 3
y = 4
z = x + y
PRINT z
Đầu ra:
7
Đầu vào:
0
Đầu ra:
Đang tải editor...