Linux Software Map: ULC

  • Version: 0.10
  • Entered-date: 1997-12-16
  • Description: ULC: Uniform Languages of Composition The ULC system is a tool to build interpreters for a special (rich) family of languages. Each language will be strongly typed, possibly polymorphic, and may support infix operators that can be overloaded. End-users only see types in error messages and in descriptions of syntax, since type information is inferred based on use, the descriptions of syntax and constants (e.g.\ some languages will allow a variable to be allocated, but must insist on inferring its type from the way it is used.) The semantics of commands constitute separately compiled components, that share several aspects with classes in object-oriented languages, but with additions to support `templates', `higher-order classes', `multiple views', `iterators' and more. Incremental development of interpreters is emphasised. Adding one new form of command requires addition of its syntax to a description file, automatic generation of a semantics outline, manual completion of the semantics and recompilation. Semantics are subroutines in the language accepted by the GNU C compiler, and depend on the implemented extensions in important ways. A command for an interpreter will express composition of components, and the interpreter will be able to translate the command to a C main program that can be linked with the semantics library to yield a stand-alone program. The package contains an example interpreter with command forms that can be used to express a tcp-server, starting a child process, pipe manipulations and threading -- all with complete implementation details.
  • ftp://ftp.it.dtu.dk/pub/jsm
  • Keywords: Interpreters component composition polymorphism.
  • ftp://ftp.it.dtu.dk/pub/jsm
  • Platforms: i386-linux
  • Copying-policy: Rights of unmodified package distribution and use of the software are granted for free. All other rights reserved.
Note: Not all entries contain correct, complete filenames or URLs. FTP sites often refuse connections due to excessive traffic. If you have difficulty with the provided links to individual files, try the first link, which is usually to a directory or web site for the program as a whole.
Up to Linux Software Map