                                      TALC
                                      ====

Release 1.5+
Copyright
    Greg Morrisett, Neal Glew, Dave Walker, Steve Zdancewic, Stephanie Weirich,
    Frederick Smith, and Dan Grossman July, August, September 1998,
    January 1999 all rights reserved.

The TALC compiler consists of a set of tools for Talx86, a variant of
typed assembly language for the IA32 architecture, and some front ends
that demonstrate its viability as a target language.  Currently the
there are two front ends: popcorn and scheme.  There used to be a
third front end for KML, but it was broken by some changes to
Talx86.  A major rework of the KML front end is underway.

There is now a scheme compiler written in popcorn.  It uses a tal datatype
and printer also written in popcorn.  To build it, go to apps/popcorn and run
make scheme.

See the file INSTALL for instructions on building and running TALC.

See the files doc/TODO and doc/CHANGES for information about what has been
done and needs to done.

TALC Sources
------------

(* Documentation *)
doc
  CHANGES                    - master log of changes made to sources
  release-instructions.txt   - how to release TALC
  TODO               	     - master list of stuff to be done
  tal.el             	     - emacs 19.x mode for editing .tal & .tali files
  talx86_lang_spec   	     - specification of the lexing and syntax

(* General Purpose Programming Utilities/Data Structures *)
util
  binout
  bitmatrix
  dict
  numtypes
  set
  splay
  stringchan
  utilities
  xarray

(* Compiler Specific Utilities *)
computil
  header          - template for copyright notices
  identifier

(* TALx86 and Tools *)
talx86
  coff
  elf
  objfile
  tal
  talasm
  talasmx86
  talbe
  talcon
  talctxt
  tallex
  tallinkchk
  talout
  talparser
  talpp
  talverify

(* TAL Control flow graphs and tools *)
cfg
  cfg
  cfginstr
  cfgliveness
  cfgopt
  talutil

(* Register Allocator *)
regalloc
  regalloc
  regifg
  regrewrite

(* Runtime System, Garbage Collector *)
runtime
  gc.lib              - Boehm Weiser collector
  pop_runtime.c       } Popcorn runtime
  pop_runtime.tali    }
  representation.doc  - some notes about sums, exceptions, and arrays
  stdlib.c            } Standard library of sorts
  stdlib.tali         }
  tal.inc
  tal.tali            } Program stuff
  tal_prog.tali       }
  tal_start.c
  tal_util.asm
  tal_util.tal
  tal_util_i.tali
  tal_util_e.tali

(* Toplevel Driver *)
toplevel
  gcd
  gcdfe
  gcdfec
  lineno
  talc

(* Popcorn Compiler *)
popcorn
  calc    - A calculator example
  plan    - An unfinished PLAN interpreter
  README
  popcompile
  popcompilereg
  popcorn
  poperr
  poplex
  popparse
  poppeep
  popsyntax
  poptype

(* Scheme Compiler *)
scheme
  sast
  scheme
  sclib.c     - standard library needed by compiler
  scomp
  sil
  slex
  sparse
  std-lib.ss  - scheme standard libarry

(* Compiler Tests *)
tests
  popcorn
  scheme
  talx86

(* Applications *)
apps
  popcorn
    README
    Makefile
    util
    talx86
    scheme
