Path: utzoo!utgpu!water!watmath!clyde!att-cb!att-ih!alberta!calgary!jameson From: jameson@calgary.UUCP (Kevin Jameson) Newsgroups: comp.lang.scheme Subject: Re: MIT C Scheme design info Summary: List of scheme interpreter files and their approximate contents part 2 of 2 Message-ID: <1520@vaxb.calgary.UUCP> Date: 2 Apr 88 02:37:27 GMT Organization: U. of Calgary, Calgary, Ab. Lines: 182 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 ..!{ihnp4,ubc-vision}!alberta!calgary!jameson FILE Brief Function ============= ================================================== SCHEME SYSTEM TYPES 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 INTERPRETER 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..) PRIMITIVES 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) PACKAGES 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..) DEBUGGER 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 SYSTEM 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..) MACHINE DEPENDENT (md) 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 MISCELLANEOUS 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 EXAMPLES chapter1.cod Scheme code from text by Abelson & Sussman, chapter2.cod Structure and Interpretation of Computer Programs chapter3.cod chapter5.cod chapter4.cod 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