User Tools

Site Tools


start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
start [2015/04/22 18:36]
tdrc [LARA: an aspect-oriented programming language for embedded systems]
start [2019/09/22 15:47] (current)
Line 1: Line 1:
-====== LARA: an aspect-oriented programming ​language for embedded systems ​======+====== LARA: language for source-to-source compilation ​======
  
 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 novel language introduces an Aspect-Oriented Programming (AOP) approach that conveys domain knowledge and non-functional requirements to optimizers and mapping tools. [[lara:​lara|LARA]] allows the specification of compilation strategies to enable efficient generation of software code and hardware cores for alternative target architectures. 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 novel language introduces an Aspect-Oriented Programming (AOP) approach that conveys domain knowledge and non-functional requirements to optimizers and mapping tools. [[lara:​lara|LARA]] allows the specification of compilation strategies to enable efficient generation of software code and hardware cores for alternative target architectures.
Line 5: Line 5:
  
 <menu col=2,​align=center>​ <menu col=2,​align=center>​
-  <​item>​About LARA|Information regarding LARA language.|[[lara:​about]]|{{:​wiki:​logo.png?​40}}</​item>​ 
-  <​item>​Other uses of LARA|Information regarding LARA language.|[[lara:​other]]|{{:​lara:​img:​globe.png?​40}}</​item>​ 
   <​item>​Documentation|Documents of the LARA language.|[[lara:​documentation]]|{{:​lara:​img:​dictionary.png?​40}}</​item>​   <​item>​Documentation|Documents of the LARA language.|[[lara:​documentation]]|{{:​lara:​img:​dictionary.png?​40}}</​item>​
-  <​item>​DevTeam|Information about the development team.|[[lara:team]]| {{:​lara:​img:​devteam.png?​40}}</​item>​+  <​item>​Downloads|Software and Tools Download.|[[lara:​downloads]]| {{:​lara:​img:​projects.png?​40}}</​item>​ 
 +  <​item>​Other uses of LARA|Information regarding LARA language.|[[lara:​other]]|{{:​lara:​img:​globe.png?​40}}</​item>​ 
 +  <​item>​About Us|Information about the SPeCS group.|[[https://​sites.google.com/​site/​specsfeup/​]]| {{:​lara:​img:​specslogo.png?​40}}</​item> ​ 
   <​item>​Tutorials|A set of tutorials and examples for faster learning.|[[lara:​tutorial]]|{{:​lara:​img:​books.png?​40}}</​item>​   <​item>​Tutorials|A set of tutorials and examples for faster learning.|[[lara:​tutorial]]|{{:​lara:​img:​books.png?​40}}</​item>​
-  ​<​item>​About Us|Information about the SPeCS group.|[[https://​sites.google.com/​site/​specsfeup/​]]| {{:​lara:​img:​specslogo.png?​40}}</​item>​ +  <​item>​Projects|Projects using LARA.|[[lara:​usage]]| {{:​lara:​img:​math.png?​40}}</​item>​
-  <​item>​Frequently Asked Question|Explain the most usual questions.|[[lara:​faq]]|{{:​lara:​img:​faq-icon2.png?​40}}</​item>​ +
-  ​<​item>​Projects|Projects using LARA.|[[lara:​usage]]| {{:​lara:​img:​.png?​40}}</​item>​+
 </​menu>​ </​menu>​
 +
 +/* Items that are not done yet */
 +/* <​item>​Dev. Team|Information about the development team.|[[lara:​team]]| {{:​lara:​img:​devteam.png?​40}}</​item>​ */
 +/* <​item>​Frequently Asked Question|Explain the most usual questions.|[[lara:​faq]]|{{:​lara:​img:​faq-icon2.png?​40}}</​item>​ */
 +/*   <​item>​About LARA|Information regarding LARA language.|[[lara:​about]]|{{:​wiki:​logo.png?​40}}</​item>​ */
 ===== LARA Language ===== ===== LARA Language =====
  
Line 28: Line 31:
   * [[lara:​tools:​larac|LaraC]] - The LARA compiler which translates the LARA aspects, together with a target language specification,​ into an Aspect-Intermediate Representation (Aspect-IR). The generated Aspect-IR can be used by an interpreter to analyse the aspects and apply the defined strategies;   * [[lara:​tools:​larac|LaraC]] - The LARA compiler which translates the LARA aspects, together with a target language specification,​ into an Aspect-Intermediate Representation (Aspect-IR). The generated Aspect-IR can be used by an interpreter to analyse the aspects and apply the defined strategies;
   * [[lara:​tools:​larai|LaraI]] - A LARA interpreter for the Aspect-IR. The default LaraI implementation can execute all the functionalities available in LARA language, with a limited language representation. This interpreter can be expanded in many ways, such as: the addition of new Java and JavaScript features; addition of LARA API strategies; use of a different weaving mechanism instead of the default one. This tool can be used to create new weaving environments with ease.   * [[lara:​tools:​larai|LaraI]] - A LARA interpreter for the Aspect-IR. The default LaraI implementation can execute all the functionalities available in LARA language, with a limited language representation. This interpreter can be expanded in many ways, such as: the addition of new Java and JavaScript features; addition of LARA API strategies; use of a different weaving mechanism instead of the default one. This tool can be used to create new weaving environments with ease.
-  * [[lara:​tools:​weavergenerator|WeaverGenerator]] - The LARA weaver engine generator. According to a given input language specification,​ this tool generates a weaving environment that easily interfaces with LaraI  , providing the application of LARA in different environments and the easy update of new feature to the implemented weavers. +  * [[lara:​tools:​weavergenerator|WeaverGenerator]] - The LARA weaver engine generator. According to a given input language specification,​ this tool generates a weaving environment that easily interfaces with LaraI, providing the application of LARA in different environments and the easy update of new feature to the implemented weavers. 
-  * [[lara:​tools:​langspeccreator|Language Specification Creator]] (GUI) - Ongoing work... + 
-  * [[harmonic:​harmonic|Harmonic]] +/* [[lara:​tools:​langspeccreator|Language Specification Creator]] (GUI) - Ongoing work... ​*/ 
-  * [[reflectc:​reflectc|ReflectC]] + 
-  * [[http://​specs.fe.up.pt/​tools/​matisse/​|MATISSE]] +There are already several weavers that support the LARA language:  ​ 
-  * [[manet:​manet|MANET]]+  * [[http://​specs.fe.up.pt/​tools/​harmonic/|Harmonic]] ​(C) 
 +  * [[http://​specs.fe.up.pt/​tools/​reflectc/|ReflectC]] ​(C) 
 +  * [[http://​specs.fe.up.pt/​tools/​matisse/​|MATISSE]] ​(MATLAB) 
 +  * [[http://​specs.fe.up.pt/​tools/​manet/|MANET]] ​(ANSI C) 
 +  * [[http://​specs.fe.up.pt/​tools/​kadabra/​|Kadabra]] (Java)
  
start.1429720609.txt.gz · Last modified: 2019/09/22 15:46 (external edit)