Analysis of the use of declarative languages for enhanced embedded system software development
Emilena Specht, Ricardo Miotto Redin, Luigi Carro, Luís C. Lamb, Érika Cota, Flávio Rech Wagner · 2007
With the increased demand for programmability in embedded applications, the pressure for producing high performance software in a timely fashion has grown over the years. For this reason, declarative languages, as they provide more abstraction than traditional languages like Java, could be used to code embedded system applications. In this paper we present comparative results of the use of declarative languages to describe embedded applications. We designed the MP3*, an embedded application containing the IMDCT algorithm (an essential part of an MP3 player) together with an Address Book and Sokoban and Tic-tac-toe games. We coded all applications in Ocaml and Prolog to analyze the resulting abstraction and performance, and then compared them to the Java equivalent codes. For some applications, a comparison with a language that is especially oriented for embedded systems was also provided. The main objective of this study is the analysis of the abstraction level achieved with the shift from the imperative programming paradigm to the declarative paradigm, considering its impact in terms of performance and memory in the embedded systems domain.