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
- 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 Scholar
- K. Compton, and S. Hauck, Reconfigurable Computing: a Survey of Systems and Software, ACM Computing Surveys, 2002, 34(2), pp. 171--210. Google Scholar
Digital Library
- 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 Scholar
Cross Ref
- G. Kiczales, Aspect-Oriented Programming, in ACM Computing Surveys (CSUR), 1996. 28(4es). Google Scholar
Digital Library
- REFLECT, FP7 EU Project: http://www.reflect-project.eu.Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- ACE CoSy Compiler Development System, http://www.ace.nl/compiler/cosy.htmlGoogle Scholar
- 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 Scholar
- REFLECT Consortium, LARA Programming Language Specification, version 1.0 defined as part of deliverable D4.2, Sept. 2011.Google Scholar
- 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 Scholar
Digital Library
- C. V. Lopes, D: A Language Framework for Distributed Programming. PhD thesis, College of Computer Science, Northeastern University, Nov. 1997.Google Scholar
- © Mentor Graphics, Catapult C Synthesis, http://www.mentor.com/esl/catapultGoogle Scholar
- T. Elrad, R. Filman, and A. Bader, Aspect-Oriented Programming, in Comm. of the ACM, 44(10), Oct. 2001, pp. 29--32. Google Scholar
Digital Library
- 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 Scholar
- J. Gradecki and N. Lesiecki, Mastering AspectJ: Aspect-Oriented Programming in Java. 2003, J. Wiley & Sons, Inc.. Google Scholar
Digital Library
- D. Lohmann, Olaf Spinczyk. Aspect-Oriented Programming with C++ and AspectC++. Tutorial, AOSD'2007, March 13, 2007.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
- 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 Scholar
Cross Ref
- 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 Scholar
- 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 Scholar
Digital Library
- R. Ferrer, et al., Optimizing the Exploitation of Multicore Processors and GPUs with OpenMP and OpenCL, in Proc. LCPC, 2010, pp. 215--229. Google Scholar
Digital Library
- 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 Scholar
Digital Library
Index Terms
LARA





Comments