We're now arguing about the definition of the word "is."
Not even an hour ago you were claiming how the embedded scripting language added extreme flexibility to Bitcoin implementations. Having thought that through, you now claim the very same embedded scripting language is so crippled it, come to think of it, might not even count as executable instructions at all.
The technical reality of Bitcoin has not changed in the past hour. It still allows transactions to include arbitrary content. They still embed executable code. They are still executed, by design, network-wide on an implementation monoculture.
To paraphrase a tptacek comment: I hope to make the starburst of points which immediately follow this by implication as opposed to having to state them explicitly.
I'm not contradicting myself: In the same comment I wrote "It is statically validated and purposefully not turing complete".
There is no contradiction between between being very limited and also allowing extreme flexibility. I don't think many people here would agree that CSS is "executable code", and yet CSS is turing complete and substantially more complicated than Bitcoin's script. This is why I said it depends on what you mean by "executable code". There is nothing that is jumped to, no looping, the processor never jumps to and runs anything fed in off the network, etc. Just a simple set of operations for manipulating a stack and doing comparisons. But, even though the implementation is simple the results are powerful.
There are several implementations of script evaluation— I can think of at least 6— now though the reference is by far the norm on full nodes.
Comments
It depends on how you're defining "executable instructions".
There is a small set of operators and a single conditional. No looping, etc. It's strictly less powerful than CSS, for example.
The implementation is a very simple loop over a switch with a simple 'stack'. The size of a script has a hard maximum of 10kbytes.
We're now arguing about the definition of the word "is."
Not even an hour ago you were claiming how the embedded scripting language added extreme flexibility to Bitcoin implementations. Having thought that through, you now claim the very same embedded scripting language is so crippled it, come to think of it, might not even count as executable instructions at all.
The technical reality of Bitcoin has not changed in the past hour. It still allows transactions to include arbitrary content. They still embed executable code. They are still executed, by design, network-wide on an implementation monoculture.
To paraphrase a tptacek comment: I hope to make the starburst of points which immediately follow this by implication as opposed to having to state them explicitly.
I'm not contradicting myself: In the same comment I wrote "It is statically validated and purposefully not turing complete".
There is no contradiction between between being very limited and also allowing extreme flexibility. I don't think many people here would agree that CSS is "executable code", and yet CSS is turing complete and substantially more complicated than Bitcoin's script. This is why I said it depends on what you mean by "executable code". There is nothing that is jumped to, no looping, the processor never jumps to and runs anything fed in off the network, etc. Just a simple set of operations for manipulating a stack and doing comparisons. But, even though the implementation is simple the results are powerful.
There are several implementations of script evaluation— I can think of at least 6— now though the reference is by far the norm on full nodes.