Labels as values and threaded-code interpretation

Alex Rønne Petersen alex at lycus.org
Sun Jun 2 09:48:04 PDT 2013


On 02-06-2013 10:52, Dmitry Olshansky wrote:
> 01-Jun-2013 20:13, Timon Gehr пишет:
>> On 06/01/2013 07:29 AM, Alex Rønne Petersen wrote:
>>> Hi,
>>>
>>> I'm sure this has been brought up before, but I feel I need to bring it
>>> up again (because I'm going to be writing a threaded-code interpreter):
>>> http://gcc.gnu.org/onlinedocs/gcc/Labels-as-Values.html
>>>
>>> This is an incredibly important extension. The final switch statement is
>>> not a replacement because it doesn't allow the programmer to store a
>>> label address directly into a code stream, which is what's essential to
>>> write a threaded-code interpreter.
>>>
>>
>> I'd also like to see this.
>>
>
> Same here.
>
> Though I believe a way to force tail-call can support the same use case
> also helping functional programming.
>
> Say:
>
> goto Call-Expression; //forced tail call
>
> instead of:
>
> return Call-Expression;
>

I'm not sure that can support threaded-code interpretation.

-- 
Alex Rønne Petersen
alex at alexrp.com / alex at lycus.org
http://alexrp.com / http://lycus.org


More information about the Digitalmars-d mailing list