Generating machine-dependent compiler parts using CSDL

Site Map

Introduction

ASDL

CSDL

  • CCL
  • \-RTL
  • SLED
  • vpo

    RTLs

    Talks & Papers

    Software

    People

    Mailing lists

    Job Openings


    Nat'l Infrastructure

  • What & Why?
  • Sponsors

  • The Zephyr family of Computer Systems Description Languages make it possible to use formal machine descriptions to create retargetable systems software. All members of the CSDL family have the same view of two core aspects of machines: instructions and state. Specifications may give instructions attributes, including syntax and semantics.

    Each individual language in the CSDL family should be specialized to describe either a single machine property (e.g., calling convention) or a group of closely related properties (e.g., assembly-language and binary representations of machine instructions). Any such property will likely be of interest to some, but not all, systems software. A CSDL language may be designed in concert with an application generator, so it can present information at a suitable level of abstraction. Examples include pipeline and memory descriptions for different implementations of the same architecture, object file formats used by the assembler and linker, and procedure-calling conventions used in high-level-languages. Applications or application generators need work only with the languages they are concerned with.

    The style of specification CSDL supports is to write a different description, using a different CSDL language, for each interesting property of the target machine. The descriptions are connected by their common view of that machine's instruction set and storage locations. Separating descriptions of different properties makes CSDL specifications modular and reusable. For example, different machine models may share descriptions describing core semantics and calling conventions, but they may have different pipeline descriptions or memory interface descriptions.

    The CSDL family currently includes


    Back to Zephyr home page