REINVENTING COMPUTING: HyperCode and Inline Annotations for Global Cooperative Computing

From: John J. Deneen (
Date: Tue Sep 05 2000 - 20:59:53 PDT

GLOBAL COOPERATIVE COMPUTING - aimed at defining and using programs
stored as web based hypercode (a retired project at MIT)

"Our vision of cooperative computing is closely tied to exploiting the
World-Wide Web and providing programmers with a flexible and powerful
code management environment -- HyperCode. HyperCode brings HyperText
technology to program source code. Program source code is richly
annotated with direct links to relevant information including definition
sites, program genealogy, quality annotations, and documentation. The
base functionality HyperCode provides is explicit function Call
Callee-source links.
These links provide a number of key benefits. They allow programs to
precisely indicate their dependencies making it easier for people to
share code. Further, the links identify a canonical home site for each
piece of code. This home site serves as a rendezvous location for
information about the code, including performance, functional quality,
usage statistics, and version information. The canonical HyperCode
version of a piece of code collects this information in an automated
manner. New versions are linked to the original, making innovations or
fixes rapidly and automatically available to all users. The support
structure we envision automates the tedious aspects of shared code
maintenance, usage reporting, verification, and updates. Human expertise
is still vital, but the effort required on the part of the programmers
and user is drastically reduced by sophisticated support tools."


"HyperCode presents HyperText views of the annotated, shared code
maintained by a global cooperative computing database. We currently plan
to accommodate a wide variety of annotations. As such, rather than
trying to ever present the entire database at once, HyperCode will
present a series of selected views into the database. E.g. There will be
views which only show comments, views which only show certain kinds of
feedback annotations, and views which only show coredump information.
All views will include caller/callee links, and various mixed views may
be supported.

In virtual HyperText form, the HyperText for each HyperCode view will be
generated on the fly as needed. Code running on the server will extract
the appropriate data fields from the database and format it into
suitable HyperText for presentation as needed. Presented HyperCode will
include options to conveniently switch among views as desired.

The HyperCode views also provide the user with interfaces which allow
annotations to be posted to the database.

HyperCode links will be typed to allow clients to walk code and extract
relevant information. E.g. The client needs to be able to distinguish
dependency links from alternative code links from documentation and
comment links so that it can grab the proper information during import.
Further, typed links inform the client how to deal with the information
obtained along each link."


"Global cooperative computing exploits the National Information
Infrastructure / World-Wide Web to deploy new software, leverage scarce
human expertise, and acquire feedback information on deployed software
use. Global cooperative computing links deployed software back to
standard, home repositories on the NII/WWW. Throughout each program's
lifetime, the computing system uses this rendezvous point to communicate
usage experience, program improvements, and program variations.

   * By enabling experts throughout the NII to contribute to software
     development and optimization, we dramatically increase the
     expertise contributed to each application.
   * By developing and maintaining quality software nation wide, we
     scale reuse up to the NII level.
   * Global cooperative computing provides a delivery path which allows
     fielded applications to discover new and applicable software
     developments within days, dramatically decreasing the time required
     to incorporate new technology into existing systems.
   * Software automatically maintains feedback, usage, and optimization
     information, dramatically reducing the human involvement in
     distributed system maintenance and data collection.
   * Program improvements are automatically incorporated into relevant
     applications, dramatically reducing human maintenance time.
   * Since applications discover and incorporate relevant improvements
     themselves, each improvement is utilized by a dramatically larger
     set of applications than is currently possible."


"The database supporting advanced HyperCode stores code primarily at the
granularity of individual function and data type definitions. The
database itself is constructed in such a way as to be
language-independent, and can therefore be used as a repository for code
of all languages.

An augmented version of our compile-time HyperCode generator can
decompose C programs into functions and data structures, then insert
them into the code database. Alternatively, once basic HyperCode has
been generated for a program, a simple tool can extract a particularly
interesting individual function, along with all of its dependencies
(both functions and data structures) from a larger piece of code, and
insert each of them into the database. Programs in other languages than
C can be handled in a similar
fashion by language-specific tools."

"Work in-progress includes the construction of a global server that
serves Java code and provides annotation support. There is also work
progressing on compiler systems that provide automated optimization
using feedback directed specialization and alternative code selection

As we develop systems within the GlobalCC framework we plan to produce
specifications on code object encapsulation, server protocols and server
APIs. Collaboration on this project and discussion of related issues is
welcome. Questions should be sent to the contact author or to"

Contact Author: Ian Eslick
MIT Artificial Intelligence Laboratory
545 Technology Square, NE43-793
Cambridge, MA 02139
Phone: (617)-253-8597
FAX: (617)-253-5060

This archive was generated by hypermail 2.0.0 : Tue Aug 21 2001 - 17:57:54 PDT