What are the specific rules for smart-contract languages (such as solidity) which run in a blockchain (and are considered languages because they can compute primes and that)?
Those languages are full of implicit input (creator address, caller address, past events in the blockchain, the called function's parameters itself, the amount of coins moved, the exact timestamp of transaction). Are all of those inputs methods allowed?
Is a populated public object a allowed output format?
Do compiled (EVM) code or the opcodes (assembly-like) count as different languages than the high-level one?