📅 Original date posted:2011-12-30
🗒️ Summary of this message: Bitcoin's scripting language has limited ability to manipulate scripts on the stack, but could gain more abilities if certain operations are restored.
📝 Original message:On Sat, 31 Dec 2011, Chris Double wrote:
> On Fri, Dec 30, 2011 at 5:42 AM, <roconnor at theorem.ca> wrote:
>> Basically OP_DUP lets you duplicate the code on the stack and that is the
>> key to looping. I'm pretty sure from here we get get Turing completeness.
>> Using the stack operations I expect you can implement the SK-calculus
>> given an OP_EVAL that allows arbitrary depth.
>>
>> OP_EVAL adds dangerously expressive power to the scripting language.
>
> If you look at the archives of the concatenative programming mailing
> list [1] you'll see lots of examples of people creating stack
> languages with minimal operations that exploit similar functionality
> to reduce the required built in operations. The discussion on the list
> is mostly about stack based languages where programs can be pushed on
> the stack and executed (eg. Joy [2]/Factor/Some Forths).
>
> I don't think the scripting engine in bitcoin has the ability to
> concatenate, append or otherwise manipulate scripts on the stack to be
> eval'd though does it?
It will limited ability manipulate scripts on the stack through the use of
arithmetic and hashing operations, and if OP_CAT, OP_SUBSTR and friends
are ever restored, it will have even more abilities.
--
Russell O'Connor <http://r6.ca/>
``All talk about `theft,''' the general counsel of the American Graphophone
Company wrote, ``is the merest claptrap, for there exists no property in
ideas musical, literary or artistic, except as defined by statute.''