Abstract
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.
Keywords
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.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
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)
Cristian, F.: Understanding fault-tolerant distributed systems. Communications of the ACM 34(2), 56–78 (1991)
De Florio, V.: A Fault-Tolerance Linguistic Structure for Distributed Applications. PhD thesis, Dept. of Elec. Eng., Univ. of Leuven, Belgium (October 2000)
De Florio, V.: Cost-effective software reliability through autonomic tuning of system resources. In: Proc. of the Applied Reliability Symposium, Europe (April 2010)
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_11
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)
De Florio, V., Blondia, C.: A survey of linguistic structures for application-level fault-tolerance. ACM Computing Surveys 2 (April 2008)
De Florio, V., Blondia, C.: Design tool to express failure detection protocols. IET Software 4(2), 119–133 (2010)
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)
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)
Deconinck, G., et al.: Stable memory in substation automation: a case study. In: Proc. of FTCS-28, Munich, Germany, pp. 452–457 (June 1998)
Deconinck, G., et al.: Integrating recovery strategies into a primary substation automation system. In: Proc. of DSN 2003 (2003)
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)
Deconinck, G., et al.: Industrial embedded HPC applications. Supercomputer 13(3–4), 23–44 (1997)
Dividend, I.: Toyota’s Electromagnetic Interference Troubles: Just the Tip of the Iceberg (February 2010), http://seekingalpha.com/article/187021-toyota-s-electromagnetic-interference-troubles-just-the-tip-of-the-iceberg
Dmitriev, S.: Language oriented programming: The next programming paradigm. OnBoard (November 2004)
Fowler, M.: Language workbenches: The killer-app for domain specific languages (2005), http://www.martinfowler.com/articles/languageWorkbench.html
Kernighan, B.W., Ritchie, D.M.: The C Programming Language, 2nd edn. Prentice-Hall, Englewood Cliffs (1988)
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)
Leeman, M., et al.: Automated dynamic memory data type implementation exploration and optimization. In: Proc. of ISVLSI 2003, Washington, DC (2003)
Lesk, M.E., Schmidt, E.: Lex – a Lexical Analyzer Generator. Technical report, Bell Laboratories, CS Technical Report No. 39 (1975)
Leveson, N.G.: Safeware: Systems Safety and Computers. Addison, London (1995)
Levine, J., et al.: Lex & YACC, 2nd edn. O’ Reilly, Sebastopol (1992)
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)
Lohmann, D., Spinczyk, O.: Developing embedded software product lines with aspectc++. In: OOPSLA 2006, New York, NY, pp. 740–742 (2006)
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)
Perry, T.S., Geppert, L.: Do portable electronics endanger flight? The evidence mounts. IEEE Spectrum 33(9), 26–33 (1996)
Simonyi, C.: Is programming a form of encryption? (2005), http://blog.intentsoft.com/intentional_software/2005/04/dummy_post_1.html
Sun, H., De Florio, V., Gui, N., Blondia, C.: Adaptation strategies for performance failure avoidance. In: Proc. of SSIRI 2009, Shanghai (July 2009)
Taylor, D.J.: at al. Redundancy in data structures: Improving software fault tolerance. IEEE Trans. on Soft. Eng. 6(6), 585–594 (1980)
Tekla, P.: Toyota’s Troubles Put EMI Back Into The Spotlight (February 2010), http://spectrum.ieee.org/tech-talk/green-tech/advanced-cars/toyotas-troubles-put-emi-back-into-the-spotlight
Tiobe. TIOBE Programming Community Index for (July 7 2010), http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Ward, M.P.: Language-oriented programming. Software—Concepts and Tools 15(4), 147–161 (1994)
Weiss, C.: Consultants Point to Electromagnetic Interference In Toyota Problems, (March 2010), http://motorcrave.com/consultants-point-to-electromagnetic-interference-in-toyota-problems/5927
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
De Florio, V., Blondia, C. (2011). Trading Off Complexity for Expressiveness in Programming Languages for Embedded Devices: Visions and Experiences. In: Kim, Th., Adeli, H., Robles, R.J., Balitanas, M. (eds) Advanced Communication and Networking. ACN 2011. Communications in Computer and Information Science, vol 199. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-23312-8_20
Download citation
DOI: https://doi.org/10.1007/978-3-642-23312-8_20
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-23311-1
Online ISBN: 978-3-642-23312-8
eBook Packages: Computer ScienceComputer Science (R0)