Normalization is a way to deconstruct software constructs (data, control flow) into some kind of Lowest Common Denominator.


Triples are the most atomic form of software1.

Relation (Subject, Object)

The Atom of Software Development

Software Atoms <=> Normalization


Normalization enables automation.

Projectional Editing

Projectional Editing consists of

  1. normalizing
  2. skinning information with multiple syntaxes (See Ohm-JS examples/incremental)

See Also

  • Data Descriptors (Holt)
  • RTL (Fraser Davidson peepholing) –> gcc
  • OCG (Cordy “Orthogonal Code Generator”)
  • Triples
  • Factbases
  • Audio Mixing, DAWs (Normalization of audio).

Table of Contents

  1. Q: Is a curried function more atomic than a triple or just a special case? A curried function is {function X Subject} and can be applied to an Object. 3 items are involved, but grouped differently.