CS846 Paper Review Form - Winter 2012 Reviewer: Jia Liang Paper Title: Silver: an Extensible Attribute Grammar System Author(s): Eric Van Wyk, Derek Bodin, Jimin Gao, Lijesh Krishnan 1) Is the paper technically correct? [*] Yes [ ] Mostly (minor flaws, but mostly solid) [ ] No 2) Originality [ ] Very good (very novel, trailblazing work) [*] Good [ ] Marginal (very incremental) [ ] Poor (little or nothing that is new) 3) Technical Depth [ ] Very good (comparable to best conference papers) [*] Good (comparable to typical conference papers) [ ] Marginal depth [ ] Little or no depth 4) Impact/Significance [ ] Very significant [*] Significant [ ] Marginal significance. [ ] Little or no significance. 5) Presentation [ ] Very well written [ ] Generally well written [*] Readable [ ] Needs considerable work [ ] Unacceptably bad 6) Overall Rating [ ] Strong accept (award quality) [*] Accept (high quality - would argue for acceptance) [ ] Weak Accept (borderline, but lean towards acceptance) [ ] Weak Reject (not sure why this paper was published) 7) Summary of the paper's main contribution and rationale for your recommendation. (1-2 paragraphs) Domain specific languages offer a very high level of problem solving and amenable to domain optimizations. The trade off is that DSL design, implementation, and maintenance requires significant effort. Silver aims to mitigate the disadvantages to increase the appeal of DSLs. Silver is an attribute grammar specification language extended with a feature the authors call "forwarding", a feature useful for extending languages. Silver is implemented in Silver through a series of boot-strapping, along with an implementation of Java 1.4, demonstrating its aptitude as a specification language. The idea behind designing a language with Silver, like Silver itself, is to create a host language that is sufficiently complete. Then add new language constructs and semantic analysis with attribute grammar fragments that rewrite the extensions with equivalent constructs in the host language. Silver also supports higher-order attributes and consequently, it is Turing complete. The paper introduces the specification language, and examples of how to extend the language using features of Silver. Silver is a very practical method of quickly creating new extensible DSLs. The mechanisms in the language allow for a modular design, demonstrated by the Silver specification language example. The specification consists of importing the core language, and the additional extensions, composing them into a full language. The forwarding support opens new doors in modular language design. New DSLs are vulnerable to frequent changes due to immaturity of the language. A DSL specified in Silver is palatable for new language extensions. Overall, Silver is a significant contribution to the field, and the paper provides good insight into the language. 8) List 1-3 strengths of the paper. (1-2 sentences each, identified as S1, S2, S3.) S1. The merits of Silver are clearly communicated. Most of the paper is dedicated to showing off Silver's extensibility, its most compelling feature. S2. The paper addresses a significant problem, the creation of DSLs, with a practical tool. 9) List 1-3 weaknesses of the paper (1-2 sentences each, identified as W1, W2, W3.) W1. The pattern matching is an important example, but the explanation is hard to follow. W2. Liberal use of domain specific terminology without description. Not always clear for the uninitiated.