Languages and Architectures Group
Overview
The Languages Architecture Group carries out research in hardware, programming language design, implementation, analysis, transformation, and parallelisation. The group is specifically interested in the following areas:- Program transformation and meta-programming.
- Compiler techniques for multimedia.
- Abstract machines.
- Concurrency.
- Processor architectures for multimedia.
- Microprocessor and interconnect design.
- Parallel computer architecture.
Projects
- Many-core Project.
- Tempo: Concurrent Logic Programming.
- The BRISK Project.
- A Toolkit for Program Analysis and Transformation.
- Architectures for Media Appliances.
- Systems with Predictable Caching.
- Multimedia Instruction Sets.
Achievements
- A partitioned caching scheme and associated compiler technology was developed using support from EPSRC. The cache organisation requires less silicon resources than many alternatives and results in more predictable cache performance.
- Development of a multi-threaded Instruction Level Parallel processor.
- The architecture of an advanced multimedia microprocessor was developed in conjunction with SGS-Thomson. The architecture contains innovations in compact instruction set design, multimedia support, predictable caches and interconnect architecture.
- Development of a set of protocols to allow mobile communication.
- Parallel optimisation problem-solving techniques, using both constraint logic programming and genetic algorithms, were investigated in a project funded by the Information-technology Promotion Agency, Japan.
- The Brisk implementation of Haskell, being developed to support a variety of execution models, including concurrency, distribution, computational mobility, dynamic loading and linking, and functional logic extensions, matured to the point of being able to run Escher programs.
- A set of tools for the analysis and optimisation of declarative programs, developed originally in ESPRIT projects, is now being applied in areas such as the analysis of procedural programs and the optimisation of hardware verification proofs.
- Escher was designed and implemented. Escher is a declarative, general-purpose programming language that integrates the best features of both functional and logic programming languages. It has types and modules, higher-order and meta-programming facilities,
- CAO was designed and implemented. CAO is a domain specific language and compiler system for implementing cryptographic primitives; it can produce high performance results and includes analysis phases which detect some security problems in source programs.
MSc and Undergraduate Projects
We also have a list of related MSc and undergraduate project ideas although this should not be viewed as definitive; any project ideas that lie in the interests of the group may be considered.Staff
![]() Steve Gregory |
![]() Simon Hollis |
![]() Ian Holyer |
![]() David May |
![]() Dan Page |
Research Staff
![]() Philipp Grabher |
![]() Andrew Moss |








