Skip to main content
Log in

A DSL for specifying run-time adaptations for embedded systems: an application to vehicle stereo navigation

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

Abstract

The traditional approach for specifying adaptive behavior in embedded applications requires developers to engage in error-prone programming tasks. This results in long design cycles and in the inherent inability to explore and evaluate a wide variety of alternative adaptation behaviors, critical for systems exposed to dynamic operational and situational environments. In this paper, we introduce a domain-specific language (DSL) for specifying and implementing run-time adaptable application behavior. We illustrate our approach using a real-life stereo navigation application as a case study, highlighting the impact and benefits of dynamically adapting algorithm parameters. The experiments reveal our approach effective, as such run-time adaptations are easily specified in a higher level by the DSL, and thus at a lower programming effort than when using a general-purpose language such as C.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17

Similar content being viewed by others

References

  1. Aboubekr S, Delaval G, Rutten E (2009) A programming language for adaptation control: case study. SIGBED Rev 6(3):11:1–11:5

    Article  Google Scholar 

  2. Allen FE (1970) Control flow analysis. In: Proceedings of a Symposium on Compiler Optimization. ACM, USA, pp 1–19

  3. Apel S, Leich T, Rosenmüller M, Saake G (2005) Generative programming and component engineering, Lecture notes in computer science. FeatureC++: On the symbiosis of feature-oriented and aspect-oriented programming. Springer, New York, pp 125–140

    Google Scholar 

  4. Appeltauer M, Hirschfeld R, Haupt M, Masuhara H (2011) ContextJ: Context-oriented programming with Java. Inf Media Technol 6(2):399–419

    Google Scholar 

  5. Arnold K, Gosling J, Holmes D (2000) The Java programming language, 3rd edn. Addison-Wesley, Longman Publishing Co., Inc., Boston, MA, USA

  6. Baldauf M, Dustdar S, Rosenberg F (2007) A survey on context-aware systems. Int J Ad Hoc Ubiquitous Comput 2(4):263–277

    Article  Google Scholar 

  7. Bell J, Bellegarde F, Hook J, Kieburtz RB, Kotov A, Lewis J, McKinney L, Oliva DP, Sheard T, Tong L, Walton L, Zhou T (1994) Software Design for Reliability and Reuse: A Proof-of-Concept Demonstration. In: Proceedings of the Conference on TRI-Ada. ACM, USA, pp 396–404

  8. Bishop J (1994) Languages for configuration programming: a comparison. Computer Science Department, University of Pretoria. Tech rep

  9. Bobrow DG, Goldstein IP (1980) Representing design alternatives. In: Proceedings of the Conference on Artificial Intelligence and the Simulation of Behavior, Amsterdam

  10. Broemmer D, Mac F (2002) J2EE best practices: Java design patterns, automation, and performance, 1st edn. Wiley, USA

    Google Scholar 

  11. Campwood Software (last visited in June 2013) SourceMonitor Version 3.4. http://www.campwoodsw.com/sourcemonitor.html

  12. van Deursen A, Klint P, Visser J (2000) Domain-specific languages: an annotated bibliography. ACM SIGPLAN Not 35(6):26–36

    Article  Google Scholar 

  13. Ensink B, Stanley J, Adve V (2003) Program control language: a programming language for adaptive distributed applications. J Parallel Distrib Comput 63(11):1082–1104

    Article  MATH  Google Scholar 

  14. Figo D, Diniz PC, Ferreira DR, Cardoso JMP (2010) Preprocessing techniques for context recognition from accelerometer data. Pers Ubiquitous Comput 14(7):645–662

    Article  Google Scholar 

  15. Fischler MA, Bolles RC (1981) Random sample consensus: a paradigm for model fitting with applications to image analysis and automated cartography. Commun ACM 24(6):381–395

    Article  MathSciNet  Google Scholar 

  16. Floch J, Hallsteinsen S, Stav E, Eliassen F, Lund K, Gjorven E (2006) Using architecture models for runtime adaptability. IEEE Softw 23(2):62–70

    Article  Google Scholar 

  17. Garlan D, Cheng SW, Huang AC, Schmerl B, Steenkiste P (2004) Rainbow: architecture-based self-adaptation with reusable infrastructure. IEEE Comput 37(10):46–54

    Article  Google Scholar 

  18. GNU (last visited in January 2013) GCC—The GNU compiler collection. http://gcc.gnu.org/

  19. González S, Cardozo N, Mens K, Cádiz A, Libbrecht JC, Goffaux J (2010) Subjective-C: Bringing context to mobile platform programming. In: Proceedings of the 3rd International Conference on Software Language Engineering (SLE’10), vol 6563. Springer, LNCS, New york, pp 246–265

  20. Harris C, Stephens M (1988) A combined corner and edge detector. In: Proceedings of the 4th Alvey Vision Conference. Manchester, UK, pp 147–151

  21. Hopcroft JE, Ullman JD (1979) Introduction to automata theory, languages, and computation, 1st edn. Addison-Wesley, Boston. ISBN: 81-7808-347-7

  22. Kamina T, Aotani T, Masuhara H (2011) EventCJ: A context-oriented programming language with declarative event-based context transition. In: Proceedings of the 10th International Conference on Aspect-Oriented Software Development (AOSD’11). ACM, USA, pp 253–264

  23. van Kasteren T, Noulas A, Englebienne G, Kröse B (2008) Accurate activity recognition in a home setting. In: Proceedings of the 10th International Conference on Ubiquitous Computing (UbiComp ’08). ACM, USA, pp 1–9

  24. Kell S (2008) A survey of practical software adaptation techniques. J Univers Comput Sci 14(13):2110–2157

    Google Scholar 

  25. Kiczales G, Lamping J, Mendhekar A, Maeda C, Lopes C, Marc Loingtier J, Irwin J (1997) Aspect-oriented programming. In: Proceedings of the 11th European Conference on Object-Oriented Programming (ECOOP’97). Springer, New York, pp 220–242

  26. Kiczales G, Hilsdale E, Hugunin J, Kersten M, Palm J, Griswold W (2001) An overview of AspectJ. In: Proceedings of the 15th European Conference on Object-Oriented Programming (ECOOP’01), LNCS, vol 2072. Springer, New York, pp 327–354

  27. Marwedel P (2010) Embedded system design: embedded systems foundations of cyber-physical systems. Embedded systems. Springer, New York

    Google Scholar 

  28. McConnell S (2004) Code complete. Microsoft Press, Redmond (DV-Professional)

    Google Scholar 

  29. Mernik M, Heering J, Sloane AM (2005) When and how to develop domain-specific languages. ACM Comput Surv 37:316–344

    Article  Google Scholar 

  30. Mikalsen M, Floch J, Paspallis N, Papadopoulos G, Ruiz P (2006) Putting context in context: the role and design of context management in a mobility and adaptation enabling middleware. In: Proceedings of the 7th International Conference on Mobile Data Management (MDM’06), pp 76–83

  31. Oracle (last visited in January 2013) Java programming language compiler. http://docs.oracle.com/javase/1.4.2/docs/tooldocs/windows/javac.html

  32. REFLECT Consortium (2009a) Rendering FPGAs to multi-core embedded computing (REFLECT)—technical report about application requirements for reconfigurability and hardware templates. Tech. rep., Deliverable D1.5—FP7 THEME ICT-2009-4

  33. REFLECT Consortium (2009b) Rendering FPGAs to multi-core embedded computing (REFLECT)—technical report of applications delivered by Honeywell. Tech. rep., Deliverable D1.2 - FP7 THEME ICT-2009-4

  34. REFLECT Consortium (2009c) Rendering FPGAs to multi-core embedded computing (REFLECT)—technical report on generic architectures and reconfigurable schemes. Tech. rep., Deliverable D2.4—FP7 THEME ICT-2009-4

  35. Sánchez P, Jiménez M, Rosique F, Álvarez B, Iborra A (2011) A framework for developing home automation systems: from requirements to code. J Syst Softw Elsevier 84(6):1008–1021

    Article  Google Scholar 

  36. Santos AC, Diniz PC, Cardoso JM, Ferreira DR (2011) A domain-specific language for the specification of adaptable context inference. In: Proceedings of the IEEE/IFIP International Conference on Embedded and Ubiquitous Computing (EUC’11), IEEE Computer Society, pp 268–273

  37. Santos AC, Cardoso JMP, Diniz PC, Ferreira DR (2013) Specifying adaptations through a DSL with an application to mobile robot navigation. In: Leal JP, Rocha R, Simões A (eds) 2nd Symposium on languages, applications and technologies, Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik, Dagstuhl, Germany, OpenAccess Series in Informatics (OASIcs), vol 29, pp 219–234

  38. Spinellis D (2001) Notable design patterns for domain-specific languages. J Syst Softw 56(1):91–99

    Article  Google Scholar 

  39. Spinellis D, Guruprasad V (1997) Lightweight languages as software engineering tools. In: Proceedings of the Conference on domain-specific languages on conference on domain-specific languages (DSL’97), USENIX, pp 6–6

  40. Tartler R, Lohmann D, Scheler F, Spinczyk O (2010) AspectC++: an integrated approach for static and dynamic adaptation of system software. Knowl Based Syst 23(7):704–720

    Article  Google Scholar 

  41. Zhuang Z, Kim KH, Singh JP (2010) Improving energy efficiency of location sensing on smartphones. In: Proceedings of the 8th International Conference on Mobile Systems, Applications, and Services (MobiSys’10). ACM, USA, pp 315–330

Download references

Acknowledgments

The work presented was partially supported by Fundação para a Ciência e a Tecnologia (FCT) under grant SFRH/BD/47409/2008. Cardoso, Diniz, and Petrov acknowledge the partial support by the European Framework Programme 7 (FP7) under contract No. 248976. Any views expressed in this work are those of the author(s) and do not necessarily reflect the views of the European Commission. The authors would also like to thank Ali Azarian for his help with the FPGA setup used for experimental evaluation.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to André C. Santos.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Santos, A.C., Cardoso, J.M.P., Diniz, P.C. et al. A DSL for specifying run-time adaptations for embedded systems: an application to vehicle stereo navigation. J Supercomput 70, 1218–1248 (2014). https://doi.org/10.1007/s11227-014-1192-z

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-014-1192-z

Keywords

Navigation