A normalization reduces a program to a program in a sub-language, with the purpose of decreasing its syntactic complexity. Desugaring is a kind of normalization in which some of the constructs (syntactic sugar) of a language are eliminated by translating them into more fundamental contructs. For example, the Haskell language definition describes for many constructs how they can be desugared to a kernel language. Other examples are module flattening and the definition of EBNF constructs in pure BNF as is done for example in the SDFII normalizer . Simplification is a more general kind of normalization in which a program is reduced to a normal (standard) form, without necessarily removing simplified constructs. For example, consider canonicalization of intermediate representation and algebraic simplification of expressions. Note that normal form does not necessarily correspond to being a normal form with respect to a set of rewrite rules.

  • ProgramSimplification?
  • ProgramDesugaring?
  • AspectWeaving?


CategoryTransformation | -- EelcoVisser - 03 May 2001

Revision: r1.3 - 28 Feb 2002 - 23:14 - EelcoVisser
Transform > ProgramNormalization
Copyright © 1999-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback