2011
DOI: 10.1016/j.scico.2008.09.007
|View full text |Cite
|
Sign up to set email alerts
|

Statically safe program generation with SafeGen

Abstract: SafeGen is a meta-programming language for writing statically safe generators of Java programs. If a program generator written in SafeGen passes the checks of the SafeGen compiler, then the generator will only generate well-formed Java programs, for any generator input. In other words, statically checking the generator guarantees the correctness of any generated program, with respect to static checks commonly performed by a conventional compiler (including type safety, existence of a superclass, etc.). To achi… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
24
0

Year Published

2011
2011
2017
2017

Publication Types

Select...
4
2

Relationship

1
5

Authors

Journals

citations
Cited by 22 publications
(24 citation statements)
references
References 22 publications
0
24
0
Order By: Relevance
“…First, in an influential approach, Huang et al [2005] ensure that Java code generated by their tool SafeGen is well-typed. Though their tool is used for metaprogramming in general, not as productline technology, the basic idea is similar to our theorem generation preserves typing.…”
Section: Related Work Type Checking Product Linesmentioning
confidence: 99%
See 1 more Smart Citation
“…First, in an influential approach, Huang et al [2005] ensure that Java code generated by their tool SafeGen is well-typed. Though their tool is used for metaprogramming in general, not as productline technology, the basic idea is similar to our theorem generation preserves typing.…”
Section: Related Work Type Checking Product Linesmentioning
confidence: 99%
“…It builds on top of our prior efforts to prevent syntax errors with disciplined annotations in our tool CIDE and is inspired by prior work on type checking entire product lines [Czarnecki and Pietroszek 2006;Thaker et al 2007;Huang et al 2005;Delaware et al 2009;] (see Sec. 9).…”
Section: Introductionmentioning
confidence: 99%
“…Yet more examples from the static reflection or generic aspects literature [10,11,13,19] can be viewed as instances of morphing and can be expressed in MJ. For instance, the CTR work [11] allows the user to express a "transform" that iterates over methods of a class that have a @UnitTestEntry annotation and generate code to call all such methods while logging the unit test results.…”
Section: Applicationsmentioning
confidence: 99%
“…This is an invaluable property for generic code: it prevents errors that only appear for some type parameters, which the author of the generic class may not have predicted. This problem has been the target of some prior work, such as type-safe reflection [10], compile-time reflection [11], and safe program generation [13]. Yet none of these mechanisms offer MJ's modular type checking guarantees.…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation