Related articles |
---|
Generating optimal jump code for control flow instructions seescreen@gmail.com (SeeScreen) (2009-06-14) |
Re: Generating optimal jump code for control flow instructions seescreen@gmail.com (SeeScreen) (2009-06-23) |
Re: Generating optimal jump code for control flow instructions torbenm@pc-003.diku.dk (2009-06-24) |
From: | torbenm@pc-003.diku.dk (Torben =?iso-8859-1?Q?=C6gidius?= Mogensen) |
Newsgroups: | comp.compilers |
Date: | Wed, 24 Jun 2009 10:27:03 +0200 |
Organization: | Department of Computer Science, University of Copenhagen |
References: | 09-06-051 09-06-076 |
Keywords: | code, theory |
Posted-Date: | 25 Jun 2009 07:00:30 EDT |
SeeScreen <seescreen@gmail.com> writes:
> On Jun 14, 1:24 pm, SeeScreen <seescr...@gmail.com> wrote:
>> I am estimating that generating an absolute minimal number of
>> instructions, and short-circuiting the compound condtional at the
>> earliest possible point in the execution trace has probably already
>> been accomplished for many years.
>>
>> Is this old hat, or something new?
>
> I have come up with a simple way to generate optimal jump code for all
> basic control flow instructions:
> [Good question. I doubt that it's new, but it may be one of those bits
> of folklore that's never been properly written up. -John]
I expect the paper by Danvy and Damian at
http://en.scientificcommons.org/511287 may be what you want. The
abstract states:
Starting from an operational specification of a translation from a
structured to an unstructured imperative language, we point out how a
compositional and context-insensitive translation gives rise to static
chains of jumps. Taking an inspiration from the notion of
continuation, we state a new compositional and context-sensitive
specification that provably gives rise to no static chains of jumps,
no redundant labels, and no unused labels. It is defined with one
inference rule per syntactic construct and operates in linear time and
space on the size of the source program (indeed it operates in one
pass).
Torben
Return to the
comp.compilers page.
Search the
comp.compilers archives again.