2020
DOI: 10.4204/eptcs.321.2
|View full text |Cite
|
Sign up to set email alerts
|

Describing Console I/O Behavior for Testing Student Submissions in Haskell

Abstract: We present a small, formal language for specifying the behavior of simple console I/O programs. The design is driven by the concrete application case of testing interactive Haskell programs written by students. Specifications are structurally similar to lexical analysis regular expressions, but are augmented with features like global variables that track state and history of program runs, enabling expression of an interesting range of dynamic behavior. We give a semantics for our specification language based o… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
8
0

Year Published

2020
2020
2022
2022

Publication Types

Select...
2
1
1

Relationship

1
3

Authors

Journals

citations
Cited by 4 publications
(8 citation statements)
references
References 9 publications
0
8
0
Order By: Relevance
“…For convenience we define some combinators for defining templates and instances that make these definitions more directly readable. Before diving into the description of I/O tasks, we give a short summary of the specification language, introduced in our previous work [9], as it forms the basis of the presented approach. Specification expressed in the language describe program behavior in terms of the traces, i.e, sequences of read and written values, a program should produce.…”
Section: Describing Parameterized Tasksmentioning
confidence: 99%
See 4 more Smart Citations
“…For convenience we define some combinators for defining templates and instances that make these definitions more directly readable. Before diving into the description of I/O tasks, we give a short summary of the specification language, introduced in our previous work [9], as it forms the basis of the presented approach. Specification expressed in the language describe program behavior in terms of the traces, i.e, sequences of read and written values, a program should produce.…”
Section: Describing Parameterized Tasksmentioning
confidence: 99%
“…We will not present the language in the formal way of [9], but instead use the Haskell embedding, since this embedding is what we are going to use. Specifications are built from three atomic specifications, a branching and a loop construct and sequential composition.…”
Section: Describing Parameterized Tasksmentioning
confidence: 99%
See 3 more Smart Citations