Welcome to the web site of the Sape research group at the Faculty of Informatics of the University of Lugano. Our group is interested in the area between programming languages, runtime systems, and software engineering, with a focus on the efficiency of software, its users, and its developers.

Explore our Publications and Tools to find out more about our work, and check out the list of our Group Members.


Essence of Software

Perceptible Performance

Programmer Education

Open Positions

Are you an excellent student interested in doing a PhD or a post-doc in the areas of programming languages and software engineering?

In that case, you may first want to read our view on what it takes to get a PhD in our group.

You then may want to check out descriptions of ongoing research projects (note: the positions in these projects are filled, but there always is the next project), such as the ParaBoost project focusing on research on concurrent speculative execution in virtual machines, or the FAN project on the foundations of dynamic analysis.

Finally, you should read some of our publications (probably starting with the highlights on the right) to get an idea of where we are coming from.

Meeting Us

If you are interested in our research, and if you are in Switzerland or the Milan area, contact us, and we can meet up. You can also meet us at the following events:

  • PLDI'15 PC Meeting, IBM Learning Center, Armonk, NY, USA, January 30-31, 2015
  • IBM T. J. Watson Research Center, Yorktown Heights, NY, USA, January 29, 2015
    Talk by Matthias on "Algorithmic Profiling"
  • Brown University, Providence, RI, USA, January 28, 2015
    Talk by Matthias on "Beyond Lectures"
  • MIT Media Lab, Boston, MA, USA, January 26, 2015
    Matthias visiting Leo Burd and Philipp Schmidt
  • SRI International, Center for Technology in Learning, Menlo Park, CA, USA, October 24, 2014
    Talk by Matthias "Using Visual Representations for Teaching and Learning"
  • SPLASH/OOPSLA'14 conference, October 20-24, 2014
    Talk by Matthias (standing in for Mohammad, who's visa did not arrive in time) on "Mobile vs. Desktop Programming Projects: The Effect on Students"
    Matthias co-chairing OOPSLA AEC
    Matthias on PLATEAU workshop PC
    Matthias on PROMOTO workshop PC
  • PPPJ'14 conference, Cracow, Poland, September 23-16, 2014
    Talk by Luis on "JNIF: Java Native Instrumentation Framework"
  • ECOOP'14 doctoral symposium, Uppsala, Sweden, July 28, 2014
    Talk by Dmitri on CLOP
  • ITiCSE'14, Uppsala, Sweden, June 23-15, 2014
    Participation by Matthias in Working Group on "Methodology and Technology for In-Flow Peer Review"
  • OOPSLA'14 PC Meeting, UCLA, Los Angeles, USA, May 15/16, 2014
  • IFIP WG 2.4 Meeting, Asilomar, USA, February 2-7, 2014
  • SPLASH/OOPSLA'13 conference, Indianapolis, IN, USA, October 26-31, 2013
    Tutorial by Dmitri, Matthias, and Steve Blackburn on "Learn to hack a VM in 90 minutes"
  • VMIL'13 workshop, Indianapolis, IN, USA, October 28, 2013
    Invited talk by Matthias on "Debugging Virtual Machines"
  • PROMOTO'13 workshop, Indianapolis, IN, USA, October 27, 2013
    Participation by Matthias on a panel on "Making a difference 1,000 devices at a time"
  • University of Lugano, Switzerland, October 17, 2013
    Inaugural Lecture by Matthias "Informatics: Time Travel & Alternate Universes"
  • PPPJ'13 conference, Stuttgart, Germany, September 11-13, 2013
    Talk by Dmitri on "Jikes RDB: A Debugger for the Jikes RVM"
  • PASTE'13 workshop at PLDI, Seattle, WA, USA, June 20, 2013
    Talk by Matej on "ShadowData"
  • Presentations and lectures on "Informatics" at international schools, Rome, Italy, June 10-14, 2013
    Matthias and Andrea
  • OOPSLA'13 PC Meeting, Irvine, CA, May 15-17, 2013
  • IFIP WG 2.4 Meeting, Mysore, India, March 18-22, 2013
    Participation by Matthias as an observer
  • Dmitrijs Zaparanuks' Dissertation Defense "Algorithmic Profiling", USI, February 6, 2013
  • ISPASS'13 PC Meeting / MICRO'12 conference, Vancouver, Canada, December 1-5, 2012
    Participation in ISPASS'13 PC Meeting by Matthias
  • Dmitri Makarov's Research Prospectus Review "Multi-Variant Virtual Machine", USI room SI-008, October 26, 2012, 15:30
  • Visualization in University Level Computer Science Education Workshop, Wroclav, Poland, September 10-11, 2012
    Talk by Matthias on Informa: "Moving from Visualization for Teaching to Visualization for Learning"
  • Evaluate'12 workshop, Beijing, China, June 15, 2012
    Collaboration involving Matthias on "Improving Experimental Evaluation through Education"
  • ECOOP'12 conference, Beijing, China, June 14-16, 2012
  • PLDI'12 conference, Beijing, China, June 11-13, 2012
    Talk by Dmitrijs "Algorithmic Profiling"
  • USER'12 workshop at ICSE, Zurich, Switzerland, June 5, 2012
    Dmitrijs discussing "Is Essence a Measure of Maintainability?"
  • IFIP WG 2.4 Meeting, Vadstena, Sweden, May 20-25, 2012
    Participation by Matthias as an observer
  • Imperial College, London, Friday-Saturday, February 24-25, 2012
    Participation in ECOOP'12 PC Meeting by Matthias
  • Microsoft Research, Redmond, WA, Friday, October 28, 2011
    Talk by Matthias "Software: Design and Performance"
  • SPLASH/OOPSLA'11 conference, Portland, OR, October 23-27, 2011
    Talk by Milan "Catch Me If You Can: Performance Bug Detection in the Wild"
  • EduSymp'11 symposium, Wellington, Tuesday, October 18, 2011
    Talk by Matthias "Models and Clickers for Teaching Computer Science"
  • MODELS'11 conference, Wellington, October 16-21, 2011
    Talk by Dmitrijs "Vision Paper: The Essence of Structural Models"
  • Victoria University of Wellington, Friday, October 14, 2011
    Talk by Matthias and Dmitrijs "Software: Design and Performance"

Why Sape?

Sape stands for "software and programmer efficiency". Our research goal is to measure, understand, and improve the efficiency of systems, software, and the humans who use and develop them. Sape also is the name of an instrument, which is a nice pun, given that we often "instrument" systems to observe their behavior. Moreover, SAPE is the Nasdaq stock symbol for "Sapient", which means "wisdom, or the ability of an organism or entity to act with judgment". Currently, all members of our group are homo sapiens.