Practical Techniques for Language Design and Prototyping

Abstract

Global computing involves the interplay of a vast variety of languages, but practially useful foundations for language specification and prototyping at the semantic level are lacking. In this paper we present a systematic approach consisting of three techniques: (1) A generic calculus of explicit substitutions with names (called CINNI) that allows us to give a first-order representation of syntax to uniformly deal with all binding aspects. (2) An executable representation of Felleisen-style operational semantics in terms of first-order rewrite rules. (3) A logical framework, namely rewriting logic, that allows us to express (1) and (2) and, in addition, language aspects such as concurrency and non-determinism. We illustrate the use of these techniques in two applications: (1) A formal specification and analysis of PLAN, a Packet Language for Active Networks, that has been developed in the Switchware project at UPenn. This work was conducted in the scope of the DARPA Active Network Program. (2) The development of CIAO, a Calculus of Imperative Active Objects, a core language for concurrent object-oriented programming. It is especially designed to allow the representation of practically relevant sublanguages of common object-oriented languages such as Java, C#, and C++. This second application is subject of ongoing work.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Jan 01, 2005
Accession Number
ADA484933

Entities

People

  • Carolyn Talcott
  • Mark-oliver Stehr

Organizations

  • University of Illinois Urbana–Champaign

Tags

Communities of Interest

  • Materials and Manufacturing Processes

DTIC Thesaurus Topics

  • Abstracts
  • Agent-Oriented Programming
  • Calculus
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Data Storage Systems
  • Language
  • Military Research
  • Object Oriented Programming
  • Product Prototyping
  • Programming Languages
  • Software Development
  • Specifications
  • Standards

Fields of Study

  • Computer science
  • Engineering

Readers

  • Computational Linguistics
  • Database Systems and Applications