| Capability | C | PL/I | IPL |
|---|---|---|---|
pointers |
Yes | Yes | Yes |
fixed length strings |
Putative | Yes | Yes |
variable length strings |
No | Yes | Yes |
structures |
Yes | Yes | Yes |
bit type |
No | Yes | Yes |
heap |
Yes | Yes | Yes |
areas |
No | Yes | Yes |
labels |
Yes | Yes | Yes |
subscripted labels |
No | Yes | Yes |
label variables |
No | Yes | Yes |
assembly |
Yes | No | Yes |
arrays |
Yes | Yes | Yes |
custom array bounds |
No | Yes | Yes |
field order |
Lexical | Lexical | Custom |
'pad' data type |
No | No | Yes |
string literals |
Yes | Yes | Yes |
raw string literals |
No | No | Yes |
reserved words |
Yes | No | No |
international keywords |
No | No | Yes |
deafult initialization |
No | Option | Option |
fixed evaluation order |
No | No | Yes |
exception support |
No | Yes | Yes |
retryable exceptions |
No | No | Yes |
builtin functions |
No | Yes | Yes |
intrinsic attribute |
No | No | Yes |
hex literals |
Yes | No | Yes |
octal literals |
Yes | No | Yes |
bin literals |
Yes | No | Yes |
literal digit separators |
No | No | Yes |
fractional bin literals |
No | Yes | Yes |
fractional hex literals |
No | No | Yes |
floating bin literals |
No | No | Yes |
floating hex literals |
No | No | Yes |
nested procedures |
No | Yes | Yes |
fixed binary type |
No | Yes | Yes |
fixed decimal type |
No | Yes | Yes |
controlled allocate |
No | Yes | ? |
implicit pointers |
No | Yes | Yes |
offset type |
No | Yes | Yes |
arguments passed by |
Value | Reference | Reference |
'void' type |
Yes | No | No |
pointer arithmetic |
Yes | No | No |
coroutines |
No | No | ? |
logical shift left op |
No | Yes | |
logical shift right op |
No | Yes | |
arithmetic shift left op |
No | Yes | |
arithmetic shift right op |
No | Yes | |
rotate left op |
No | No | Yes <@ |
rotate right op |
No | No | Yes >@ |
interrupt attribute |
Putative | No | Yes |
variable parameter sizes |
No | Yes | Yes |
block delimters |
Braces | Keyword/End | Keyword/End |
set notation (Oberon) |
No | No | Yes |
assignment operators |
> 10 | = |
= |
name spaces |
No | No | scope |
Unicode |
Putative | No | Yes |