Scott West

Picture of Scott West


Scott West
Software Engineering, Meyer
Clausiusstrasse 59
8092 Zurich


Phone: +41 44 632 74 09
Fax: +41 44 632 14 35


Hello! My name is Scott West, a PhD candidate from the beautiful province of Ontario, Canada. I previously attended McMaster University, obtaining both my bachelor and masters degrees there, in software engineering and computer science, respectively.


My current research is supervised by Bertrand Meyer and focuses the correctness of concurrent programs. The general vehicle for this research is the SCOOP programming language, a modification of the existing Eiffel language. The goal is to make concurrent programming easier by bringing it closer to the sequential programming style. SCOOP does this by introducing the concept of separate objects. These are objects which may be running on a different processor, where a processor here is an abstraction for a unit of computation. A processor could be a thread, or if an implementation were available, a distributed node located half-way across the world.

An Efficient SCOOP Runtime

The SCOOP programming language is an actor/active object approach to concurrency that provides datarace freedom. However, providing these guarantees does require some extra work by the runtime system. I am examining how such a runtime can be made efficient, and have some ideas that have so far proven useful. These ideas are implemented in a compiler, runtime, and compiler plugin available on GitHub.

Concurrent Testing

Testing of concurrent progams is made difficult by their nondeterministic nature. To overcome this we have developed the demonic testing technique. This technique works by using contracts in combination with automated reasoning tools to determine if the routine under test may fail in a concurrent setting. If there is a sequence of calls which may be executed in parallel to the routine under test that can cause it to fail, then an error will be reported.

There are two parts of the technique: the interference generator and the code instrumenter. The interference generator uses an SMT solver under the hood (currently Yices) and can be found on github.

The code instrumenter is integrated into the EVE development environment.

There is also a case study of concurrent bugs that can be found using the demonic testing technique.

Deadlock detection

Detecting the presence of deadlock in a concurrent system can be done in different ways. For the SCOOP programming language, the problem is reduced to determining which processors call which other processors.

I have developed a scheme to detect such deadlocks using an order-based type system. I have created a deadlock detection tool to check SCOOP programs with with the suitable type annotations.

Previous research

Previously, I was under the supervision of Wolfram Kahl, and focused on the creation of a graph transformation framework in Haskell. This framework was intended to be an extensible and have built-in ties to a visualization that was able to be directly manipulated. The high-level goal was to offer a way to rapidly prototype programs, based on graph transformation, with an easy-to-use interface.


I have previously been a teaching assistant in four courses at McMaster University: twice for Principles of Programming, once for Software Design I, and once for Real-time Systems and Control Applications. At ETH Zürich I have been an assistant for the twice for Einführung in die Programmierung, and once for Concepts of Concurrent Computation.







Valid XHTML 1.0 Strict Valid CSS!