Scripsit James Emil Avery <avery@diku.dk>
> On Mon, 24 Oct 2005, Henning Makholm wrote:
>> Kanhænde at jeg burde have været sikrere på hvad jeg egentlig leder
>> efter, før jeg giver mig til at stille dumme spørgsmål.
> Tør man i øvrigt spørge, hvad du mere konkret prøver at modellere?
Gerne. Da jeg forsøgte at forklare hele historien blev den så lang at
jeg vil skåne dk.videnskab for den. Men forsøget på at skrive mine
overvejelser ned gav mig nyttige indsigter som hjalp mig med at komme
videre, så mange tak for spørgsmålet!
Den overordnede ramme er at jeg pusler med at lave en programanalyse
der kan identificere continuation-argumenter i en lambdaterm. Mere
præcist vil jeg kunne analysere mig frem til steder i et program hvor
transformationen
M ==> x (let val x = id in M)
bevarer programmets opførsel. Ved konsekvent at anvende sådanne
transformationer og bagefter eliminere id'erne med partiel
evaluering, kan man løfte continuationerne op til en mere
direkte programmeringsstil.
Planen er lige p.t. at analyseresultatet for et deludtryk M skal være
et regulært sprog i et alfabet hvor hvert symbol beskriver ét af de
halekald der bliver viklet af stakken i rækkefølge idet M returnerer.
Den Kleene-algebra der udgøres af disse regulære sprog, er konceptuelt
efterkommeren af den lidt besynderlige struktur jeg præsenterede i
starten af tråden.
De underlige af mine aksiomer - fx ab+c=(a+c)(b+c) - forsvandt da jeg
tænkte mig nøjere om, måske lige bortset fra optimeringen a+1=1, der
som du også nævner ikke er helt fremmed for teorien.
--
Henning Makholm "It was intended to compile from some approximation to
the M-notation, but the M-notation was never fully defined,
because representing LISP functions by LISP lists became the
dominant programming language when the interpreter later became available."