Chris Double [ARCHIVE] on Nostr: š Original date posted:2011-12-30 šļø Summary of this message: OP_EVAL in ...
š
Original date posted:2011-12-30
šļø Summary of this message: OP_EVAL in Bitcoin scripting language adds expressive power, allowing for Turing completeness and implementation of SK-calculus using stack operations.
š Original message: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?
[1] http://tech.groups.yahoo.com/group/concatenative
[2] http://tunes.org/~iepos/joy.html
Chris.
--
http://www.bluishcoder.co.nz
šļø Summary of this message: OP_EVAL in Bitcoin scripting language adds expressive power, allowing for Turing completeness and implementation of SK-calculus using stack operations.
š Original message: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?
[1] http://tech.groups.yahoo.com/group/concatenative
[2] http://tunes.org/~iepos/joy.html
Chris.
--
http://www.bluishcoder.co.nz