Software Engineering, Meyer
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.
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.
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.
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.
- Scott West Correctness and Execution of Concurrent Object-Oriented Programs PhD thesis. [pdf]
- Nadia Polikarpova, Carlo A. Furia, Scott West To Run What No One Has Run Before: Executing an Intermediate Verification Language RV 2013. [pdf] [bibtex]
- Sebastian Nanz, Scott West, Kaue Soares Da Silveira, Bertrand Meyer Benchmarking Usability and Performance of Multicore Languages ESEM 2013. [pdf] [bibtex]
- Sebastian Nanz, Scott West, Kaue Soares Da Silveira Examining the Expert Gap in Parallel Programming Euro-Par 2013. [pdf] [bibtex]
- Benjamin Morandi, Scott West, Sebastian Nanz, Hassan Gomaa Concurrent Object-Oriented Development with Behavioral Design Patterns ECSA 2013. [pdf] [bibtex]
- Scott West, Sebastian Nanz, Bertrand Meyer Demonic Testing of Concurrent Programs ICFEM 2012. [pdf] [bibtex]
- Scott West, Sebastian Nanz, Bertrand Meyer A Modular Scheme for Deadlock Prevention in an Object-Oriented Programming Model. ICFEM 2010. [pdf] [bibtex]
- Ganesh Ramanathan, Benjamin Morandi, Scott West, Sebastian Nanz, Bertrand Meyer Deriving Concurrent Control Software from Behavioral Specifications. IROS 2010. [pdf] [bibtex]
- Scott West, Wolfram Kahl A Generic Graph Transformation, Visualisation, and Editing Framework in Haskell. 8th International Workshop on Graph Transformation and Visual Modeling Techniques, ECEASST vol. 18.