10.1145/2162049.2162071acmconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedings
research-article

LARA: an aspect-oriented programming language for embedded systems

ABSTRACT

The development of applications for high-performance embedded systems is typically a long and error-prone process. In addition to the required functions, developers must consider various and often conflicting non-functional application requirements such as performance and energy efficiency. The complexity of this process is exacerbated by the multitude of target architectures and the associated retargetable mapping tools. This paper introduces an As-pect-Oriented Programming (AOP) approach that conveys domain knowledge and non-functional requirements to optimizers and mapping tools. We describe a novel AOP language, LARA, which allows the specification of compi-lation strategies to enable efficient generation of software code and hardware cores for alternative target architectures. We illustrate the use of LARA for code instrumentation and analysis, and for guiding the application of compiler and hardware synthesis optimizations. An important LARA feature is its capability to deal with different join points, action models, and attributes, and to generate an aspect intermediate representation. We present examples of our aspect-oriented hardware/software design flow for mapping real-life application codes to embedded platforms based on Field Programmable Gate Array (FPGA) technology.

References

  1. Y. Lam, J. Coutinho, W. Luk, and P. Leong, Integrated Hard-ware/Software Codesign for Heterogeneous Computing Systems, in Proc. of the South. Programmable Logic Conf., 2008, pp. 217--220.Google ScholarGoogle Scholar
  2. K. Compton, and S. Hauck, Reconfigurable Computing: a Survey of Systems and Software, ACM Computing Surveys, 2002, 34(2), pp. 171--210. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. T. Todman, et al., Reconfigurable Computing: Architectures and Design Methods, IEE Proc. In Computing and Digital Techniques, Vol. 152, No. 2, March 2005, pp. 193--207.Google ScholarGoogle ScholarCross RefCross Ref
  4. G. Kiczales, Aspect-Oriented Programming, in ACM Computing Surveys (CSUR), 1996. 28(4es). Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. REFLECT, FP7 EU Project: http://www.reflect-project.eu.Google ScholarGoogle Scholar
  6. J. M. P. Cardoso, et al., REFLECT: Rendering FPGAs to Multi-Core Embedded Computing, book chapter in Reconfigurable Computing: From FPGAs to Hardware/Software Codesign, J. M. P. Cardoso and M. Huebner (eds.), Springer, Aug., 2011, pp. 261--289.Google ScholarGoogle Scholar
  7. J. M. P. Cardoso, et al., A New Approach to Control and Guide the Mapping of Computations to FPGAs, in Proc. Int'l Conf. Engineering of Reconfigurable Systems and Algorithms (ERSA'11), July, 2011, CSREA Press, pp. 231--240.Google ScholarGoogle Scholar
  8. T. Carvalho, A Meta-Language and Framework for Aspect-Oriented Programming, Informatics and Computing Eng. MSc Thesis, Univ. of Porto, Faculty of Eng. (FEUP), Porto, Portugal, July 2011.Google ScholarGoogle Scholar
  9. W. Luk, et al., A High-Level Compilation Toolchain for Heterogeneous Systems, in Proc. IEEE Int'l SOC Conf. (SOCC'09), Sept. 2009, pp. 9--18.Google ScholarGoogle Scholar
  10. ACE CoSy Compiler Development System, http://www.ace.nl/compiler/cosy.htmlGoogle ScholarGoogle Scholar
  11. R. Filman, and D. Friedman, Aspect-oriented programming is quantification and obliviousness. In Workshop on Advanced Separation of Concerns at OOPSLA'00, Oct. 2000.Google ScholarGoogle Scholar
  12. REFLECT Consortium, LARA Programming Language Specification, version 1.0 defined as part of deliverable D4.2, Sept. 2011.Google ScholarGoogle Scholar
  13. E. Figueiredo, et al., On the Maintainability of Aspect-Oriented Software: A Concern-Oriented Measurement Framework, in Proc. 12th European Conf. on Software Maintenance and Reengineering, IEEE Computer Society, 2008, pp. 183--192. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. C. V. Lopes, D: A Language Framework for Distributed Programming. PhD thesis, College of Computer Science, Northeastern University, Nov. 1997.Google ScholarGoogle Scholar
  15. © Mentor Graphics, Catapult C Synthesis, http://www.mentor.com/esl/catapultGoogle ScholarGoogle Scholar
  16. T. Elrad, R. Filman, and A. Bader, Aspect-Oriented Programming, in Comm. of the ACM, 44(10), Oct. 2001, pp. 29--32. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. G. Kiczales, et al., Aspect Oriented Programming, in Proc. European Conf. on Object-Oriented Programming (ECOOP'97), Finland. Springer-Verlag LNCS 1241. June 1997.Google ScholarGoogle Scholar
  18. J. Gradecki and N. Lesiecki, Mastering AspectJ: Aspect-Oriented Programming in Java. 2003, J. Wiley & Sons, Inc.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. D. Lohmann, Olaf Spinczyk. Aspect-Oriented Programming with C++ and AspectC++. Tutorial, AOSD'2007, March 13, 2007.Google ScholarGoogle Scholar
  20. O. Spinczyk, A. Gal, W. Schröder-Preikschat. AspectC++: An Aspect-Oriented Extension to the C++ Programming Language. in Proc. 40th Int'l Conf. on Tools Pacific: Objects for internet, mobile and embedded applications, 2002, pp. 53--60. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. B. Harbulot, and J. R. Gurd. A join point for loops in AspectJ. In Proc. 5th Int'l Conf. on Aspect-Oriented Software Development (AOSD '06). ACM, NY, USA, 2006, pp. 63--74. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. M. Poggi. @AspectJ - An Extension to the AspectJ Join Point Selection Mechanism to Support @Java Annotation Meta-Facility. Master thesis (in Italian), Università di Genova, Oct. 2009.Google ScholarGoogle Scholar
  23. T. Aslam, J. Doherty, A. Dubrau, and L. Hendren. AspectMatlab: An Aspect-Oriented Scientific Programming Language, in Proc. 9th Int'l Conference on Aspect-Oriented Software Development (AOSD'10). ACM, New York, NY, USA, 2010, pp. 181--192. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. J. M. P. Cardoso, J. Fernandes, and M. Monteiro, Adding Aspect-Oriented Features to MATLAB, in SPLAT! 2006, Software Engineering Properties of Languages and Aspect Technologies, Workshop affiliated with AOSD 2006, March 2006. Germany.Google ScholarGoogle Scholar
  25. J. M. P. Cardoso, et al., A Domain-Specific Aspect Language for Transforming MATLAB Programs, in Domain-Specific Aspect Language Workshop (DSAL'2010), part of AOSD'10, March 2010.Google ScholarGoogle Scholar
  26. M. Eichberg, M. Mezini, and K. Ostermann, Pointcuts as Functional Queries, in Programming Languages and Systems, W.-N. Chin (Ed.), Springer Berlin/Heidelberg, 2004, pp. 366--381.Google ScholarGoogle ScholarCross RefCross Ref
  27. V. Alves, et al., From Conditional Compilation to Aspects: A Case Study in Software Product Lines Migration, In: Aspect-Oriented Product Line Engineering (AOPLE'06), Workshop of the 5th Int'l Conf. on Generative Programming and Component Engineering (GPCE'06), ACM, 2006.Google ScholarGoogle Scholar
  28. B. Adams, W. Meuter, H. Tromp, and A. Hassan, Can we refactor conditional compilation into aspects?, in Proc. 8th ACM Int'l Conf. on Aspect-Oriented Soft. Development, 2009, pp. 243--254. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. R. Ferrer, et al., Optimizing the Exploitation of Multicore Processors and GPUs with OpenMP and OpenCL, in Proc. LCPC, 2010, pp. 215--229. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. V. Alves, et al., Extracting and Evolving Code in Product Lines with Aspect-Oriented Programming, in Trans. on Aspect-Oriented Software Development IV, A. Rashid, M. Aksit (Eds.), Springer Berlin / Heidelberg, 2007, pp. 117--142. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. LARA

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!