Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/2162049.2162071acmconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
research-article

LARA: an aspect-oriented programming language for embedded systems

Published: 25 March 2012 Publication History

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

Cited By

View all
  • (2023)A Chisel Framework for Flexible Design Space Exploration through a Functional ApproachACM Transactions on Design Automation of Electronic Systems10.1145/359076928:4(1-31)Online publication date: 5-Apr-2023
  • (2023)Accelerating Image Processing Using Reduced Precision Calculation Convolution EnginesJournal of Signal Processing Systems10.1007/s11265-023-01869-595:9(1115-1126)Online publication date: 9-May-2023
  • (2022)SecSharp: Towards Efficient Trusted Execution in Managed Languages (Work in Progress)Proceedings of the 19th International Conference on Managed Programming Languages and Runtimes10.1145/3546918.3546922(119-127)Online publication date: 14-Sep-2022
  • Show More Cited By

Index Terms

  1. LARA: an aspect-oriented programming language for embedded systems

      Recommendations

      Comments

      Please enable JavaScript to view thecomments powered by Disqus.

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      AOSD '12: Proceedings of the 11th annual international conference on Aspect-oriented Software Development
      March 2012
      286 pages
      ISBN:9781450310925
      DOI:10.1145/2162049
      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Sponsors

      In-Cooperation

      • AOSA: Aspect-Oriented Software Association

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 25 March 2012

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. FPGAs
      2. aspect-oriented programming
      3. compilers
      4. domain-specific languages
      5. embedded systems
      6. reconfigurable computing

      Qualifiers

      • Research-article

      Conference

      AOSD '12
      AOSD '12: Aspect-oriented Software Development
      March 25 - 30, 2012
      Potsdam, Germany

      Acceptance Rates

      AOSD '12 Paper Acceptance Rate 20 of 79 submissions, 25%;
      Overall Acceptance Rate 41 of 139 submissions, 29%

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)18
      • Downloads (Last 6 weeks)1
      Reflects downloads up to 05 Feb 2025

      Other Metrics

      Citations

      Cited By

      View all
      • (2023)A Chisel Framework for Flexible Design Space Exploration through a Functional ApproachACM Transactions on Design Automation of Electronic Systems10.1145/359076928:4(1-31)Online publication date: 5-Apr-2023
      • (2023)Accelerating Image Processing Using Reduced Precision Calculation Convolution EnginesJournal of Signal Processing Systems10.1007/s11265-023-01869-595:9(1115-1126)Online publication date: 9-May-2023
      • (2022)SecSharp: Towards Efficient Trusted Execution in Managed Languages (Work in Progress)Proceedings of the 19th International Conference on Managed Programming Languages and Runtimes10.1145/3546918.3546922(119-127)Online publication date: 14-Sep-2022
      • (2022)Bridging the gap between source code and high-level concepts in static code analysisProceedings of the 37th ACM/SIGAPP Symposium on Applied Computing10.1145/3477314.3508371(1615-1618)Online publication date: 25-Apr-2022
      • (2022)On language-agnostic abstract-syntax treesProceedings of the 37th ACM/SIGAPP Symposium on Applied Computing10.1145/3477314.3506962(1619-1625)Online publication date: 25-Apr-2022
      • (2022)Pegasus: Performance Engineering for Software Applications Targeting HPC SystemsIEEE Transactions on Software Engineering10.1109/TSE.2020.300125748:3(732-754)Online publication date: 1-Mar-2022
      • (2022)Advancing Static Code Analysis With Language-Agnostic Component IdentificationIEEE Access10.1109/ACCESS.2022.316048510(30743-30761)Online publication date: 2022
      • (2021)Enhancing High-Level Synthesis Using a Meta-Programming ApproachIEEE Transactions on Computers10.1109/TC.2021.309642970:12(2043-2055)Online publication date: 1-Dec-2021
      • (2020)Artisan: a Meta-Programming Approach For Codifying Optimisation Strategies2020 IEEE 28th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM)10.1109/FCCM48280.2020.00032(177-185)Online publication date: May-2020
      • (2020)Towards Automatic High-Level Code Deployment on Reconfigurable Platforms: A Survey of High-Level Synthesis Tools and ToolchainsIEEE Access10.1109/ACCESS.2020.30240988(174692-174722)Online publication date: 2020
      • Show More Cited By

      View Options

      Login options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Figures

      Tables

      Media

      Share

      Share

      Share this Publication link

      Share on social media