Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Beyond Annotations: A Proposal for Extensible Java (XJ) Tony Clark, Thames Valley University Paul Sammut, HSBC James Willans, Ceteva

Similar presentations


Presentation on theme: "1 Beyond Annotations: A Proposal for Extensible Java (XJ) Tony Clark, Thames Valley University Paul Sammut, HSBC James Willans, Ceteva"— Presentation transcript:

1 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 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 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 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 5 Syntax Classes: DSL Architecture import language p.q.mylang; class C { void m(...) {... @mylang { // Syntax and semantics defined // by class mylang. } package p.q; import language java.syntax.grammar; class mylang implements java.syntax.AST {... @grammar { // language definition } modular. nesting. conservative. standard.

6 6 Example DSL Constructs public Vector add1(Vector 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 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: [|.m(,1) |] Language: import ; @ ; grammar; [| … |].

8 8 Review Implemented in XMF: commercial tool; open- source (www.ceteva.com)www.ceteva.com Superlanguages book: ( www.ceteva.com/docs/Superlanguages.pdf) 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 9 Statement New languages and constructs can/should implement a standard interface to facilitate program analysis.


Download ppt "1 Beyond Annotations: A Proposal for Extensible Java (XJ) Tony Clark, Thames Valley University Paul Sammut, HSBC James Willans, Ceteva"

Similar presentations


Ads by Google