$Id: 00README.txt,v 1.6 1998/03/24 23:10:32 leavens Exp leavens $ This directory is a library for Com S 641, Semantic Models of Programming Langauges at Iowa State University. The code in this directory is geared to David A. Schmidt book, "The Structure of Typed Programming Languages" (MIT Press, 1994). It is intended to be used as a basis for homeworks in class. The code is written in Haskell 1.4. The files with suffix .lhs are "literate" Haskell programs, and the files with .hs suffix are normal Haskell programs. Each file contains one module, with the modules name being the same as the file name without the suffix (as required by Hugs). To display the organization in discussions below, we use the notation: B | C which means that module C (in C.lhs or C.hs) imports module B. Note that C usually imports some of the modules that B imports, but to save space, these aren't generally shown explicitly MODULES FOR CHAPTER 1 The type checker is found in the following modules (the Domains and Stores modules are only included here because the CoreLangProgs module is also used for testing semantics). ParserFunctions | LexerTools | CoreTypeAttributes CoreLangParser | | CoreTypeHelpers CoreLangUnparser Stores \ / / CoreTyping Domains \ | \ CoreLangProgs Testing \ | / \ | / CoreTypeTest The basic denotational semantics is found in the following modules. ParserFunctions | LexerTools | CoreTypeAttributes CoreLangParser | | CoreTypeHelpers CoreLangUnparser Stores \ / / CoreTyping Domains \ / \ Testing CoreSemantics CoreLangProgs / \ / --------- \ / / CoreLangTest A monadic version of this semantics is found in the following. ParserFunctions | LexerTools | CoreTypeAttributes CoreLangParser Stores | | | CoreTypeHelpers CoreLangUnparser Domains \ / / | CoreTyping MonadStore | \ / | Testing CoreMonadSemantics CoreLangProgs / \ / ------------ \ / / CoreMonadTest A little step operational semantics is found in the following. ParserFunctions | LexerTools | CoreTypeAttributes CoreLangParser | | CoreTypeHelpers CoreLangUnparser Stores \ / / CoreTyping Domains \ / \ Testing CoreLittleStep CoreLangProgs / \ / ---- \ / / CoreLittleStepTest MODULES FOR CHAPTER 2 The type checker is found in the following modules (the Domains and Stores modules are only included here because the WhileNProgs module is also used for testing semantics). ParserFunctions | FinFun LexerTools / \ | Environments TypeAttributes WhileNParser Environments \ | | \ / TypeHelpers WhileNUnparser / Stores \ / / / WhileNTyping /-----/ Domains \ | / \ WhileNProgs Testing \ | / \ | / WhileNTypeTest The basic denotational semantics is found in the following modules. ParserFunctions | FinFun LexerTools / \ | Environments TypeAttributes WhileNParser Stores FinFun \ | | | / | TypeHelpers WhileNUnparser| Domains Environments \ | | \ / WhileNTyping | WhileNDomains | | / \ Testing | WhileNSemantics WhileNProgs / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ \ / / \ \ / / \ \ / / WhileNTest