Was genau sind Verwaltungsredex nach der CPS-Konvertierung?

8

Im Zusammenhang mit dem Schema und der CPS Konvertierung habe ich ein paar Probleme damit, zu entscheiden, welche administrative redexes (lambdas) genau sind:

  • all die Lambda-Ausdrücke, die durch die CPS-Konvertierung eingeführt werden
  • nur die Lambda-Ausdrücke, die durch die CPS-Konvertierung eingeführt werden, aber Sie hätten nicht geschrieben, wenn Sie die Konvertierung "von Hand" oder über einen intelligenteren CPS-Konverter
  • durchgeführt hätten

Wenn möglich, wäre eine gute Referenz willkommen.

    
eljenso 23.01.2010, 09:21
quelle

2 Antworten

4

Redex steht für "reducible expression", was ein Ausdruck ist, der kein Wert ist. Daher ist ein Lambda kein Redex, sondern ein Aufruf.
In CPS ist ein administrativer Redex ein Redex, dessen Operator ein Fortsetzungslambda ist. Solche Redexes können sofort reduziert werden, weil Sie wissen, welche Funktion Sie anrufen. Beispiel: ((lambda (u) ...) foo) ist ein administrativer Redex, aber (k foo) ist nicht.

    
dimvar 09.06.2010, 06:19
quelle
4

Ich glaube, ich habe meine Antwort gefunden. ( Bearbeiten: Ich habe stattdessen die Antwort von dimvar akzeptiert, sie ist kürzer und korrekter.)

Unter der Annahme, dass das Eingabeprogramm nicht vollständig CPS ist, muss mindestens ein Prozedur-Rückkehrpunkt durch die CPS-Konvertierung in eine Fortsetzung umgewandelt werden. Diese Fortsetzung wird also durch die Konvertierung und notwendig. Weil es notwendig ist, müssten Sie dies immer tun, auch beim manuellen Konvertieren. Daher sind administrative Redexes nur die durch die CPS-Konvertierung eingeführten Lambdas, die nicht wirklich notwendig sind (meine zweite Definition).

Ich habe ein Papier gefunden, das es so erklärt (Hervorhebung von mir) :

  

Die naive λ-Codierung in CPS,   erzeugt jedoch eine ziemlich beeindruckende   Inflation von Lambdas, von denen am meisten   form administrative redexes das kann   sicher reduziert werden. Administrativ   Kürzungen ergeben CPS-Bedingungen   entsprechend was man schreiben könnte   von Hand. Es ist daher ein geworden   Herausforderung, so viele zu eliminieren   Verwaltungsrede wie möglich, um   CPS-Transformationszeit.

Trotzdem sind natürlich Bemerkungen oder Vorschläge willkommen.

    
eljenso 23.01.2010 11:18
quelle