HiveBrain v1.2.0
Get Started
← Back to all entries
gotchaMinor

What is the difference between A-normalization and K-normalization in compilers?

Submitted by: @import:stackexchange-cs··
0
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?

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.

Context

StackExchange Computer Science Q#100318, answer score: 3

Revisions (0)

No revisions yet.