One of the trends in computing today is to provide ever more capable hardware platforms for the implementation of modern applications. However, more capable hardware is often more complex to program. Because of this complexity, software development is a key problem and major risk that confounds developers of digital systems. Not only is the development difficult the first time the system is implemented, but also each subsequent evolution in the hardware requires restructuring and rewriting of the underlying software.Software layers and autocoding, two methods for tackling the issues of new, complex platforms, have different ways of helping developers meet the requirements of modern applications. In comparing the two methods, the separation of functionality and implementation, (for example, the separation between the description of the algorithms and the coding needed to port the algorithms to target hardware) is a significant differentiator, and autocoding proves to be the best approach.


Jump to main articles index

Download PDF