We can prove theorems about the code. For example, we have been able to check the correctness of certain manual optimizations made to the Ensemble code. Secondly, we can partially evaluate the type theory, and perform optimizations for certain common occurrences automatically. A second translator is then used to translate the result back into ML, so it can be incorporated back into Ensemble. The Tacoma project is interested in mobile code technology.
Mobile code is interesting for a variety of applications.
For example, in active networks, addresses in packets are replaced by code that is executed on the routers. In data mining, specialized executable queries may be sent to very large data bases. We are interested in providing such support, and are focussing particularly on the aspects of security and fault tolerance. A version of Tacoma with rudimentary support for fault-tolerance and security is being distributed. Currently, we are developing a key service that is tolerant of mobile virus attacks using an asynchronous proactive secret sharing protocol.