ABSTRACT
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.
- Nokia. The Road to Three Billion Subscribers: Nokia outlines strategy to reduce total cost of mobile phone ownership for consumers in new growth markets. Press Releases. June 02, 2005.Google Scholar
- Eurostat. GDP and main components-Current Prices. Retrieved August 19, 2005.Google Scholar
- VDC-Venture Development Corporation. The 2005 Embedded Software Strategic Market Intelligence Program. VIII: Embedded Systems market Statistics. Natick, MA, USA, 2006.Google Scholar
- Kan, S. H. Metrics and Models in Software Quality Engineering. Addison Wesley, 2002. Google ScholarDigital Library
- CMP Media. 2006 State of Embedded Market Survey. April 2006.Google Scholar
- Shandle, J.; Martin, G. Making Embedded Software reusable for SoCs. EEDesing, {S.l.}, March 2002. Available at http://www.eedesign.com.Google Scholar
- Douglass, B. Real-Time Design Patterns: Robust Scalable Architecture for Real-Time Systems. Boston. Addison Wesley, 2003. Google ScholarDigital Library
- Berry, G.; Gonthier, G. The Esterel Synchronous Programming Language: Design, Semantics, Implementation. Science of computer programming, vol. 19, n. 2, 1992. Pp. 87--152. Google ScholarDigital Library
- Rockstrom, A.; Saracco, R. SDL-CCITT Specification and Description Language. IEEE Transactions on Communications, vol. 30, n. 6, June 1982.Google ScholarCross Ref
- Edwards, S. A. Languages for Digital Embedded Systems. Kluver Academic Publishers, 2000. Google ScholarDigital Library
- Hudak, P. Conception, evolution, and application of functional programming languages. ACM Computing Surveys, vol. 21, n.3, September 1989. Pp. 359--411. Google ScholarDigital Library
- Fuchs, N. E. Specifications Are (Preferably) Executable. Software Engineering Journal, September 1992. Google ScholarDigital Library
- Sebesta, R. W. Concepts of Programming Languages. Addison Wesley, Boston, 2005. Google ScholarDigital Library
- Wallace, M.; Runciman, C. Extending a Functional Programming System for Embedded Applications. Software- Practice and Experience, vol. 25, n. 1, January 1995. Pp. 73--96. Google ScholarDigital Library
- Caspi, P. et al. LUSTRE: A Declarative Language for Programming Synchronous Systems. Symposium on Principles of Programming Languages, 1987. Pp. 178--188. Google ScholarDigital Library
- Armstrong, J. et al. Concurrent programming in Erlang. Prentice-Hall, 1993. Google ScholarDigital Library
- Brooks, C. et al. Heterogeneous Concurrent Modeling and Design in Java (Volume 1: Introduction to Ptolemy II). EECS Department, University of California, Berkeley, January 11, 2007.Google Scholar
- Okasaki, C. Functional Perl: Red-black trees in a functional setting. J. Functional Programming, vol. 9, n. 4, July 1999. Pp. 471--477. Google ScholarDigital Library
- Giegerich, R, Kurtz, S. A comparison of imperative and purely functional suffix tree constructions. Science of Computer Programming, vol. 25, 1995. Pp. 187--218. Google ScholarDigital Library
- Stansifer, R. Imperative versus Functional. SIGPLAN Notices, vol. 25, n. 4, November 1989. Pp. 69--72. Google ScholarDigital Library
- Wadler, P. Why no one uses functional languages. ACM Sigplan, 1999. Google ScholarDigital Library
- Carro M. et al. High-level languages for small devices: a case study. Proceedings of the CASES 2006, Seoul, Korea, 2006. Pp. 271--281. Google ScholarDigital Library
- Edwards, S. et al. Design of Embedded Systems: Formal Models, Validation, and Synthesis. Proceedings of the IEEE, vol. 85, n. 3, March 1997. Pp. 366--390.Google ScholarCross Ref
- Strom, O. et al. On the Utilization of Java Technology in Embedded Systems, Design Automation for Embedded Systems, vol. 8, n. 1, March 2003. Pp. 87--106.Google Scholar
- Nugroho, R. P. Java Sokoban. Jakarta, Indonesia, 1999. Available at http://javaboutique.internet.com/Sokoban(2006)Google Scholar
Index Terms
- Analysis of the use of declarative languages for enhanced embedded system software development
Recommendations
mruby -- Rapid Software Development for Embedded Systems
ICCSA '15: Proceedings of the 2015 15th International Conference on Computational Science and Its ApplicationsIn order to improve the development efficiency of embedded software, we have developed a programming language called mruby. We apply the object-oriented programming language Ruby to embedded system development. As compared to the interpreter of Ruby, ...
mbeddr - Extensible Languages for Embedded Software Development
ETX '14: Proceedings of the 2014 Workshop on Eclipse Technology eXchangeTodays' embedded systems are highly diverse, often very complex and many domains are safety-critical, where hardware or software failures may cost lives or a lot of money. An adequate language and tool can ease the development of such systems in many ...
System level modeling of real-time embedded software
ICCD '12: Proceedings of the 2012 IEEE 30th International Conference on Computer Design (ICCD 2012)This paper describes a methodology for developing abstract and executable system-level model in SystemC of real-time embedded software, targeted to an RTOS. Our objective is to reuse as much of the software as possible to minimize model development ...
Comments