Skip to content

Latest commit

 

History

History
71 lines (60 loc) · 2.9 KB

README.md

File metadata and controls

71 lines (60 loc) · 2.9 KB

Imperium

Criteria desirable for a systems programming language

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