Logical shift Project home

Project specification

A lightweight, connected language for small devices

The problem

To design a language suitable for execution on a wide range of consumer mobile devices.

Elaboration

'Consumer mobile devices' includes mobile phones and PDAs. They are assumed to have some form of outside data connectivity. These devices have several traits that have an important impact on the design of the language:

The most important question associated with any such application as this is: "What will it be used for?". In my opinion, a mobile language will be most useful for content providers to add interactivity to their content. Aside from the obvious mobile games applications, a stock company, for instance, that might presently send important alerts as SMS messages or emails, may use a program running on the users mobile device to display graphs and other statistics, and offer the user the option to request more information, or perhaps buy or sell shares.

Objectives

These objectives are specified in roughly chronological order. Objectives considered optional are also specified, and may be qualified with 'preferred' if their completion is to be preferred for the completion of the project.

Methods

For this project, C is the language of choice. It is implemented for a very wide range of devices and targets, and there are many retargetable compilers (such as lcc or gcc) that make exapanding the range easy. For the purposes of the project, I will use the Palm Pilot, OS 3.1, as the intended target, as development tools and emulators are freely available. Flex and Yacc are traditional compiler building tools, and may make a good choice for developing assemblers and compilers.

Timetable

(To be decided)

Resources

The intention is to do most of the development on my home machine, and maintain offsite backups of the data on the University system, as well as through my normal CD backup system. The University system will also be useful for providing demonstrations of working code.


Andrew Hunter
Last modified: Wed Jun 28 21:31:06 GMT 2000