1 / 9

Extensible Java: Harnessing Domain Specific Languages for Language Evolution and Software Modularity

This proposal explores the use of Domain Specific Languages (DSLs) in Java to create tailored languages supporting mixed languages and language evolution. The benefits include declarative syntax, easy maintenance, code reuse, and verification capabilities. The challenges involve the need for specialist skills, lack of standard technology, and integration issues. The proposal discusses technologies like macros, pre-processing, and chained calls to address DSL technology problems. Syntax classes, a novel approach, aim to provide a standardized syntax extension for Java by defining syntax and semantics through a class-based language construct. Examples of DSL constructs demonstrate the modular, nesting, conservative, and standard nature of this approach. Grammars, AST interfaces, and quasi-quotes are proposed as technologies to synthesize abstract syntax across multiple languages. The XMF tool and Superlanguages book are recommended resources for implementing DSLs. The proposal emphasizes the importance of standard interfaces for new language constructs to enhance program analysis.

zia-beck
Télécharger la présentation

Extensible Java: Harnessing Domain Specific Languages for Language Evolution and Software Modularity

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Beyond Annotations:A Proposal for Extensible Java(XJ) Tony Clark, Thames Valley University Paul Sammut, HSBC James Willans, Ceteva tony.clark@tvu.ac.uk www.ceteva.com/home/tony.html

  2. Domain Specific Languages • Aims: to provide a tailored language; to support mixed languages; language evolution. • Pros: declarative; maintenance; reuse; verification • Cons: specialist skills; no standard technology; lack of integration. • Technologies: macros; pre-processing; roll-your-own; chained calls.

  3. DSLs: Technology Problems • Communication: distributing new languages. • Integration: IDEs; Analysis Tools. • Modularity: clear definition of syntax and semantics. • DSL Types: Internal and External. • Syntax (concrete and abstract): standard extension mechanisms.

  4. DSLs: An OO Proposal Syntax Classes • Modular: class-based language constructs. • Conservative: extends base language. • Fully Integrated: static; dynamic; IDE. • Standardized: syntax extension; AST manipulation; static processing; execution.

  5. Syntax Classes: DSL Architecture package p.q; import language java.syntax.grammar; class mylang implements java.syntax.AST { ... @grammar { // language definition } } import language p.q.mylang; class C { void m(...) { ... @mylang { // Syntax and semantics defined // by class mylang. } } } • modular. • nesting. • conservative. • standard.

  6. Example DSL Constructs public Vector<Integer> add1(Vector<Integer> nums) { return @Cmp(x + 1) { int x <- nums }; } @Reader CallReader { map(SVCL,ServiceCall) 4-18:CustomerName 19-23:CustomerID 24-27:CallTypeCode 28-35:DataOfCallString end map(USGE,Usage) 4-8:CustomerID 9-22:CustomerName 30-30:Cycle 31-36:ReadDate end do ServiceCall Usage } @EntityBean Order persistAs "ORDER_TABLE" { private int id persistAs "ORDER_ID" (get,set); private int address persistAs "SHIPPING_ADDRESS" (get,set); }

  7. Syntax Classes: Technologies • Grammars: basic library; synthesizes abstract syntax; various languages possible. • AST interface: factories; types; eval; compile;… • Quasi-quotes: working with concrete/abstract syntax: [| <o>.m(<a>,1) |] • Language: import; @; grammar; [| … |].

  8. Review • Implemented in XMF: commercial tool; open-source (www.ceteva.com) • Superlanguages book: (www.ceteva.com/docs/Superlanguages.pdf) • DSLs require standard technology. • Open up Java to define new languages. • Issues: language interaction; IDE support; analysis tool requirements.

  9. Statement New languages and constructs can/should implement a standard interface to facilitate program analysis.

More Related