Programming Languages and Translators
Lecture 14: March 10, 2014
Guest Lecture by Dr. Thomas Ball
Touchdevelop: Productive Scripting on and for Mobile Devices and Web Services
- TouchDevlop is a programming environment that provides high-level
abstractions to enable the productive creation of scripts on and for
mobile devices that access web services.
TouchDevelop has four main components:
- A statically typed scripting language with novel abstractions to support
(a) stateless GUIs with support for live programming and
(b) replicated data for collaborative applications.
- A browser-hosted touch-based integrated development environment that makes
it possible to productively create scripts that execute across a variety of devices.
- A set of high-level APIs to make it easy to access device sensors/resources
and web services.
- A cloud back-end that enables a social approach to software development.
In this talk, Iíll first briefly demonstrate TouchDevelop and show how it
is being used in education at various levels. Iíll then dig into the language
abstractions and run-time support for live programming and replicated data,
as well as the research opportunities opened up by hosting a software environment
in the cloud.
Apps demoíd during the presentation:
- Thomas Ball (Tom) is a Principal Researcher and Research Manager at Microsoft
Research. From 1993-1999, he was a member of the technical staff at Bell
Laboratories. His 1997 PLDI paper on path profiling with colleagues Ammons
and Larus received the PLDI 2007 Most Influential Paper Award. In 1999,
Tom moved to Microsoft Research, where he started the SLAM software model
checking project with Sriram Rajamani, which led to the creation of the
Static Driver Verifier (SDV) tool for finding defects in device driver
code. Tom and Sriram received the 2011 CAV Award "for their contributions
to software model checking, specifically the development of the SLAM/SDV
software model checker that successfully demonstrated computer-aided
verification techniques on real programs." Tom is a 2011 ACM Fellow
for "contributions to software analysis and defect detection".
As a manager at Microsoft, he has grown research areas such as
automated theorem proving, program testing/verification, and empirical