SAMPL Project ReportMike Glass Mike Haskel Navarun JagatpalMorgan RhodesMay 7, 2007Contents1 Introduction and Motivation 31.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 Functional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3 Strictly Typed . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.4 Control Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.5 Possible Applications . . . . . . . . . . . . . . . . . . . . . . . 52 Tutorial 62.1 Hello, world . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2.1 Higher-order functions, Currying, and partial application 72.3 Operators and types other than intensity . . . . . . . . . . . . 72.3.1 Constants . . . . . . . . . . . . . . . . . . . . . . . . . 82.4 Useful functions and an example program . . . . . . . . . . . 83 Manual 103.1 Lexical Conventions . . . . . . . . . . . . . . . . . . . . . . . . 103.1.1 Identifiers . . . . . . . . . . . . . . . . . . . . . . . . . 103.1.2 Keywords . . . . . . . . . . . . . . . . . . . . . . . . . 103.1.3 Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . 113.2 Behavior of Generated Programs . . . . . . . . . . . . . . . . 113.3 Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.3.1 Types . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.3.2 Values . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.3.3 Unit Values . . . . . . . . . . . . . . . . . . . . . . . . 123.4 Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.4.1 Interpretation of Definitions . . . . . . . . . . . . . . . 133.4.2 Type specifiers . . . . . . . . . . . . . . . . . . . . . . 1413.5 Notation of Expressions . . . . . . . . . . . . . . . . . . . . . 143.5.1 Conditional Expressions . . . . . . . . . . . . . . . . . 143.5.2 Operators . . . . . . . . . . . . . . . . . . . . . . . . . 153.5.3 Function Application . . . . . . . . . . . . . . . . . . . 173.5.4 Atoms . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 Project Plan 194.1 Development overview . . . . . . . . . . . . . . . . . . . . . . 194.2 Programming style . . . . . . . . . . . . . . . . . . . . . . . . 194.3 Roles and responsibilities . . . . . . . . . . . . . . . . . . . . . 204.4 Software environment . . . . . . . . . . . . . . . . . . . . . . . 204.5 Timeline and log . . . . . . . . . . . . . . . . . . . . . . . . . 215 Architectural Design 236 Test Plan 256.1 Testing overview . . . . . . . . . . . . . . . . . . . . . . . . . 256.2 Test details . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256.2.1 Syntax tests . . . . . . . . . . . . . . . . . . . . . . . . 256.2.2 Semantic tests . . . . . . . . . . . . . . . . . . . . . . . 266.3 Role in development . . . . . . . . . . . . . . . . . . . . . . . 266.4 Demonstrative examples . . . . . . . . . . . . . . . . . . . . . 267 Lessons Learned 287.1 Mike Haskel’s lessons . . . . . . . . . . . . . . . . . . . . . . . 287.2 Morgan’s lessons . . . . . . . . . . . . . . . . . . . . . . . . . 287.3 Mike Glass’ lessons . . . . . . . . . . . . . . . . . . . . . . . . 29A Code listing 30A.1 Build system . . . . . . . . . . . . . . . . . . . . . . . . . . . 30A.2 Antlr grammar . . . . . . . . . . . . . . . . . . . . . . . . . . 31A.3 Java sources . . . . …
View Full Document