PIE-NUM Matrix Based Image Processing Language AGENDA Overview - - PowerPoint PPT Presentation

pie num
SMART_READER_LITE
LIVE PREVIEW

PIE-NUM Matrix Based Image Processing Language AGENDA Overview - - PowerPoint PPT Presentation

Hana Fusman Ogo Nwodoh Hadiah Venner Catherine Zhao PIE-NUM Matrix Based Image Processing Language AGENDA Overview Syntax Sample Architecture Testing Management Lesson Learned Demo PIENUM Flexible across platforms Python/Java like


slide-1
SLIDE 1

Hana Fusman Ogo Nwodoh Hadiah Venner Catherine Zhao

PIE-NUM

Matrix Based Image Processing Language

slide-2
SLIDE 2

AGENDA

Testing Management Lesson Learned Demo Overview Syntax Sample Architecture

slide-3
SLIDE 3

PIENUM

Flexible across platforms Python/Java like syntax C Standard Library PPM images  manipulate image

slide-4
SLIDE 4

Hana

Project Manager

Ogo

System Architect

Hadiah

Language Guru

Catherine

Tester

ROLES

slide-5
SLIDE 5

MAJOR EVENTS

9/26 10/16 11/1 11/15 11/8 11/29 12/6 12/14 12/18

Project Proposal Language Reference Manual Hello World Array and Matrix Pointers Demo Completed Array and Matrices Started Array and Matrices Operation Semant and Codegen Completed Scanner, Parse, AST First Draft

slide-6
SLIDE 6

SYNTAX Comment

# This is a comment #

Control Flow

if, else, while, for, return

Primitives

int, float, Boolean, String, Mat, Arr, Img

slide-7
SLIDE 7

SYNTAX Arithmetic

+, -, *, /, =, ++, --

Conditional

==, !=, <, <=, >, >=

Array

Arr int[3] arr; arr = [1,2,3];

slide-8
SLIDE 8

SYNTAX Matrix

Mat int[2][2] mat; mat = [[1,2],[3,4]];

Function

int function(a){ return a; }

slide-9
SLIDE 9

SAMPLE PROGRAM

int get_image_cols(String filename) { Img img; # img is an int* # int ncols; img = read_file(filename); ++img; ncols = &img; return ncols; } int main(){ int val; val = get_image_cols(“ogo.ppm”); printi(val); return 0; }

  • Open ppm
  • Get length of

ppm

slide-10
SLIDE 10

int get_image_cols(String filename) { Img img; # img is an int* # int ncols; img = read_file(filename); ++img; ncols = &img; return ncols; } int main(){ int val; val = get_image_cols(“ogo.ppm”); printi(val); return 0; }

Comment

SAMPLE PROGRAM

slide-11
SLIDE 11

int get_image_cols(String filename) { Img img; # img is an int* # int ncols; img = read_file(filename); ++img; ncols = &img; return ncols; } int main(){ int val; val = get_image_cols(“ogo.ppm”); printi(val); return 0; }

Function

SAMPLE PROGRAM

slide-12
SLIDE 12

Primitives

int get_image_cols(String filename) { Img img; # img is an int* # int ncols; img = read_file(filename); ++img; ncols = &img; return ncols; } int main(){ int val; val = get_image_cols(“ogo.ppm”); printi(val); return 0; }

SAMPLE PROGRAM

slide-13
SLIDE 13

ARCHITECTURE

Source Code AST Scanner Parser Semant C Library Assembly Code Functions Linker GCC .o Executable Codegen

slide-14
SLIDE 14

Compilation

40 pass, 30 fail

Scanner

7 cases

Parser

5 cases

TESTINGS

slide-15
SLIDE 15

MANAGEMENT

Meetings!!! Pair Programming Branches Meeting with TA

slide-16
SLIDE 16

GITHUB PROGRESS

slide-17
SLIDE 17

LESSONS LEARNED HANA

“Communication is key to success in a group project” “Create goals as a team and work until the goal's are achieved” “Learning the theory in the beginning of the semester”

slide-18
SLIDE 18

LESSONS LEARNED OGO

“You can’t just ‘hack’ your way through” “Learning curve for functional programming is steep! Start early!”

slide-19
SLIDE 19

LESSONS LEARNED HADIAH

“Working on the semant file in a separate branch” “Maintain weekly meeting times from early on in the semester” “Sort through merge conflicts as soon as possible” “Speak with TAs”

slide-20
SLIDE 20

LESSONS LEARNED CATHERINE

“Start testing early” “Be flexible with helping your teammates” “Find group member with similar work ethic”

slide-21
SLIDE 21

DEMO!!!

slide-22
SLIDE 22

CONWAY’S GAME OF LIFE

0 player

0 player game where cells are either dead or alive

Stable Repeating

slide-23
SLIDE 23

IMAGE TRANSFORMATION

T = 0 T = 0.25 T=0.5 T=0.75 T=1