DOC PREVIEW
Columbia COMS W4115 - PLT Final Project-COLOGO

This preview shows page 1-2-3-25-26-27 out of 27 pages.

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

Unformatted text preview:

Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22Slide 23Slide 24Slide 25Slide 26Slide 27PLT Final Project---COLOGO Lixing Dong, Zhou Ma, Chao Song, Siyuan Lu, Dongyang JiangOverview of COLOGOColumbia LOGOMotivation: For educational use1. an effective programming language for drawing 2D graphics2. designed in spirit of low threshold, easily implemented.Function FeatureEuclidean PicturesCreating FunctionsRecursiveIridescentSimple Data Structure such as Array.Support direct HTML and Javascript OutputCOLOGO VS. LOGOColorfulCompile togetherNo listLanguage TutorialSome examples of our program•Fibonacci•RecursiveSome examples of our program•Olympic Rings (faked)•RainbowSome examples of our programLanguage Tutorial•Variable Declaration•Int a,b;•Bool c;•foo d; (:foo is a object:)•Int e[10]; (:array:)Language Tutorial•Expression•Assignment: a = 1; c = True;•Arithmetic Expression: a = b + a;•Comparison Expression: c = a < b;•Logical Expression: c = (a == b); Not c;•Function call: a = testfunc(b);•Comment: (:This is a comment:)Language Tutorial•Loop•Loop(10) { a = a + 1; }•Loop(10) { a = a + 1; Break; }•Loop(10) { a = a + 1; Goon;}Language Tutorial•Condition•If (c) { a = b; } End•If (c) { a = b; } Else { b = a; } EndLanguage Tutorial•Jump•If (c) { a = b; } End•If (c) { a = b; } Else { b = a; } EndLanguage Tutorial•Draw•Move Forward: FD 10;•Move Backward: BK 10;•Turn Left: LF 90;•Turn Right: RT 90;Language Tutorial•Draw•Reset position: RESET;•Clear Screen: CLS;•Pen Operation: PU; PD; PF;•Line Width: WD 10;•Set Line Color: RGB 255, a, e[2]Language Tutorial•Function•Declaration:•Func testfunc(int n) : int { Return n;}•Call:•a = testfunc(b);Language Tutorial•Object•Definition:•Obj foo { int bar; int baz;}•Declaration:•foo d;•Reference: dot operator•d.bar = a; b = d.baz;ImplementationLayoutFlowAst: Abstract Syntax Tree Types Definition One Rule -> One Type ConstructorFlowScanner: Generate TokensParser: Generate ASTUse Type Constructor Defined in ASTFlowScanner: Generate TokensParser: Generate AST Use Type Constructor Defined in AST Basic Error RecoveryFlowSemantic: Traversal of AST, Checking Variables, Function Definitions, Type Matching, etc.Generator: Traversal of AST, Generate JS code in HTML filePrinter: Traverse and print the ASTFlowSemantic: Traversal of AST, Checking Variables , RedefinitionType Matching: Array Object Function Matching Parameter Count, Argument Type Return TypeDefinition Scope Stack faked by List Small Features: infinite loopFlowGenerator: Traversal of ASTGenerate JS Code in HTML5 fileDraw StatementArray in ObjFlow•SUMMARY•Further to develop•Lessons


View Full Document

Columbia COMS W4115 - PLT Final Project-COLOGO

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 PLT Final Project-COLOGO
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 PLT Final Project-COLOGO 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 PLT Final Project-COLOGO 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?