The definitions and boundaries between:
Instruction Set Architecture (usually hardware, but see Webasm)
P-code/bytecode interpreter internal instructions (e.g. Pascal, Java)
Register Transfer Languages (RTL - compilers)
seem awfully ... fuzzy. Are there any hard & fast rules for classifying particular
implementations into taxnomical categories? Wikipedia has an over-arching definition for
"intermediate representation" ...
https://en.wikipedia.org/wiki/Intermediate_representation
This is related to Unix in that Unix itself (both kernel system call API & C library)
is an abstracting intermediary between the hardware (whole computer system including
storage, networking), and application software, which "if written portably"
doesn't have to care what hardware it's run on, so long as that hardware meets
some minimum requirements for both Unix, and whatever the application's needs are.
Erik