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
- Complete Environment
- Extended Environment
- Relaxed Environment
A complete environment guarantees that all exceptions will trigger as documented in this documentation.
A complete environment is good for testing.
An extended environment adds further features to the execution environment.
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.
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.
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.