The performance of a computer system is a synergistic combination of two factors: the hardware and the software which runs on it. The performance of the software is critically dependent on the quality of the machine code generated by compilers and by the efficiency of the run-time system which co-exists with that code. In the past, execution speed was the overriding concern. Nowadays, with the embedded systems becoming ever more common, both memory size footprint and power consumption have become concerns too.
The LOST group is very much concerned with the implementation of programming languages in the form of compilers and interpreters. We currently focus on code optimization in both traditional compilers and Just-in-time (JIT) compilers. Our main languages of interest are traditional imperative languages such as C, and object-oriented languages compiled to bytecode such as Java and C#.