next up previous contents
Next: Classes Up: The Cool Reference Manual1 Previous: Introduction   Contents


Getting Started

Cool source files have extension .cl. The programming projects will also define other file formats related to Cool but they are not officially part of the language specification.

You can obtain the Cool interpreter cool from the course website. To interpret (i.e., run) a Cool program:

cool file.cl 
This official version is often called the reference implementation and you are encouraged to use it as a point of comparison when you are designing and testing parts of the course project.

The reference Cool interpreter has been specifically structured so that you can run the various stages (i.e., lexing, parsing, type-checking and interpreting) independently. This power is useful for PA2 through PA5.

The Cool interpreter has an number of command-line options:

--lex This option causes Cool to stop after lexing and produce a new file, file.cl-lex, which contains the lexed tokens in a simple interchange format. Handy for PA2.
--unlex This option causes Cool to undo lexing and produce file.cl2 (a Cool source file) from the lexed tokens. This is usually used as a debugging aid for PA2 by feeding Cool a file.cl-lex file produced by your lexer from file.cl and then comparing file.cl2 to the original file.cl.
--parse This option causes Cool to stop after parsing and produce a new file, file.cl-ast, which contains the abstract syntax tree in a simple interchange format. Handy for PA3.
--unparse This option causes Cool to undo parsing and produce file.cl3 (a Cool source file) from the abstract syntax tree. This is usually used as a debugging aid for PA3 by feeding Cool a file.cl-ast file produced by your parser from file.cl and then comparing file.cl3 to the original file.cl.
--type This option causes Cool to stop after type checking and semantic analysis and produce a new file, file.cl-type, which contains the class mapping and implementation mapping in a simple interchange format. Handy for PA4.
--class-map This option causes Cool to stop after type checking and semantic analysis and produce a new file, file.cl-type, which contains the class mapping only in a simple interchange format. Handy for the PA4 Checkpoint (WA4).
--imp-map This option causes Cool to stop after type checking and semantic analysis and produce a new file, file.cl-type, which contains the implementation mapping only in a simple interchange format. Handy for the rest of PA4.
--parent-map This option causes Cool to stop after type checking and semantic analysis and produce a new file, file.cl-type, which contains the parent mapping only in a simple interchange format. Handy for the rest of PA4.
--out newname Causes Cool to produce newname.cl (or .cl-ast, or whatever) instead of file.cl.

You may encounter other University uses of Cool on the web that mention programs such as coolc and spim. Those tool are used for a course on compilers; this is a course on interpreters. We will not use coolc or spim. In addition, we use a slightly different version of the Cool language specification, so comparing results against external tools may not be helpful.


next up previous contents
Next: Classes Up: The Cool Reference Manual1 Previous: Introduction   Contents