Code Sandwiches
Loading...
Files
Date
Authors
Elder, Matt
Jackson, Steve
Liblit, Ben
Advisors
License
DOI
Type
Technical Report
Journal Title
Journal ISSN
Volume Title
Publisher
University of Wisconsin-Madison Department of Computer Sciences
Grantor
Abstract
A code sandwich consists of before, after, and body code. Typically, the before
code makes some change, the body code works in the context of the change, and the
after code undoes the change. A code sandwich must guarantee that its after code
will execute if its before code has executed, even if exceptions arise. This pattern is
common to many programming situations, and most modern languages have some
language-level support for expressing it.
We survey support for code sandwiches in several programming languages
and proposed language extensions. We explain why such support can improve a
program, consider related features, and discuss desirable properties that a language
can provide its programmers. We relate these properties to Jyro, our code sandwich
extension to Java. We examine two large, mature open-source programs, find
numerous sandwich-related bugs and readability issues, and demonstrate how they
might be avoided using our Jyro implementation.
Description
Keywords
Related Material and Data
Citation
TR1647