Software development for embedded systems is traditionally done in low level languages such as C or assembler because that gives the programmer control over available hardware resources. Vast amounts of effort is spent on porting or developing new software for each new generation of a product as a consequence of that. The effort includes the work necessary for utilizing the extra features provided by the new generation of hardware. Development effort is considerable but still often pales in comparison to the required testing effort to ensure that the products work as intended once the software is constructed.

The original goals of the Feldspar project were: