Execution Environments

An execution environment is a an environment for program execution. There are several aspects of the evironment that describes it:

  • Program behaves the same with higher precision decimals
  • Exceptions trigger correctly
  • Memory is deallocated

Types

  • Complete Environment
  • Extended Environment
  • Relaxed Environment

Complete environments

A complete environment guarantees that all exceptions will trigger as documented in this documentation.

A complete environment is good for testing.

Extended environments

An extended environment adds further features to the execution environment.

Higher precision

An environment can use decimals with more than 15 decimal digits precision. This allows testing that a function works the same using higher precision, which is a requirement of the ProgsBase system.

Deallocation checks

An environment can keep track of allocations and deallocations, so that the difference between what has been allocated and what has been deallocated can be checked.

Relaxed environments

A relaxed environment relaxes some of the requirement of a complete environment. A requirement of the relaxed environment is: If a program works on a complete environment (or even an extended environment) then it must work on a relaxed environment.

Many common environments are relaxed. Two examples are the x86-series of intel processors and the Java Virtual Machine (JVM).

See relaxations for more information.