OCODE 
"interpretation" ("procode") 

94 5 L1 83 73 69 86 69
95 4
42 0
42 0 40 2 14
83
42 0 42 1 40 2 14 83
42 2
40 3 42 1 15
92
85 L5
90 L6
42 1 40 4 40 2 14 83
40 4 42 1 14 80 4
90 5 40 4 40 5 88 L6
91 4
42 2 40 3 42 1 15 92
85 L7
90 L8 40 4 40 2 14
8 87 L9
40 4 42 2 11 92
85 L11
90 L10
42 0 40 6 40 2 14 83
40 4 40 6 14 80 6
90 L11
40 6 40 3 22 86 L10
91 6 90 L9
40 4 42 1 14 80 4
90 L7 40 4 40 5 88 L8
91 4 97 103 0

ENTRY 5 L1 'S' 'I' 'E' 'V' 'E'
SAVE 4
LN 0
LN 0 LP 2 PLUS
STIND
LN 0 LN 1 LP 2 PLUS STIND
LN 2
LP 3 LN 1 MINUS
STORE
JUMP L5
LAB L6
LN 1 LP 4 LP 2 PLUS STIND
LP 4 LN 1 PLUS SP 4
LAB L5 LP 4 LP 5 ENDFOR L6
STACK 4
LN 2 LP 3 LN 1 MINUS STORE
JUMP L7
LAB L8 LP 4 LP 2 PLUS
RV JF L9
LP 4 LN 2 MULT STORE
JUMP L11
LAB L10
LN 0 LP 6 LP 2 PLUS STIND
LP 4 LP 6 PLUS SP 6
LAB L11
LP 6 LP 3 LS JT L10
STACK 6 LAB L9
LP 4 LN 1 PLUS SP 4
LAB L7 LP 4 LP 5 ENDFOR L8
STACK 4 RTRN ENDPROC 0

; procedure heading ; stack frame (two parameters and two local variables) ; to place number 0 on a stack ; to place one more 0, to add to it the 2nd element of a stack ; to write in an array at stack top value under it ; the same for the 1st array cell ; to place number 2 on a stack ; to subtract unit from value of the 3rd element of a stack ; to write result in local variable ; to pass to L5 tag ; declaration of a tag of L6 ; to take the 4th element of a stack, to write in an array on this index 1 ; to add to the 4th element of a stack 1, to write result back ; L5: to pass to L6 tag if the 4th element of a stack <= to the 5th ; the declaration that on a stack now four elements ; to subtract unit from value of the 3rd element of a stack ; to pass to L7 tag ; L8: to put the 4th and 2nd elements of a stack ; to read value to this address; if it is 0, to pass to L9 ; to increase the 4th element by two ; to pass to L11 tag ; declaration of a tag of L10 ; to take the 6th element of a stack, to write in an array on this index 0 ; to add the 4th to the 6th element of a stack, to write the machine cut t back ; declaration of a tag of L11 ; to pass to L10 tag if the 7th element of a stack is less than 4th ; on a stack now six elements; declaration of a tag of L9 ; to add to the 4th element of a stack 1, to write result back ; L10: to pass to L8 if the 4th element of a stack <= to the 5th ; on a stack four elements; end of procedure

(For economy of the place, sequence of commands are written in one line. Martin in the guide to BCPL arrives in the same way.)
The source code on BCPL:
LET sieve(workvec, vecsize) BE
{
workvec!0 := 0
workvec!1 := 0
FOR i = 2 TO vecsize1 DO workvec!i := 1
FOR i = 2 TO vecsize1 DO
IF workvec!i DO
{ LET j = 2 * i
WHILE j < vecsize DO
{ workvec!j := 0
j := j + i
}
}
}
In newer OCODE versions support of floatingpoint numbers (respectively, the set of the supported opkod almost doubled) was added, and also deleted opkod
ENDFOR
— instead of it couple is generated
LE JT
.
Among "universal machine languages" OCODE is unique the fact that tags in it are defined by special instructions — i.e. for interpretation of its program it is necessary to load at first all into memory and to find in it tags.