Experimenting with programming languages

  • Authors:
  • Todd Millstein;Alessandro Warth

  • Affiliations:
  • University of California, Los Angeles;University of California, Los Angeles

  • Venue:
  • Experimenting with programming languages
  • Year:
  • 2009

Quantified Score

Hi-index 0.01

Visualization

Abstract

Researchers are in the business of having good ideas. Of course, not every idea we ever have is a good idea, so we rely on experiments to find out how good an idea really is. Unfortunately, because experiments are expensive—they usually take considerable time and effort—we can only afford to experiment with our "more promising" ideas. This is a problem, because the only way to really know if an idea is promising or not is to experiment with it in the first place! It follows that new ideas and technologies that enable researchers to experiment more quickly and easily can have a huge impact on the rate of progress of any given scientific discipline. This dissertation focuses on experimentation in computer science. In particular, I will show that new programming languages and constructs designed specifically to support experimentation can substantially simplify the jobs of researchers and programmers alike. I present work that addresses two very different kinds of experimentation. The first aims to help programming language researchers experiment with their ideas, by making it easier for them to prototype new programming languages and extensions to existing languages. The other investigates experimentation as a programming paradigm, by enabling programs themselves to experiment with different actions and possibilities—in other words, it is an attempt to provide language support for what if…? or possible worlds reasoning.