gotchaMinor
What is the difference between A-normalization and K-normalization in compilers?
Viewed 0 times
thewhatcompilersanddifferencebetweennormalization
Problem
Administrative normal form is a program intermediate representation in which each immediate instruction has a name. It is used in GHC and OCaml.
K-normalized form is an intermediate representation in which each instruction consists of one assignment and operation. It's used in MLKit, Min-Caml, and GoCaml.
Both A-normalization and K-normalization involve generating a let expression with a continuation.
A-normalization and K-normalization seem to be exactly the same transformation. What is the difference between them such that they deserve different names?
K-normalized form is an intermediate representation in which each instruction consists of one assignment and operation. It's used in MLKit, Min-Caml, and GoCaml.
Both A-normalization and K-normalization involve generating a let expression with a continuation.
A-normalization and K-normalization seem to be exactly the same transformation. What is the difference between them such that they deserve different names?
Solution
As far as my search-foo led me; K-Normal Form is inspired by A-Normal Form, but instrumented for use in Storage Mode Analysis, which is a static program analysis used for inferring memory mangement directives for functional programs.
The term seems to originate from the following publication:
L. Birkedal, M. Tofte, and M. Vejlstrup. From region inference to von Neumann machines via region representation inference.
A copy of the publication can at the time of writing be obtained from L.Birkedal's faculty webpage under publications.
The term seems to originate from the following publication:
L. Birkedal, M. Tofte, and M. Vejlstrup. From region inference to von Neumann machines via region representation inference.
A copy of the publication can at the time of writing be obtained from L.Birkedal's faculty webpage under publications.
Context
StackExchange Computer Science Q#100318, answer score: 3
Revisions (0)
No revisions yet.