Abstract:
The growing complexity of embedded systems necessitates a new approach to their design. Increasingly, embedded systems are being asked to perform many different functions concurrently. These functionalities each require different design approaches to model them effectively. However, these approaches must all interact with one another in the overall system. This creates additional overhead in the interaction between these design approaches. In addition, modern embedded systems are expected to run in distributed, heterogeneous hardware environments. Any tool that allows full specification of the overall system must be able to support abstraction of the hardware to a higher level concurrency model. Conquer is a new system-level language which supports multiple Models of Computation. By utilising different Models of Computation (MoCs) a system designer can effectively model heterogeneous systems. However, traditional tools generally only allow the realisation of a single MoC. Conquer aims to remove this limitation by providing a language in which multiple MoCs can be implemented and can interact seamlessly with one another. Additionally, Conquer is built upon rigorous mathematical foundations which open the door to future formal verification of the language. The Conquer language is inspired by several earlier languages. It utilises the concepts from these languages, whilst providing improvements over them. The prototype Conquer implementation provides a compiler which generates size-efficient object code and can be extended to support multiple platforms. There is also an extensible run-time framework which provides full support for the distribution of Conquer programs. This distribution is loosely coupled to the high level program, meaning that programs can be fully simulated before the hardware platform is available. The results of benchmarking this new language against its predecessor show that the compilation approaches used have provided gains in both object code size and compile time performance. Run-time performance has remained almost unchanged. These results indicate that Conquer provides an efficient platform for the composition of multi-MoC systems.