Skip to content

Better than the best

Facebook
Twitter
LinkedIn

NevilleGrech

Dr Neville Grech writes about his research career in automating software

Today we rely on computers. Computers are present inside car engines, mobile phones, and even medical implants. Programming languages are the way humans can dictate how these machines behave. Programming a machine is difficult, involving a lot of trial and error until the machine starts behaving as the human programmer wants. Programmers spend their time testing programs; however, despite all their efforts, most programs that are used in production systems are still error laden.

Languages such as JavaScript, called dynamically-typed languages, have gained a strong foothold amongst programmers. These languages enable writing software quickly. The JavaScript language is ubiquitous on the web, and dynamically-typed languages are very common in the software industry, including Malta’s. Unfortunately, these programs are also littered with errors (called type errors) that can break an entire system. Programmers would benefit by detecting type errors in their code at an early stage, without imposing unnecessary restrictions on their programs. Due to their dynamic nature, no such tools exist. For my Ph.D. research I chose to fill this gap by developing a mechanism called “pre-emptive type checking”, that can automatically find type errors early on. It can be applied to languages such as JavaScript or Python. In fact, I have developed a proof of concept implementation for the Python language, one of the most commonly used programming languages. Various research institutions are working on different ways to make dynamically-typed languages more reliable, with Microsoft Research (MSR) spearheading this kind of research. Researcher Gavin Bierman, working for MSR (now Oracle), has worked on a recent programming language called TypeScript, together with a number of others in use today. Bierman was my external examiner for my Ph.D., and discussing these issues with him during my viva was a truly enriching and intellectually stimulating experience. Despite the large number of people working on the problem, I have managed to tackle the problem from a different angle. My work focused on creating a mechanism to find type errors as quickly as possible. The earlier a mistake is detected, the less damage is caused and the earlier one can fix it.

Following my Ph.D. in Southampton, I moved to the University of Bristol to pursue post-doctoral research on compilers, which are programs that turn human readable programs into machine-readable code. Computer energy consumption is a major industry challenge, and the software is a large drain on battery life. I collaborated with semiconductor companies and other top research institutions to develop software tools that estimate energy consumption when running different programs. I also developed techniques to automate the process of writing energy efficient software. Software that is more dependable, maintainable, and more efficient than the best systems currently available.

A glimpse of the future? An embedded computer system, with 256 efficient processor cores running at 500Mhz.  My research at Bristol with XMOS is helping with the automation of writing energy efficient software for this, and similar, platforms.
A glimpse of the future? An embedded computer system, with 256 efficient processor cores running at 500Mhz. My research at Bristol with XMOS is helping with the automation of writing energy efficient software for this, and similar, platforms.

Author

More to Explore

Reproducibility in Science – Why It Matters More Than Ever

Have you ever scrolled past a viral claim online and thought, ‘That sounds true’? Maybe it was a headline about a miracle cure or a diet hack. Or noticed how quickly new ideas spread online – sometimes before anyone has checked if they’re real? From scientific labs to TikTok feeds, we’re constantly asked to decide: What is true? And more often than not, the answer lies in one underappreciated scientific principle – reproducibility.

A Pocket Guide on Dumplings

Who doesn’t love a tight, little meat package? Before the prudes boo me off stage, I’m talking about dumplings. These delectable morsels are found all over the world. In fact, it could be argued that every country or region has their own type of dumpling. Because, when you get down to eat, few things can match that universal, carnal appeal of a mouthful of warm, juicy meat (okay, that was the last one, I promise). While this is by no means an exhaustive list, we’ve selected six scrumptious dumplings to whet your appetite!

Life Against Entropy

Most of us move through life with a quiet certainty that being alive is self-evident. We grow, think, love, worry, plan. We distinguish instinctively between what lives and what does not. A person is alive; a stone is not. A dog is alive; a machine is not. The line feels obvious, until someone asks us to explain it.

Comments are closed for this article!