Introduction - The HAC Language
Description: The HAC Language

Next: Types, Previous: Goals, Up: Top

## 1 Introduction

> But in our enthusiasm, we could not resist a radical overhaul of the system, in which all of its major weaknesses have been exposed, analyzed, and replaced with new weaknesses.
> Bruce Leverett, “Register Allocation in Optimizing Compilers”

In the beginning, there was CSP.

This document describes the language specification for the HAC Language.

Should be largely implementation-independent. But we discuss some of the issues.

Our implementation is a multi-phase compiler with four phases:

- Compile – like precompiling modules
- Link
- Unroll – hierarchical expansion of top-level instantiations.
- Finalize – unique instantiation after connections.

Compile-time is ...

Link-time is ...

Unroll-time is ...

Finalize is ...