Java programmers can document that the relationship between two objects is unchanging by declaring the field that encodes that relationship to be final. This information can be us...
The C language definition leaves the sizes and layouts of types partially unspecified. When a C program makes assumptions about type layout, its semantics is defined only on platf...
Today, the choice for a particular programming language limits the alternative products that can be used to deploy the program. The purpose of this work is to break the strong tie...
Many classical compiler optimizations can be elegantly expressed using rewrite rules of form: I = I if , where I, I are intermediate language instructions and is a property expre...
David Lacey, Neil D. Jones, Eric Van Wyk, Carl Chr...
It is common for compilers to derive the calling convention of a function from its type. Doing so is simple and modular but misses many optimisation opportunities, particularly in...