The TUNES Project

"To make an apple pie from scratch, you must first create the universe"

-- Carl Sagan





Mirrors | Sitemap | Collaboration

Mailing-Lists | Subprojects | Review subproject | FAQ



What does ‘TUNES’ stand for?

‘TUNES’ is a recursive acronym for: “TUNES is a Useful, Nevertheless Expedient, System”.

What is TUNES’ goal?

The TUNES project goal is to design and build the support for a system of handling information in a significantly novel and fundamentally more useful way. Modern computer science research has yielded hundreds of meaningful distinctions of possible programming semantics and syntax. These include procedural, functional, object-oriented, declarative, and a range of languages that solve higher-order terms in the most abstract sense. In the last 30 years, the world has also seen the rise of the use of internets: a robust unified way to encode the layout and behavior of computer networks that allows all of them to communicate in a standard way. TUNES will perform a similar role for programming languages and systems in general: it supports a new unified system of understanding computations, data, and formal linguistic expressions as objects on equal semantic footing (formally this relationship is among first-class objects). This object construct has no intrinsic semantics, and so can be used in many differing cases both of semantics and syntax. However, there are many difficult design considerations when attempting this, particularly keeping the relation of the construct to the various semantics as formally understandable and easy to manipulate as needed. This means that the relationship between objects and contexts must be explored carefully in developing a complete picture and architecture for TUNES.

Wouldn’t this be painfully slow?

Although this seems to be computationally taxing on a computer, the nature of a working TUNES system will help alleviate this by utilizing its internet-like nature as follows. If a working TUNES environment has the ability to absorb the information stored in some data or the process embodied in a program, then the information can remain encoded in that data or program until manipulation or study is desired, just as information on an internet may remain on a server or peer until called for. The environment will also provide for dynamic re-adjustment of the format of data structures for best performance by linking up the different kinds of data or program formats and activating the path between them to transfer the information. There is also the option currently being researched as partial evaluation which amounts to the caching of information at intermediate nodes along the route, often used in advanced compilers at various levels of semantics. In this way the environment provides for a distributed protocol for resolving the meaning of a piece of information in contexts where it was not defined.

Some of the beginning demonstrations of semantics that TUNES objects can be applied to include:

  1. Structure of expressions (a.k.a. syntax) - This is a well-understood problem involving binary trees or annotation trees of various sorts.
  2. Denotational semantics - This is the relationship of input to output of some function or relation or general state manipulation.
  3. General relationships between objects - It is easily possible to cast all information as object relatioships, however this involves varying the levels of linguistic context in advanced ways.
  4. Category theory - This theory involving the specification of types of mathematical objects has been proven mathematically to apply to many fields and to be ultimately flexible. A production TUNES environment will use this and many similar notions for describing the relationships between types of data or programs.

TUNES is not without precedent. Our research has looked extensively into various fields, particularly the following:

  1. The Lisp programming language and its variants - This most advanced and flexible programming language family is based on lists of symbols, a primitive approach to the general concept of syntax understanding and manipulation.
  2. The Maude equational rewrite programming language - This recent addition to the OBJ research language family allows for handling some very abstract systems of expression evaluation, and can handle multiple understandings of the same system and multiple strategies to understanding expressions.
  3. Arrow Logic and Substructural logics - These new additions to the family of logic and cognitive science research emerged in the last decade to provide newer, more natural formulations of both dynamic and static notions of truth and consistency. They also showed how adapting the means of expression to a domain often resulted in more reliable systems of reasoning. TUNES reasoning expands on these ideas and those of many other kinds of logic.
  4. Self-hosted environments - Programming language environments like Oberon, Symbolics Lisp Genera, Smalltalk-80, and Self have demonstrated different aspects of the flexibility and usefulness of an environment supported by its own programming language. Self in particular demonstrated how polymorphism of datatypes can be used to advantage of automatic performance enhancement without the need for excessive programmer involvement.

Finally, you may wonder where do these technologies or similarly-aspiring ones like XML or Tim Berners-Lee's Semantic Webs fail (aside from the relatively verbose nature of the syntax). The answer lies in the limitations of the expressiveness of the format, and how the notion of environment can implicitly get in the way. The history of Lisp can testify to this where often the nature of the level of flexibility in the environment greatly affected the usefulness of whatever language features were there. Also, the substructural logics field explicitly addresses the limitations imposed when relying on predicate logic and other very similar logics, as the Semantic Web idea does.

What do we want to build from TUNES?

The TUNES group is politically committed to promote libertarian ideas in computing systems, so we commit to using our designs to build a proof-of-concept system with variable degrees of reflective interfaces to itself.

The current computing culture is based on centralized development, encouraging an inverted concept of "intellectual property", information hiding, lack of expressiveness, unsecure low-level communications, and general noise. A TUNES system will promote free decentralized development, a fair market of well-defined services, freely published software, arbitrarily expressive information, secure communications, and meaningfulness.

A TUNES system can have lots of features that are just unimaginable on current systems (see below), and even though many of them might have been seperately implemented as isolated pieces of software on various different systems; only semantics-based reflectivity truely allows these features, and whatever other features the users will develop, to be dynamically combined in a decentralized way, freeing the world from existing rackets.


To enumerate some main features in technical terms, TUNES is a project to replace existing Operating Systems, Languages, and User Interfaces by a completely novel kind of computing environment, based on the use of reflective interfaces with flexible support for unification of system abstractions, security based on formal proofs from explicit negociated axioms, higher-order functionality, self-extensible syntaxes, fine-grained composition, distributed resource management, orthogonally-persistent storage, fault-tolerant computation-handling, version-aware identification (Editor’s Note: What is this supposed to mean?), decentralized (no-kernel) communication, dynamic code regeneration, high-level models of encapsulation, hardware-independent exchange of code, migratable actors, yet (eventually) a highly-performant set of dynamic compilation tools (phew).

These are not buzzwords. These are technical terms, and we will provide precise definitions of them in our Glossary (if you miss a definition, let us know to add it).

We want to implement such a system because we know all these are required for the computing industry to compete fairly, which is not currently possible. Even if TUNES itself does not become a world-wide system, we hope the TUNES experience can speed up the appearance of such a system that would fulfill our requirements.