Static

Contents


Modules

Modules suitable as components have a boundary, such that all their dependencies are explicited there.
A proper module boundary can only be statically defined: a component must be defined prior to its use.
This has nothing to do with the checking of the conditions expressed at the boundary... as long as this checking never fails.

Dependencies must be minimal and explicit.
Explicit is synonymous to statically defined.

Components: guarantee a deterministic behaviour.
Offer no weaker guarantee than what would be achievable with lower level code.

Some definitions

Module at Merriam-Webster:

Modular at Merriam-Webster:


Static model of the world

What we express are our assumptions concerning the world -maybe in order to enrich or modify them. Anyway, they are a priori to (even if the result of) the experience (e.g. the execution of the program).


Explicit model

We make our assumptions explicit and model them as context trees, so as to deal with breakdowns by switching the context, backwards towards the root of the tree, where our assumptions are less specific.

This is close to the philosophy of exceptions.


Support for static semantics requires support for genericity

Posting on 1997/05/16 to comp.lang.c++ about Genericity vs polymorphism.


Reuse,
C++ ToC
Marc Girod
Last modified: Tue Mar 20 10:41:56 EET 2001