My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
Glossary  
Some crucial terms are explained here.
Featured, Phase-Requirements
Updated Jun 25, 2011 by ggr...@gmail.com

There are many terms that you come across when reading the Ωmega sources, where you'll stop and scratch your head about what they mean and why they are used. This page is intended to be an alphabetic glossary of those terms with motivation how to use them.

An important source of wisdom is also the GHC commentary, as Ωmega owes much to that project in terms of implementation guidance and concepts.

Freshness

Freshness is an important concept when dealing with sharing in the internal representation. For example constants can always be shared, but when it comes to bindable entities (like type variables etc.) any performed bindings amount to a specialization of the original data and thus (before and after) are not semantically equivalent any more.

Since bindings are (usually) tracked with an auxiliary map, a parametrized type cannot be included in a new type twice with differing parameters unless it gets freshened before each parametrization. The process of replacing the names of formals before a performed binding with a fresh set of names is called freshening and the overall concept is called freshness.

Rank-N

Zonking

Tree-like entities that contain writable references (which usually get filled-in by a unification-like process) are zonked by elimination of all references that are already filled-in. This happens in a monad that can dereference, and is basically a tree traversal that results in a copy. Usually before two trees are unified, both trees must be zonked, so that references do not get overwritten in theoriginals. Without zonking, the unification (and similar) algorithms must be explicitly designed to not overwrite references that are already filled-in and possibly to undo bindings when unification fails.

In the process of zonking, usually another optimization is performed, namely the short-circuiting of reference chains by a target.


Sign in to add a comment
Powered by Google Project Hosting