Proceedings of the 6th International Workshop on Automation of Software Test 2011
DOI: 10.1145/1982595.1982615
|View full text |Cite
|
Sign up to set email alerts
|

Testing an optimising compiler by generating random lambda terms

Abstract: This paper considers random testing of a compiler, using randomly generated programs as inputs, and comparing their behaviour with and without optimisation. Since the generated programs must compile, then we need to take into account syntax, scope rules, and type checking during our random generation. Doing so, while attaining a good distribution of test data, proves surprisingly subtle; the main contribution of this paper is a workable solution to this problem. We used it to generate typed functions on lists,… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
78
0
2

Year Published

2012
2012
2021
2021

Publication Types

Select...
4
2
1

Relationship

2
5

Authors

Journals

citations
Cited by 79 publications
(80 citation statements)
references
References 15 publications
0
78
0
2
Order By: Relevance
“…This is a slowdown of 20x compared to that of Pałka's. However, our implementation is a total of 82 lines of fairly simple code, while the handwritten development is 1684 lines, with the warning "...the code is difficult to understand, so reading it is not recommended" in its distribution page [59].…”
Section: Discussionmentioning
confidence: 99%
See 2 more Smart Citations
“…This is a slowdown of 20x compared to that of Pałka's. However, our implementation is a total of 82 lines of fairly simple code, while the handwritten development is 1684 lines, with the warning "...the code is difficult to understand, so reading it is not recommended" in its distribution page [59].…”
Section: Discussionmentioning
confidence: 99%
“…For example, papers have been written about random generation techniques for well-typed lambda-terms [25,60,64,68] and for "indistinguishable" machine states that can be used for finding bugs in information-flow monitors [39,40]. Moreover, if we use QuickCheck to test an invariant property (e.g., type preservation), then the same condition will appear in both the precondition and the conclusion of the property, requiring that we express this condition both as a boolean predicate p and as a generator whose outputs all satisfy p. These two artifacts must then be kept in sync, which can become both a maintenance issue and a rich source of confusion in the testing process.…”
Section: Member X [] = False Member X (H:t) = (X == H) || Member X Tmentioning
confidence: 99%
See 1 more Smart Citation
“…It would be worthwhile to try and falsify or confirm the general understanding for instance by attempting to repeat the results of [Pałka et al 2011] using systematic enumeration.…”
Section: Discussionmentioning
confidence: 99%
“…Similar to SmallCheck, the enumeration in [Yakushev and Jeuring 2009] adopts the list view, which prohibits the sampling of large values. On the other hand, the special-purpose QuickCheck generator designed in [Pałka et al 2011], randomly generates welltyped terms. Unsurprisingly, it has no problem with constructing individual large terms, but falls short in systematicness.…”
Section: Generating (Typed) Lambda Termsmentioning
confidence: 99%