pixelman Brian Tsau :) Teresa Choe Gabriel Kramer-Garcia Anthony - - PowerPoint PPT Presentation

pixelman
SMART_READER_LITE
LIVE PREVIEW

pixelman Brian Tsau :) Teresa Choe Gabriel Kramer-Garcia Anthony - - PowerPoint PPT Presentation

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


slide-1
SLIDE 1

pixelman

Brian Tsau Teresa Choe Gabriel Kramer-Garcia Anthony Chan

:)

slide-2
SLIDE 2

Motivation

  • Create a general purpose programming

language catered towards manipulating pixels in images

  • Faster, easier vector/matrix manipulation
  • More portable than image enhancing

software

slide-3
SLIDE 3

Basics

Vector: int[5] a; a = [1, 2, 3, 4, 5]; int[5] b; b = [1, 2, 3, 4, 5] Operations: Multiplication: :) Dot product :) Scalar Addition Subtraction

slide-4
SLIDE 4

Basics

Matrix: int[2][2] a; a = [| [1, 2] & [1,2] |]; Operations: Multiplication :) Scalar :) Cross product Addition Subtraction

slide-5
SLIDE 5

What else did we do?

  • Matrix/vector operations
  • Inverse, Transpose
  • Built-in Library
  • Bitwise Operators
  • Implicit

Typecasting

  • Explicit

Typecasting

  • Smiley comments!

:)

slide-6
SLIDE 6

Architecture

source code

scanner.mll parser.mly codegen.ml sast.ml ast.ml stdlib.px executable semant.ml

slide-7
SLIDE 7

Testing

  • .px file extension
  • Unit tests
  • Test Cases for Pass/Fail
slide-8
SLIDE 8

Lessons learned & contributions

Anthony: Scanner, Parser, AST, SAST, Semant, Codegen, Stdlib debug, compiler frontend Start early and chunk the work so it’s more manageable Teresa: Scanner, parser, AST, bitwise/float/ Matrix literals in codegen, basic Matrix opsin stdlib Have goals during your meetings Gabriel - Hello World, Test Suite, semant, codegen, stdlib linking Don’t just start early, do the bulk of the project early so you can add cool features later. Brian: Scanner, parser, ast, sast, semant, codegen, stdlib Put in consistent work; you’re gonna have to change the structure of your compiler a lot!

slide-9
SLIDE 9

Milestones

October 2017

Finished grammar

November 2017

Hello World! Printed

December 2017

Matrix manipulation

Demo Day

slide-10
SLIDE 10

What people are saying

I can automate my linear algebra homework now!

Gabriel Kramer-Garcia, NY

This is bad for my students!

Linear Algebra Prof, NYC

slide-11
SLIDE 11

Demo