Summary: HiNRG Technical Report: 22-09-2008
The Latte Programming Language
Razvan Musaloiu-E.
razvanm@cs.jhu.edu
1 Introduction
Several attempts have been made to construct high-level languages for implementing TinyOS-
based applications. Some of these attempts have taken the form of general purpose languages
(TinyScript and Mottle in Mat´e [3]), some were designed for a specific application domain
(TinyDB [4], Regiment [6], WaveScope [5], etc), while others explored specific programming
paradigms (DSN [1]). The method used to run code written in each language also varies from
virtual machines (Matt´e), to interpreters (SensorScheme [2]), to binary code implemented
in nesC (DSN, Regiment, WaveScope).
The Latte programming language is another attempt, with similar goals. Specifically,
Latte makes several contributions:
ˇ It brings to sensor networks JavaScript, a popular scripting language used in many
other application domains;
ˇ It allows high-level emulation inside JavaScript enabled web browsers;
ˇ Latte programs compile to binary code via a source-to-source translation into C.
The benefit of the first two contributions is that now sensornet applications can be rapidly
prototyped without the need for compiling them and running them either natively on a mote