With a list of opcodes for a virtual machine, is it possible to assign a number to every possible program of size n that can be run on that machine?
There is no need to assign a number. The program already is a number.
If you have $m$ opcodes and your program has $n$ instructions, then it can be interpreted as an $n$-&quot;digit&quot; number written in base $m$.