Trading Off Complexity for Expressiveness in Programming Languages for Embedded Devices: Visions and Experiences

  • Vincenzo De Florio
  • Chris Blondia
Conference paper
Part of the Communications in Computer and Information Science book series (CCIS, volume 199)


When programming resource-scarce embedded smart devices the designer requires both the low-level system programming features of a language such as C and higher level capability typical of a language like Java. The choice of a particular language often implies trade offs between conflicting design goals such as performance, costs, time-to-market, and overheads. The large variety of languages, virtual machines, and translators provides the designer with a dense trade off space, ranging from minimalistic to rich full-fledged approaches, but once a choice is made it is often difficult and tricky for the designer to revise it. In this work we propose a different approach based on the principles of language-oriented programming. A system of light-weighted and modular extensions is proposed as a method to adaptively reshape the target programming language as needed, adding only those application layer features that match the current design goals. By doing so complexity is made transparent, but not hidden: While the programmer can benefit from higher level constructs, the designer and the deployer can deal with modular building blocks each characterized by a certain algorithmic complexity and therefore each accountable for a given share of the overhead. As a result the designer is provided with finer control on the amount of computing resources that are consumed by the run-time executive of the chosen programming language.


Virtual Machine Software Product Line Natural Language Expression Posix Thread High Level Construct 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Coady, Y., et al.: Using aspectc to improve the modularity of path-specific customization in operating system code. In: Proc. of FSE-9, pp. 88–98 (2001)Google Scholar
  2. 2.
    Cristian, F.: Understanding fault-tolerant distributed systems. Communications of the ACM 34(2), 56–78 (1991)CrossRefGoogle Scholar
  3. 3.
    De Florio, V.: A Fault-Tolerance Linguistic Structure for Distributed Applications. PhD thesis, Dept. of Elec. Eng., Univ. of Leuven, Belgium (October 2000)Google Scholar
  4. 4.
    De Florio, V.: Cost-effective software reliability through autonomic tuning of system resources. In: Proc. of the Applied Reliability Symposium, Europe (April 2010)Google Scholar
  5. 5.
    De Florio, V.: Software assumptions failure tolerance: Role, strategies, and visions. In: Casimiro, A., de Lemos, R., Gacek, C. (eds.) Architecting Dependable Systems VII. LNCS, vol. 6420, pp. 249–272. Springer, Heidelberg (2010), doi:10.1007/978-3-642-17245-8_11CrossRefGoogle Scholar
  6. 6.
    De Florio, V., Blondia, C.: Reflective and refractive variables: A model for effective and maintainable adaptive-and-dependable software. In: Proc. of SEAA 2007, Lübeck, Germany (August 2007)Google Scholar
  7. 7.
    De Florio, V., Blondia, C.: A survey of linguistic structures for application-level fault-tolerance. ACM Computing Surveys 2 (April 2008)Google Scholar
  8. 8.
    De Florio, V., Blondia, C.: Design tool to express failure detection protocols. IET Software 4(2), 119–133 (2010)CrossRefGoogle Scholar
  9. 9.
    De Florio, V., Donatelli, S., Dondossola, G.: Flexible development of dependability services: An experience derived from energy automation systems. In: Proc. of ECBS 2002, Lund, Sweden. IEEE Comp. Soc. Press, Los Alamitos (2002)Google Scholar
  10. 10.
    De Win, B., Goovaerts, T., Joosen, W., Philippaerts, P., Piessens, F., Younan, Y.: Chapter Security Middleware for Mobile Applications. In: Middleware for Network Eccentric and Mobile Applications, pp. 265–284. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  11. 11.
    Deconinck, G., et al.: Stable memory in substation automation: a case study. In: Proc. of FTCS-28, Munich, Germany, pp. 452–457 (June 1998)Google Scholar
  12. 12.
    Deconinck, G., et al.: Integrating recovery strategies into a primary substation automation system. In: Proc. of DSN 2003 (2003)Google Scholar
  13. 13.
    Deconinck, G., et al.: A software library, a control backbone and user-specified recovery strategies to enhance the dependability of embedded systems. In: Proc. of Euromicro 1999, Milan, Italy, vol. 2, pp. 98–104 (September 1999)Google Scholar
  14. 14.
    Deconinck, G., et al.: Industrial embedded HPC applications. Supercomputer 13(3–4), 23–44 (1997)Google Scholar
  15. 15.
    Dividend, I.: Toyota’s Electromagnetic Interference Troubles: Just the Tip of the Iceberg (February 2010),
  16. 16.
    Dmitriev, S.: Language oriented programming: The next programming paradigm. OnBoard (November 2004)Google Scholar
  17. 17.
    Fowler, M.: Language workbenches: The killer-app for domain specific languages (2005),
  18. 18.
    Kernighan, B.W., Ritchie, D.M.: The C Programming Language, 2nd edn. Prentice-Hall, Englewood Cliffs (1988)zbMATHGoogle Scholar
  19. 19.
    Kohler, E., Morris, R., Chen, B., Jannotti, J., Kaashoek, M.F.: The click modular router. ACM Transactions on Computer Systems 18(3), 263–297 (2000)CrossRefGoogle Scholar
  20. 20.
    Leeman, M., et al.: Automated dynamic memory data type implementation exploration and optimization. In: Proc. of ISVLSI 2003, Washington, DC (2003)Google Scholar
  21. 21.
    Lesk, M.E., Schmidt, E.: Lex – a Lexical Analyzer Generator. Technical report, Bell Laboratories, CS Technical Report No. 39 (1975)Google Scholar
  22. 22.
    Leveson, N.G.: Safeware: Systems Safety and Computers. Addison, London (1995)Google Scholar
  23. 23.
    Levine, J., et al.: Lex & YACC, 2nd edn. O’ Reilly, Sebastopol (1992)Google Scholar
  24. 24.
    Lippert, M., Videira Lopes, C.: A study on exception detection and handling using aspect-oriented programming. In: Proc. of ICSE 2000, Limmerick, Ireland (June 2000)Google Scholar
  25. 25.
    Lohmann, D., Spinczyk, O.: Developing embedded software product lines with aspectc++. In: OOPSLA 2006, New York, NY, pp. 740–742 (2006)Google Scholar
  26. 26.
    Nagy, I.A., van, R.E., van der, D.P.: An overview of mirjam and weavec. In: Ideals: Evolvability of Software-Intensive High-Tech Systems, pp. 69–86. Embedded Systems Institute, Eindhoven (2007)Google Scholar
  27. 27.
    Perry, T.S., Geppert, L.: Do portable electronics endanger flight? The evidence mounts. IEEE Spectrum 33(9), 26–33 (1996)CrossRefGoogle Scholar
  28. 28.
    Simonyi, C.: Is programming a form of encryption? (2005),
  29. 29.
    Sun, H., De Florio, V., Gui, N., Blondia, C.: Adaptation strategies for performance failure avoidance. In: Proc. of SSIRI 2009, Shanghai (July 2009)Google Scholar
  30. 30.
    Taylor, D.J.: at al. Redundancy in data structures: Improving software fault tolerance. IEEE Trans. on Soft. Eng. 6(6), 585–594 (1980)CrossRefzbMATHGoogle Scholar
  31. 31.
    Tekla, P.: Toyota’s Troubles Put EMI Back Into The Spotlight (February 2010),
  32. 32.
    Tiobe. TIOBE Programming Community Index for (July 7 2010),
  33. 33.
    Ward, M.P.: Language-oriented programming. Software—Concepts and Tools 15(4), 147–161 (1994)Google Scholar
  34. 34.
    Weiss, C.: Consultants Point to Electromagnetic Interference In Toyota Problems, (March 2010),

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Vincenzo De Florio
    • 1
    • 2
  • Chris Blondia
    • 1
    • 2
  1. 1.Department of Mathematics and Computer Science Performance Analysis of Telecommunication Systems groupUniversity of AntwerpAntwerpBelgium
  2. 2.Interdisciplinary Institute for Broadband Technology (IBBT)University of AntwerpGhent-LedebergBelgium

Personalised recommendations