Andrew Myers

Security, programming languages, and computer systems

GashlyCode Tinies

I posted my little poem about programming mistakes on Facebook a while back, but I thought it might be a bit more permanent here. It’s inspired by Edward Gorey’s Gashlycrumb Tinies. Sophia Berger has been working on some illustrations in the spirit of Gorey’s, but they’re not done yet.

The GashlyCode Tinies

A is for Amy whose malloc was one byte short
B is for Basil who used a quadratic sort

C is for Chuck who checked floats for equality
D is for Desmond who double-freed memory

E is for Ed whose exceptions weren’t handled
F is for Franny whose stack pointers dangled

G is for Glenda whose reads and writes raced
H is for Hans who forgot the base case

I is for Ivan who did not initialize
J is for Jenny who did not know Least Surprise

K is for Kate whose inheritance depth might shock
L is for Larry who never released a lock

M is for Meg who used negatives as unsigned
N is for Ned with behavior left undefined

O is for Olive whose index was off by one
P is for Pat who ignored buffer overrun

Q is for Quentin whose numbers had overflows
R is for Rhoda whose code made the rep exposed

S is for Sam who skipped retesting after wait()
T is for Tom who lacked TCP_NODELAY

U is for Una whose functions were most verbose
V is for Vic who subtracted when floats were close

W is for Winnie who aliased arguments
X is for Xerxes who thought type casts made good sense

Y is for Yorick whose interface was too wide
Z is for Zack in whose code nulls were often spied


Author: Andrew Myers

I am a professor of computer science at Cornell University. It is too hard to build trustworthy software systems using conventional systems APIs. I work on higher-level, language-based abstractions for programming that better address important cross-cutting concerns: security, extensibility, persistence, distribution.

Comments are closed.