Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456 The Iota Programming Language
The Iota Programming Language
What is it?
Iota is a compact programming language designed by
Dr Gavin Bierman
and
Dr Peter Sewell
of the University of Cambridge Computer Laboratory.
It is an XML-based concurrent language, designed to enable the easy
writing of applications of the future. The future "ubiquitous
computing" environment will consist of many potentially small
computing devices communicating over both traditional and wireless
network infrastructures.
Writing software for such future environments will be a
challenge. Programmers will demand highly abstract methods for dealing
with communication between, and creation of, concurrent
applications. Moreover the lingua franca for inter-process
communication will be XML.
To address these challenges, we have designed the Iota programming
language. The two significant features of the language are
XML
Iota incorporates XML as first-class data
values. Thus no APIs are needed to create XML datavalues;
they can be written as is in your Iota code. For example the
following is a valid piece of Iota code!
<themeaning of="life">7*6</themeaning>
Iota provides the powerful facility of pattern
matching. This enables compact and highly readable
code. For example the following piece of code accepts a piece of
person markup as an argument and returns its age
attribute value.
fun returnAge <person age=a> => a;
Concurrency
Iota provides a very high-level model
of concurrency, via named channels. Channels can be
created and values can be send down or read from channels. Security is
captured by restricting access to the name of a channel.
This notion of concurrency is based on work on the pi-calculus, by
Professor Robin Milner and others. Read
this
for a concise introduction to the pi-calculus and various extensions.
Is there any documentation?
The main document is the language reference manual, which is
available here. (UPDATED VERSION - AUGUST 5,
2002)
An Overview of Iota
These are some slides from a talk to some industrial colleagues,
explaining the role of Iota in the AutoHAN project. They do give some
working code! (I ran the code in the talk)
Applications
Our primary application sofar has been the development of a future
generation Home Area Network. This has been in the context of the
AutoHAN
project run by
Dr David Greaves.
Availability
We offer a prototype
implementation (written by Ewan Mellor as part of
his undergraduate project). This is a 100% pure Java
system, which consists of a compiler and top-level interpreter.
Click here for a gzipped tar file
containing the source code, classes, and test code, together with
instructions for installation.