ALP User Documentation 0.7.0
Algebraic Programming User Documentation
|
Each ALP primitive, every constructor, and every destructor come with performance semantics, in addition to functional semantics.
Each ALP primitive, every constructor, and every destructor come with performance semantics, in addition to functional semantics.
Performance semantics may differ for different backends– ALP stringently mandates that backends defines them, thus imposing a significant degree of predictability on implementations of ALP, but does not significantly limit possible implementation choices.
Performance semantics includes classical asymptotic work analysis in the style of Cormen et alii, as commonly taught as part of basic computer science courses. Aside from making the reasonable (although arguably too uncommon) demand that ALP libraries must clearly document the work complexity of the primitives it defines, ALP furthermore demands such analyses for the following quantities:
For backends that allow for more than one user process, the following additional performance semantics must be defined:
Defining such performance semantics are crucial to
These advantages furthermore do not require expensive experimentation on the part of algorithm designers, users, or system architects. However, it puts a significant demand on the implementers and maintainers of ALP.