Clock is a language intended to support the development of interactive
software, including the development of distributed multi-media groupware.
Clock incorporates elements of visual, functional and object-oriented
programming. Clock is supported by the visual ClockWorks environment,
allowing the development, browsing and editing of object-oriented software
architectures. Architecture components are themselves programmed in a pure
functional language loosely based on Haskell.
Novel features of Clock include:
-
A fully defined formal semantics, based on the TCFP semantic framework;
-
Support for incremental development through a fast interpretive implementation
and support for executing incomplete programs.
-
Support for easy architecture evolution through the integration of constraints
with the architecture language.
-
Declarative support for graphical I/O.
-
Declarative support for multi-user applications, including automatic distribution,
networking and concurrency control.
-
Declarative support for continuous media, including sound, video and animation.
Clock is not yet available to the general public (pending better documentation
and more robust error handling), but can be made available to other researchers
on request.
After admiring the beautiful logo,
you might choose to look at the project bibliography.
Grad students may wish to look at some ideas
for thesis topics within the Department
of Computing and Information Science.
Quick jump to: [ Clock
bibliography | Graham's
home page | Urnes' home page
]