pixelman Brian Tsau :) Teresa Choe Gabriel Kramer-Garcia Anthony Chan
Motivation Create a general purpose programming ● language catered towards manipulating pixels in images Faster, easier vector/matrix manipulation ● More portable than image enhancing ● software
Basics Vector: Operations: int[5] a; Multiplication: a = [1, 2, 3, 4, 5]; :) Dot product :) Scalar int[5] b; Addition b = [1, 2, 3, 4, 5] Subtraction
Basics Matrix: Operations: int[2][2] a; Multiplication a = [| [1, 2] & [1,2] |]; :) Scalar :) Cross product Addition Subtraction
What else did - Bitwise Operators we do? - Implicit Typecasting - Explicit - Matrix/vector operations Typecasting - Inverse, Transpose - Smiley comments! - Built-in Library :)
Architecture stdlib.px source scanner.mll parser.mly ast.ml semant.ml code executable codegen.ml sast.ml
Testing - .px file extension - Unit tests - Test Cases for Pass/Fail
Lessons learned & contributions Anthony: Scanner, Teresa: Scanner, Gabriel - Hello Brian: Scanner, Parser, AST, parser, AST, World, Test parser, ast, SAST, Semant, bitwise/float/ Suite, semant, sast, semant, Codegen, Matrix literals codegen, stdlib codegen, stdlib Stdlib debug, in codegen, basic linking compiler frontend Matrix opsin Put in consistent stdlib Don’t just start work; you’re Start early and early, do the gonna have to chunk the work so Have goals during bulk of the change the it’s more your meetings project early so structure of your manageable you can add cool compiler a lot! features later.
Milestones October 2017 December 2017 Finished grammar Matrix manipulation November 2017 Demo Day Hello World! Printed
What people are saying This is bad for I can automate my students! my linear algebra homework now! Linear Algebra Prof, NYC Gabriel Kramer-Garcia, NY
Demo
Recommend
More recommend