Is there some lower level code that Plutus code compiles to (akin to Solidity => EVM bytecode, or BSV sCrypt => OP_codes)?
Related (but distinct) how the state changes: https://cardano.stackexchange.com/a/7253/4968
Is there some lower level code that Plutus code compiles to (akin to Solidity => EVM bytecode, or BSV sCrypt => OP_codes)?
Related (but distinct) how the state changes: https://cardano.stackexchange.com/a/7253/4968
Yes, there is a lower level code that is used onchain, it is called Untyped Plutus Core (UPLC)! When validators are written in template haskell, they get compiled via
1) GHC: Haskell -> GHC Core
2) Plutus Tx compiler: GHC Core -> Plutus IR
3) Plutus IR compiler: Plutus IR -> Typed Plutus Core
4) Type eraser: Typed Plutus Core -> Untyped Plutus Core
To learn more about UPLC have a look at this great blog.