DOC PREVIEW
Columbia COMS W4115 - DINO - Final Project Report

This preview shows page 1-2-15-16-31-32 out of 32 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 32 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 32 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 32 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 32 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 32 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 32 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 32 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

DINO A Friendly ‘Dinosaur’ Language for Kids Final Project Report Author: Manu JainTable of Contents 1. Introduction___________________________________________________________ 4 1.1. What is DINO _______________________________________________________ 4 1.2. Purpose_____________________________________________________________ 4 1.3. Basic Idea___________________________________________________________ 4 1.4. Evolution of Concepts_________________________________________________ 4 2. Language Tutorial______________________________________________________ 4 2.1. Basics ______________________________________________________________ 4 2.2. A Simple Program____________________________________________________ 4 2.3. A More Complex Program_____________________________________________ 5 3. Language Manual ______________________________________________________ 6 3.1. Introduction_________________________________________________________ 6 3.2. Syntax Notation______________________________________________________ 6 3.3. The Big Picture ______________________________________________________ 6 3.4. Language Rules______________________________________________________ 6 3.5. Lexical Conventions __________________________________________________ 7 3.5.1. Tokens __________________________________________________________________ 7 3.5.2. Comments _______________________________________________________________ 7 3.5.3. Identifiers________________________________________________________________ 7 3.5.4. Keywords________________________________________________________________ 7 3.5.5. Constants ________________________________________________________________ 8 3.5.6. Operators ________________________________________________________________ 8 3.6. Meaning of Identifiers ________________________________________________ 8 3.6.1. Basic Types ______________________________________________________________ 8 3.6.2. Derived Types ____________________________________________________________ 8 3.7. Conversions _________________________________________________________ 9 3.8. Expressions _________________________________________________________ 9 3.8.1. Primary Expressions _______________________________________________________ 9 3.8.2. Function Call _____________________________________________________________ 9 3.8.3. Dino Method Call ________________________________________________________ 10 3.8.4. Dino Property Accessor____________________________________________________ 10 3.8.5. Multiplicative Operators ___________________________________________________ 10 3.8.6. Additive Operators _______________________________________________________ 10 3.8.7. Increment and Decrement Operators__________________________________________ 10 3.8.8. Relational Operators ______________________________________________________ 11 3.8.9. Equality Operators________________________________________________________ 11 3.8.10. Assignment Expression__________________________________________________ 11 3.9. Definitions _________________________________________________________ 12 3.9.1. Function Definition _______________________________________________________ 12 3.9.2. Dino Method Definition ___________________________________________________ 12 3.9.3. Property Definition _______________________________________________________ 13 3.10. Variable Creation ___________________________________________________ 133.10.1. Creating Integers_______________________________________________________ 13 3.10.2. Creating Strings _______________________________________________________ 13 3.10.3. Creating Dinosaurs _____________________________________________________ 13 3.10.4. Creating Lists _________________________________________________________ 13 3.11. Statements _________________________________________________________ 14 3.11.1. Selection Statement_____________________________________________________ 14 3.11.2. Iteration Statement _____________________________________________________ 14 3.12. External Declarations________________________________________________ 15 4. Project Plan __________________________________________________________ 15 4.1. Process ____________________________________________________________ 15 4.2. Programming Style__________________________________________________ 15 4.3. Show your project timeline ___________________________________________ 15 4.4. Roles and Responsibilities ____________________________________________ 16 4.5. Software Development Environment ___________________________________ 16 5. Architectural Design___________________________________________________ 17 5.1. Major Components__________________________________________________ 17 5.2. Developers _________________________________________________________ 17 6. Test Plan_____________________________________________________________ 17 6.1. Hello World Test with String Literal ___________________________________ 17 6.2. Hello World Test with String Variable__________________________________ 17 6.3. Integer Operators Test _______________________________________________ 18 6.4. Simple Dino Test____________________________________________________ 19 6.5. Complex Dino Test __________________________________________________ 20 6.6. Do-Times Test ______________________________________________________ 21 7. Lessons Learned ______________________________________________________ 21 7.1. Beneath the Covers __________________________________________________ 21 7.2. It’s not Easy to Make it Simple ________________________________________ 22 7.3. OCaml Really is Different!____________________________________________ 22 7.4. Be Less Ambitious___________________________________________________ 22 7.5. Develop All Parts Together Iteratively __________________________________ 22 7.6. Working Alone is Boring _____________________________________________ 23 8. Appendix – Code Listing _______________________________________________ 23 8.1. Scanner.mll ________________________________________________________ 23 8.2. Parser.mly _________________________________________________________ 24 8.3. AST.ml ____________________________________________________________ 27 8.4. Interpret.ml ________________________________________________________ 29 8.5. Dino.ml____________________________________________________________ 321. Introduction 1.1. What is DINO DINO is intended to be a fun, easy-to-learn language for kids. It is created by the author as a project for


View Full Document

Columbia COMS W4115 - DINO - Final Project Report

Documents in this Course
YOLT

YOLT

13 pages

Lattakia

Lattakia

15 pages

EasyQL

EasyQL

14 pages

Photogram

Photogram

163 pages

Espresso

Espresso

27 pages

NumLang

NumLang

6 pages

EMPATH

EMPATH

14 pages

La Mesa

La Mesa

9 pages

JTemplate

JTemplate

238 pages

MATVEC

MATVEC

4 pages

TONEDEF

TONEDEF

14 pages

SASSi

SASSi

16 pages

JTemplate

JTemplate

39 pages

BATS

BATS

10 pages

Synapse

Synapse

11 pages

c.def

c.def

116 pages

TweaXML

TweaXML

108 pages

Load more
Download DINO - Final Project Report
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 DINO - Final Project Report 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 DINO - Final Project Report 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?