LARA: an aspect-oriented programming language for embedded systems
|
|||||||||||||||||
ABSTRACTThe 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.
AUTHORS
|
|
||||||||||||||||||||||||||||||||||||||||
| View colleagues of João M.P. Cardoso | |||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| View colleagues of Tiago Carvalho | |||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| View colleagues of José G.F. Coutinho | |||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| View colleagues of Wayne Luk | |||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| View colleagues of Ricardo Nobre | |||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| View colleagues of Pedro Diniz | |||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| View colleagues of Zlatko Petrov | |||||||||||||||||||||||||||||||||||||||||
REFERENCESNote: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked 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
|
|
|
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
|
|
|
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
|
Eduardo Figueiredo , Claudio Sant'Anna , Alessandro Garcia , Thiago T. Bartolomei , Walter Cazzola , Alessandro Marchetto, On the Maintainability of Aspect-Oriented Software: A Concern-Oriented Measurement Framework, Proceedings of the 2008 12th European Conference on Software Maintenance and Reengineering, p.183-192, April 01-04, 2008 [doi>10.1109/CSMR.2008.4493313]
|
|
|
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
|
|
|
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
|
||
|
19
|
D. Lohmann, Olaf Spinczyk. Aspect-Oriented Programming with C++ and AspectC++. Tutorial, AOSD'2007, March 13, 2007.
|
|
|
20
|
||
| |
21
|
|
|
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
|
|
|
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
|
|
|
29
|
||
|
30
|
CITED BY21 Citations
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
INDEX TERMSThe ACM Computing Classification System (CCS rev.2012)
PUBLICATION| Title | AOSD '12 Proceedings of the 11th annual international conference on Aspect-oriented Software Development table of contents | ||||||||||||||||||||||||||||||||||||||||||||||
| Conference Chairs | Michael Haupt Oracle Labs, Potsdam, Germany | ||||||||||||||||||||||||||||||||||||||||||||||
| General Chairs | Robert Hirschfeld Hasso-Plattner-Institut, University of Potsdam, Germany | ||||||||||||||||||||||||||||||||||||||||||||||
| Program Chairs | Éric Tanter Universidad de Chile, Chile | ||||||||||||||||||||||||||||||||||||||||||||||
| Kevin J. Sullivan University of Virginia, USA | |||||||||||||||||||||||||||||||||||||||||||||||
| Richard P. Gabriel IBM Research, USA | |||||||||||||||||||||||||||||||||||||||||||||||
| Pages | 179-190 | ||||||||||||||||||||||||||||||||||||||||||||||
| Publication Date | 2012-03-25 (yyyy-mm-dd) | ||||||||||||||||||||||||||||||||||||||||||||||
| Sponsors | SIGPLAN ACM Special Interest Group on Programming Languages | ||||||||||||||||||||||||||||||||||||||||||||||
| SIGSOFT ACM Special Interest Group on Software Engineering | |||||||||||||||||||||||||||||||||||||||||||||||
| In-Cooperations | AOSA Aspect-Oriented Software Association | ||||||||||||||||||||||||||||||||||||||||||||||
| Publisher | ACM New York, NY, USA ©2012 | ||||||||||||||||||||||||||||||||||||||||||||||
| ISBN: 978-1-4503-1092-5 doi>10.1145/2162049.2162071 | |||||||||||||||||||||||||||||||||||||||||||||||
| Conference |
MODULARITYModularity (formerly known as Aspect-oriented Software Development - AOSD)
|
||||||||||||||||||||||||||||||||||||||||||||||
| Paper Acceptance Rate 20 of 79 submissions, 25% | |||||||||||||||||||||||||||||||||||||||||||||||
| Overall Acceptance Rate 178 of 718 submissions, 25% | |||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||
REVIEWS
COMMENTSBe the first to comment To Post a comment please sign in or create a free Web account
Table of Contents| SESSION: Features | ||
| Session details: Features | ||
| David Lorenz | ||
| doi>10.1145/3256430 | ||
| Separation of concerns in feature modeling: support and applications | ||
| Mathieu Acher, Philippe Collet, Philippe Lahire, Robert B. France | ||
| Pages: 1-12 | ||
| doi>10.1145/2162049.2162051 | ||
Full text: PDF
|
||
|
Feature models (FMs) are a popular formalism for describing the commonality and variability of software product lines (SPLs) in terms of features. SPL development increasingly involves manipulating many large FMs, and thus scalable modular techniques ...
expand
|
||
| Intraprocedural dataflow analysis for software product lines | ||
| Claus Brabrand, Márcio Ribeiro, Társis Tolêdo, Paulo Borba | ||
| Pages: 13-24 | ||
| doi>10.1145/2162049.2162052 | ||
Full text: PDF
|
||
|
Software product lines (SPLs) are commonly developed using annotative approaches such as conditional compilation that come with an inherent risk of constructing erroneous products. For this reason, it is essential to be able to analyze SPLs. However, ...
expand
|
||
| Features and object capabilities: reconciling two visions of modularity | ||
| Salman Saghafi, Kathi Fisler, Shriram Krishnamurthi | ||
| Pages: 25-34 | ||
| doi>10.1145/2162049.2162053 | ||
Full text: PDF
|
||
|
The prevalence of threats and attacks in modern systems demands programming techniques that help developers maintain security and privacy. In particular, frameworks for composing components written by multiple parties must enable the authors of each ...
expand
|
||
| SESSION: Debugging | ||
| Session details: Debugging | ||
| Wouter Joosen | ||
| doi>10.1145/3256431 | ||
| Two-way traceability and conflict debugging for AspectLTL programs | ||
| Shahar Maoz, Yaniv Sa'ar | ||
| Pages: 35-46 | ||
| doi>10.1145/2162049.2162055 | ||
Full text: PDF
|
||
|
Tracing program actions back to the concerns that have caused them and blaming specific code artifacts for concern interference are known challenges of AOP and related advanced modularity paradigms. In this work we address these challenges in the context ...
expand
|
||
| A debug interface for debugging multiple domain specific aspect languages | ||
| Yoav Apter, David H. Lorenz, Oren Mishali | ||
| Pages: 47-58 | ||
| doi>10.1145/2162049.2162056 | ||
Full text: PDF
|
||
|
Research in the area of multi-DSAL development has been mainly devoted to enabling the interoperability of multiple aspect mechanisms. Less attention has been given to making programming with multiple aspect languages practical. For domain specific aspect ...
expand
|
||
| A fine-grained debugger for aspect-oriented programming | ||
| Haihan Yin, Christoph Bockisch, Mehmet Aksit | ||
| Pages: 59-70 | ||
| doi>10.1145/2162049.2162057 | ||
Full text: PDF
|
||
|
To increase modularity, aspect-oriented programming provides a mechanism based on implicit invocation: An aspect can influence runtime behavior of other modules without the need that these modules refer to the aspect. Recent studies show that a significant ...
expand
|
||
| SESSION: Languages | ||
| Session details: Languages | ||
| Mario Südholt | ||
| doi>10.1145/3256432 | ||
| A monadic interpretation of execution levels and exceptions for AOP | ||
| Nicolas Tabareau | ||
| Pages: 71-82 | ||
| doi>10.1145/2162049.2162059 | ||
Full text: PDF
|
||
|
Aspect-Oriented Programming (AOP) started fifteen years ago with the remark that modularization of so-called crosscutting functionalities is a fundamental problem for the engineering of large-scale applications. Originating at Xerox PARC, this observation ...
expand
|
||
| Adaptable generic programming with required type specifications and package templates | ||
| Eyvind W. Axelsen, Stein Krogdahl | ||
| Pages: 83-94 | ||
| doi>10.1145/2162049.2162060 | ||
Full text: PDF
|
||
|
The aim of this work is to provide better support for adaption and refinement of generic code. This type of flexibility is desirable in order to fully reap the potential of generic programming. Our proposal for an improved mechanism is an extension to ...
expand
|
||
| Do we really need to extend syntax for advanced modularity? | ||
| Shigeru Chiba, Michihiro Horie, Kei Kanazawa, Fuminobu Takeyama, Yuuki Teramoto | ||
| Pages: 95-106 | ||
| doi>10.1145/2162049.2162061 | ||
Full text: PDF
|
||
|
For every new language construct (or abstraction), we have been always developing new syntax. Is this a right approach? In this paper, we propose that, if we develop a new language construct for advanced modularity, we should consider the use of dynamic ...
expand
|
||
| SESSION: Interference | ||
| Session details: Interference | ||
| Hidehiko Masuhara | ||
| doi>10.1145/3256433 | ||
| A closer look at aspect interference and cooperation | ||
| Cynthia Disenfeld, Shmuel Katz | ||
| Pages: 107-118 | ||
| doi>10.1145/2162049.2162063 | ||
Full text: PDF
|
||
|
In this work we consider specification and compositional verification for interference detection when several aspects are woven together under joint-weaving semantics without recursion. In this semantics, whenever a joinpoint of an aspect is reached, ...
expand
|
||
| Management of feature interactions with transactional regions | ||
| Thomas Cottenier, Aswin van den Berg, Thomas Weigert | ||
| Pages: 119-130 | ||
| doi>10.1145/2162049.2162064 | ||
Full text: PDF
|
||
|
This paper presents a modeling language to modularize the features of a system using orthogonal regions and to man-age the interactions between these features. Orthogonal regions are a language construct to structure a state ma-chine into a set of semi-independent ...
expand
|
||
| Method shelters: avoiding conflicts among class extensions caused by local rebinding | ||
| Shumpei Akai, Shigeru Chiba | ||
| Pages: 131-142 | ||
| doi>10.1145/2162049.2162065 | ||
Full text: PDF
|
||
|
A class extension, also known as open classes, allows programmers to modify existing classes and thus it is supported by several programming languages. However, class extensions imply a risk that they supply different definitions for the same method ...
expand
|
||
| SESSION: Empirical | ||
| Session details: Empirical | ||
| Stefan Udo Hanenberg | ||
| doi>10.1145/3256434 | ||
| An exploratory study of the design impact of language features for aspect-oriented interfaces | ||
| Robert Dyer, Hridesh Rajan, Yuanfang Cai | ||
| Pages: 143-154 | ||
| doi>10.1145/2162049.2162067 | ||
Full text: PDF
|
||
|
A variety of language features to modularize crosscutting concerns have recently been discussed, e.g. open modules, annotation-based pointcuts, explicit join points, and quantified-typed events. All of these ideas are essentially a form of aspect-oriented ...
expand
|
||
| Comprehensively evaluating conformance error rates of applying aspect state machines | ||
| Shaukat Ali, Tao Yue, Zafar Iqbal Malik | ||
| Pages: 155-166 | ||
| doi>10.1145/2162049.2162068 | ||
Full text: PDF
|
||
|
Aspect Oriented Modeling (AOM) aims to provide enhanced separation of concerns during the design phase and proclaims many benefits (e.g., easier model evolution, reduced modeling effort, and reduced modeling errors) over traditional modeling paradigms ...
expand
|
||
| Are automatically-detected code anomalies relevant to architectural modularity?: an exploratory analysis of evolving systems | ||
| Isela Macia, Joshua Garcia, Daniel Popescu, Alessandro Garcia, Nenad Medvidovic, Arndt von Staa | ||
| Pages: 167-178 | ||
| doi>10.1145/2162049.2162069 | ||
Full text: PDF
|
||
|
As software systems are maintained, their architecture modularity often degrades through architectural erosion and drift. More directly, however, the modularity of software implementations degrades through the introduction of code anomalies, informally ...
expand
|
||
| SESSION: Modularity in systems software | ||
| Session details: Modularity in systems software | ||
| Michael Haupt | ||
| doi>10.1145/3256435 | ||
| LARA: an aspect-oriented programming language for embedded systems | ||
| João M.P. Cardoso, Tiago Carvalho, José G.F. Coutinho, Wayne Luk, Ricardo Nobre, Pedro Diniz, Zlatko Petrov | ||
| Pages: 179-190 | ||
| doi>10.1145/2162049.2162071 | ||
Full text: PDF
|
||
|
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 ...
expand
|
||
| ContextErlang: introducing context-oriented programming in the actor model | ||
| Guido Salvaneschi, Carlo Ghezzi, Matteo Pradella | ||
| Pages: 191-202 | ||
| doi>10.1145/2162049.2162072 | ||
Full text: PDF
|
||
|
Self-adapting systems are becoming widespread in emerging fields such as autonomic, mobile and ubiquitous computing. Context-oriented programming (COP) is a promising language-level solution for the implementation of context-aware, self-adaptive software. ...
expand
|
||
| Fine-grained modularity and reuse of virtual machine components | ||
| Christian Wimmer, Stefan Brunthaler, Per Larsen, Michael Franz | ||
| Pages: 203-214 | ||
| doi>10.1145/2162049.2162073 | ||
Full text: PDF
|
||
|
Modularity is a key concept for large and complex applications and an important enabler for collaborative research. In comparison, virtual machines (VMs) are still mostly monolithic pieces of software. Our goal is to significantly reduce to the cost ...
expand
|
||
| SESSION: Implementing languages | ||
| Session details: Implementing languages | ||
| Eric Bodden | ||
| doi>10.1145/3256436 | ||
| An object-oriented framework for aspect-oriented languages | ||
| Marko van Dooren, Eric Steegmans, Wouter Joosen | ||
| Pages: 215-226 | ||
| doi>10.1145/2162049.2162075 | ||
Full text: PDF
|
||
|
Aspect-orientation is a mechanism for modularizing cross-cutting concerns that has been added to many existing software engineering languages. The implementations of aspect-oriented language extensions, however, are typically tied to a specific base ...
expand
|
||
| Reusing non-functional concerns across languages | ||
| Myoungkyu Song, Eli Tilevich | ||
| Pages: 227-238 | ||
| doi>10.1145/2162049.2162076 | ||
Full text: PDF
|
||
|
Emerging languages are often source-to-source compiled to mainstream ones, which offer standardized, fine-tuned implementations of non-functional concerns (NFCs)-including persistence, security, transactions, and testing. Because these NFCs are specified ...
expand
|
||
| DiSL: a domain-specific language for bytecode instrumentation | ||
| Lukáš Marek, Alex Villazón, Yudi Zheng, Danilo Ansaloni, Walter Binder, Zhengwei Qi | ||
| Pages: 239-250 | ||
| doi>10.1145/2162049.2162077 | ||
Full text: PDF
|
||
|
Many dynamic analysis tools for programs written in managed languages such as Java rely on bytecode instrumentation. Tool development is often tedious because of the use of low-level bytecode manipulation libraries. While aspect-oriented programming ...
expand
|
||
| SESSION: Architecture and design | ||
| Session details: Architecture and design | ||
| Mira Mezini | ||
| doi>10.1145/3256437 | ||
| Multi-view refinement of AO-connectors in distributed software systems | ||
| Steven Op de beeck, Marko van Dooren, Bert Lagaisse, Wouter Joosen | ||
| Pages: 251-262 | ||
| doi>10.1145/2162049.2162079 | ||
Full text: PDF
|
||
|
This paper presents MView, a technique that enables the separation of various developer stakeholder views on an architectural connector in distributed software systems. While state-of-the-art AO-ADLs focus on describing compositions using aspect-based ...
expand
|
||
| Weaving semantic aspects in HiLA | ||
| Gefei Zhang, Matthias Hölzl | ||
| Pages: 263-274 | ||
| doi>10.1145/2162049.2162080 | ||
Full text: PDF
|
||
|
UML state machines are widely used for modeling software behavior. Due to the low-level character of the language, UML state machines are often poorly modularized and hard to use. High-Level Aspects (HiLA) is an aspect-oriented extension of UML state ...
expand
|
||