INTERCAL - Compiler Language With No Pronounceable Acronym

Utasítások, vezérlési szerkezetek

Utasítások; Vezérlési szerkezetek


Utasítások

A szokásoktól eltérõen az INTERCAL nem utasítás-terminátort használ, hanem az utasítások kezdetét jelzi. Minden utasításnak a DO, a PLEASE vagy a PLEASE DO szavakkal kell kezdõdnie. Mind a három forma egyenértékû, esztétikai szempontból a legkedvezõbbet választhatjuk.

Értékadás

 DO <változó> <- <kifejezés> 


Vezérlési szerkezetek

Utasítások kihagyása

IGNORE / REMEMBER
Adott változóra vonatkozó értékadások tiltása/engedélyezése.
DO .1 <- #1
DO IGNORE .1
DO .1 <- #0
után .1 értéke 1 és nem 0
ABSTAIN FROM / REINSTATE
Adott címkéjû vagy adott típusú utasítások tiltása/engedélyezése.
 DO ABSTAIN FROM (1) 
letiltja az (1) címkéjû utasítást
 DO REINSTATE CALCULATING + NEXTING 
újra engedélyezi az értékadásokat és a NEXT utasításokat A NOT módosítóval megváltoztathatjuk az alapértelmezett állapotot: a
 DO NOT .1<-#1 
utasítás nem hajtódik végre, amíg nincs egy rá vonatkozó REINSTATE. Egy értelmezhetetlen utasítás nem okoz problémát, amíg nem próbáljuk végrehajtani, amikor is futási idejû hibával leáll a program. Ezt kihasználva írhatunk megjegyzéseket, vagy szakíthatjuk félbe a programot tetszõleges hibaüzenettel.

Ugró utasítások

NEXT / FORGET / RESUME
A NEXT használható mind az alprogramhívásra, mind a feltétel nélküli ugrásra. Formája:
 DO <címke> NEXT 
A verembe menti az aktuális címet, majd a címkére ugrik. A
 DO FORGET <N> 
eldobja a verem felsõ N elemét, a
 DO RESUME <N> 
szintén kiszed <N> elemet, és az <N>-edik címre ugrik vissza. Az <N> tetszõleges kifejezés lehet.
COME FROM
Az elsõ leírása R. L. Clarktól származik 1984-bõl [4]. Bár más nyelvekben is elérhetünk hasonló hatást (például a FORTRANban a DO utasítással), a C-INTERCAL volt az elsõ nyelv, melybe bekerült ezen a néven. Ha lenne GOTO utasítás, a
(1) DO <valami>
...
DO COME FROM (1)
programot így írhatnánk:
(1) DO <valami>
DO GOTO (2)
...
(2) DO NOTHING