Download presentation
Presentation is loading. Please wait.
Published byKatrina Dixon Modified over 9 years ago
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.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.