[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MIT C Scheme design info

The following is a list (part 2 of 2) of most Scheme files used in the 
MIT C Scheme interpreter circa verson 4.1, along with a brief statement 
of their function.  Most of the information has been gleaned
gleaned from the short comment at the beginning of each
file.  This list gives a flavor of how the interpreter is organized,
and should help new readers of the code to find their way around.

Note that much (half?) of C Scheme is written in C, and is not
listed here.  The list of C files (part 1 of 2) for the microcode 
interpreter was posted earlier.

I know now that the earlier posting of C files contained minor errors,
and at the very least is somewhat out of date (my version is 4.1, 
vs. the current version of 6.2.0).  (No doubt the same two facts will
hold for this file too, but it's a start...)   Any mistakes are my own.

- Kevin Jameson, 31 March 88 

FILE           Brief Function
=============  ==================================================


xbuild.scm      build a cross syntaxer system
abuild.scm      build a system for athena
ubuild.scm      build a unix interface scheme system
sbuildmd.scm    build a student (MIT 6.001 course) scheme system
studentmd.scm   env,syntax,& read tbl mods for 6.001 students
featmd.scm      std features scheme system 


error.scm       rep (read-eval-print) interface,error defs,definers,handlers
parse.scm       scheme parser for The REP Reader (ch class tbls,macros,atoms)
print.scm       The REP (read-eval-print) Printer
read.scm        The REP Reader (tyi/eof/input streams,with-input-from-file)
rep.scm         the read-eval-print loop,history,and history access funs
repuse.scm      REP user interface (prompts, drivers, proceeds)

CROSS SYNTAXER  (the byte code (scode) compiler)

syntax.scm      the Cross Syntaxer (byte code (scode) generator/compiler)
scan.scm        definition scanner reduces n of "real auxilary" vars in env
xconv.scm       convert declarations into integrations
xpatch.scm      special lambda interface
xsubst.scm      integration of primitives (merger, dispatcher)
unsyn.scm       unsyntaxer converts scode back to sexprs

MISC DEFINITIONS and Data Type Stuff

adapt.scm       compatability defs (true/#!true,nil/'(),list*/cons*)
crock.scm       defs of special obj types (state & syntax tables, type obj)
stypes.scm      scode type setup (TC's: symbols,conditions,proctypes,etc)
scode.scm       scode grab bag (consts,many predicates for data types)
sdata.scm       abstract data field funs(ctl pts,set!s,refs,pairs,vects,etc)
types.scm       abstract typing funs (supremum/infimums?,lattice theory stuff)
ustruc.scm      microstruc? (follows scode abstraction in boot sequence)
utabmd.scm      ucode type tables (fixed,types,returns,prims,externs,errors)
utabs.scm       ucode tbl intrfc (fixed obj vec,type detection,TC,RC,TERMC..)


bitvec.scm      1 bit vector ops (cons,set,size,ref,1b? predicates)
char.scm        character defs, bit tables, charscan table generator funs
equals.scm      many equality funs (eqv?,equal?,etc)
explode.scm     maclisp style printname utils (explode,implode,readch,ascii)
format.scm      output string formatters, format dispatch table
gensym.scm      uninterned symbol generator
gprims.scm      global primitives list (defs funs in global env for compiler)
hash.scm        object hashing, unhashing, population functions
io.scm          primitive io utils (channel stuff, files vector/locks,hunk3s)
list.scm        lisp ops (cons,pair?,length,cxr,mappers,assocs,members,etc)
load.scm        program loading
lambda.scm      lambda abstraction (lambda,lexpr,extended-lambda)
narith.scm      scheme math funs (+,-,trigs,floats,polys,min/max,etc)
oldio.scm       old io procedure names (channel io stuff)
pathnm.scm      pathname utils (make,drive,directroy,type,conversion funs)
primlist.scm    primitive list ops (cons,memq,assoc,cxr,etc)
scomb.scm       scode combinator abstractions
stream.scm      stream utilities (append,filter,accumulate,merge,etc)
string.scm      character string ops
strmac.scm      stream macros
uio.scm         useful file io funs (read,copy,rn,dl,exists?)
unpars.scm      unparsers for converting objects to string representations
vector.scm      vector ops (make,copy,vector references..)
xlist.scm       extended list ops (mapcan,mapcan*,or,and)


advice.scm      tools to advise funs (trace,break,other advice wrappers)
pp.scm          scheme pretty printer
rrrs.scm        revised report on Scheme compatability defs,macro definers
wind.scm        state space world model (state pts,dynamic wind,protectors..)


comand.scm      debugger command loop support
debug.scm       scm level debugger w/ display,history,motion,continuation cmds
stackp.scm      scheme control stack parser for debugger
where.scm       the environment inspector(show,show-frame,print bindings...)
xdebug.scm      debugging primitives


boot.scm        bootload utils, run after coldmd. defs of global primitve funs
datime.scm      date time utils
events.scm      event distribution system
file.scm        file package (catalog,floppy,volumn,directory,misc funs)
gc.scm          scheme garbage collector, gc-daemon list, suspension funs
gcstat.scm      garbage collector meters, history modes, etc
history.scm     history manipulation (backbone & ribs, push/pop history, etc)
intrpt.scm      interrupt system (timers,keyboard ints,default handlers)
link.scm        links compiled byte code ?
photo.scm       ? takes an internal photo or something (whatever that is)
sysclk.scm      system clock utils (set,read,interval calculations)
system.scm      system funs (world dumpers,disk savers)
world.scm       world ops (save, disk restore, quit, exit..)


implmd.scm      defs for implementation dependencies (mostly whtspc ch codes)
spmd.scm        control stack/control point funs
xusermd.scm     cross syntaxer user interface (pathname and string funs)
coldmd.scm      first scm code runs early, builds obarray, fixed obj vector
runmd.scm       loads compiled code for runtime system


bgraph.scm      bobcat (starbase) graphics interface
emacs.scm       emacs interface to scheme system
future.scm      part of butterfly basic band load (atom macros)
graphics.scm    graphics system interface (draw-line,line styles, etc)
process.scm     interface to unix primitives (signal,spawn,wait,pause,etc)
qsort.scm       a scheme quicksort
sample.scm      shows how microcode C funs are linked into scheme
unix.scm        unix scheme interface (cwd,mkdir,kill-eol,getenv,etc)

6.001 Course

login.scm       student login/logout utils
logout.scm      student logout utils (resets 6.001 student environment)
namelist.scm    machine names for 6.001 lab


chapter1.cod        Scheme code from text by Abelson & Sussman,
chapter2.cod        Structure and Interpretation of Computer Programs

PROBLEM SETS    (mostly related to SICP)

adventure.scm   a game
compiler.scm    simple scheme compiler (see Struc & Interp of Comp Progms)
eceval.scm      explicit control evaluator (see SICP)
ecevsyn.scm     expr & env defs used by explicit ctl eval (see SICP)
regsim.scm      register machine simulator (see SICP)
ps4.scm         huffman encoding funs
ps5.scm         basic generic math funs (ints,polys,rationals, see SICP)
ps6.scm         imaginary world defs (deans,trolls,etc)
ps7.scm         stream utils
ps8eval.scm     evaluator funs for explicit ctl evaluator (see SICP)
ps8mods.scm     environment, binding utils (see SICP)
ps8putget.scm   put/get procs (see SICP)
ps9data.scm     database for query language interpreter (see SICP)
ps9query.scm    query language interpreter (see SICP)
ps10load.scm    program loader