DOC PREVIEW
UD CISC 672 - Cool Overview and SVN Configuration

This preview shows page 1-2-3-4-5-6 out of 18 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Cool Overview and SVN ConfigurationSameer KulkarniSeptember 14, 2009CISC 672 : Advanced Compiler ConstructionAcknowledgementsThe present presentation has been based on a similar talk given by Timo Kötzing and can be found at http://www.cis.udel.edu/~cavazos/cisc672-fall08/lectures/CoolOverview.pdf .College or Department name here1DisclaimerThe following does not describe the Cool language indepth. It is not designed to be used as a syntaxreference, but rather as an introduction intoprogramming with Cool, and also into object orientedprogramming in general.For actually writing your own Cool compiler please readthe cool manual carefully.College or Department name here2Isn’t it COOL??Classroom Object Oriented LanguageCollection of classes spread over (files)+.Main class with a main method.Closest to JavaThe more restricted the language, the easier it is to write the compiler College or Department name here3College or Department name here4Cool source fileClassfeatureAttributevar1 var2 var3Methodmain m1() m2()……. .…. .ClassfeatureAttributevar1 var2 var3Methodmain m1() m2()ClassObject is the super class for all other classes, IO, Int, String and Bool are basic types (in JAVA parlance primitive types), and cannot be inheritedMultiple inheritance is not allowedRestricted Function overridingCollege or Department name here5AttributesLocal variablesScope lasts till the classGarbage collection is automaticCollege or Department name here6Method<id>(<param_id1> : <type>,...,< param_idn> : <type>): <type> { <expr> };e.g.sum (num1 : Int, num2 : Int) : Int {total <- num1 + num2 };College or Department name here7<expr>Constant1 or “String”The type of such an <expr> is the type of the constantIdentifier (id)like a local variableThe type of such an <expr> is the type of the idAssignment<id> <- <expr>The type of such an <expr> is the type of <expr> and should be the same as the <id>Dispatch[<expr>[@<type>]].id(<expr>,...,<expr>)The type of dispatch is however more complicated, please read pg. 8 of the Cool manualCollege or Department name here8IO Exampleclass Main {myIO : IO <- new IO;myInput : Int;main() : Int { {myIO.out_string("How many? ");myInput <- myIO.in_int();while 0 < myInput loopmyIO.out_string(''Hello world!'')pool;0;}};};College or Department name here9Inheritanceclass Silly {f() : Int {5};};class Sally inherits Silly { };class Main {x : Int <- (new Sally).f( );main() : Int {x};};// remember restriction in function overriding.College or Department name here10Inheritance cont’d…class Silly {f() : Int {5};};class Sally inherits Silly { f() : Int {7};};class Main {x : Int <- (new Sally)@Silly.f( );main() : Int {x};};College or Department name here11The Cool ManualThe Cool manual will be your main reference when working on any of the phases of your Cool compiler.Sections 1 and 2 (2 pages) explain how to compile and run (using the spim interpreter) a Cool program.Sections 2-11 (13 pages) are required to build the two phases of the syntax analysis.College or Department name here12The Cool Manual, cont’d…Section 12 (5 pages) is sufficient for the semantic analyzer(together with earlier pages).Section 13 (8 pages) are necessary for the code generator. Furthermore you should read the spimmanual (<25 pages), explaining our target language.College or Department name here13College or Department name here14SVNThe sub versioning tool is installed on stimpy and can be used from there to checkout code and other resource filessvn co svn://<username>@svn.acad.ece.udel.edu:67209/repos/cisc672_09fThe usernames and passwords have been given to you.Tortoise SVN is a GUI based svn tool that can be used if you are using windows.svn+ssh://<username>@svn.acad.ece.udel.edu/repos/cisc672_09fCollege or Department name here15SVN cont’d…svn update: would sync your repository to the latest version present on the serversvn commit: to commit the changes you have made.svn add: adds presently non-subversioned files to the local repository. This will not update the server, till you commit your changessvn delete: removes the files from svn control, but the files will remain on the local system till you commit your changes.http://www.linuxfromscratch.org/blfs/edguide/chapter03.htmlCollege or Department name here16Commiting to SVNCommit comments: when you commit, svn would ask for your comments, which can be used for future reference. SVN_EDITOR : would be used to open an editor to add your comments unless you specify some in the command line.College or Department name


View Full Document

UD CISC 672 - Cool Overview and SVN Configuration

Documents in this Course
Syllabus

Syllabus

18 pages

Load more
Download Cool Overview and SVN Configuration
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Cool Overview and SVN Configuration and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Cool Overview and SVN Configuration 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?