LUSTRE: a declarative language for real-time programming
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Conception, evolution, and application of functional programming languages
ACM Computing Surveys (CSUR)
Specifications are (preferably) executable
Software Engineering Journal
The ESTEREL synchronous programming language: design, semantics, implementation
Science of Computer Programming
Extending a functional programming system for embedded applications
Software—Practice & Experience
A comparison of imperative and purely functional suffix tree constructions
ESOP '94 Selected papers of ESOP '94, the 5th European symposium on Programming
Why no one uses functional languages
ACM SIGPLAN Notices
Languages for Digital Embedded Systems
Languages for Digital Embedded Systems
Real-Time Design Patterns: Robust Scalable Architecture for Real-Time Systems
Real-Time Design Patterns: Robust Scalable Architecture for Real-Time Systems
Metrics and Models in Software Quality Engineering
Metrics and Models in Software Quality Engineering
ERLANG for Concurrent Programming
ERLANG for Concurrent Programming
Red-black trees in a functional setting
Journal of Functional Programming
ACM SIGPLAN Notices
Concepts Programmng Languages (7th Edition)
Concepts Programmng Languages (7th Edition)
High-level languages for small devices: a case study
CASES '06 Proceedings of the 2006 international conference on Compilers, architecture and synthesis for embedded systems
Hi-index | 0.00 |
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.