White Programming Langauge     Main   |   Download   |   Documentation

White Programming Language

White is a programming language for mobile networks. It is our position that present-day programming languages such as Java and C# form a bottleneck when developing applications for open distributed environments. Their model for concurrency, usually implemented via threads, and distribution, typically based upon synchronous remote method invocations, gives rise to numerous problems with respect to the frequent failures encountered when communicating over wireless technologies. The fact that communication failures have become the rule rather than the exception requires a different paradigm.

There can be no question as to the direction today's manufacturers are leading the industry: pervasive wireless networks with numerous embedded live devices in our environment are the future. Next-generation programs will have to be always-on, dynamically updatable and constantly interacting with other programs and entities residing on different virtual and physical machinery. Such machinery may include cellular phones, PDAs, notebooks, servers, people's clothes, kitchen appliances and cars, among countless others. Sensor networks composed of RFID tags will be able to 'digitize the world,' by establishing what can be thought of as a massive processor cloud.

All of these should be strong indicators to researchers of today that computer science will require totally new paradigms to properly discuss, model and implement the distributed computing environments of tomorrow. This vision of applications, programming languages and computing is reflected in the broader context of Ambient Intelligence (AmI). The European Union's IST Advisory Group has put forth AmI as one of the research areas in which Europe should invest over the coming years.

The White System Project plans to realize many of the concepts defined by ISTAG in a single language. Briefly, the White language proposes a set of language primitives and tools for explicitly handling the network and concurrent computations. This robust set of primitive functionality will abstract away the complexity inherent in the core machinations of concurrent software, allowing the programmer to think about the more high-level and immediate concerns of how to break their problem up into discrete computation elements capable of asynchronous execution.

Project Resources

Development Status

Project inception was mid-March of 2007. As of Mon May 14 2007, the project members are actively engaged in the design phase. Build out of low-level components is underway, including the network subsystem and virtual machine.


Please contact John Quigley at jquigley#jquigley.com with inquiries.