flow-based programming introduction toronto, sept 11, 2013 paul tarvydas [email protected]

7
Flow-Based Programming Introduction Toronto, Sept 11, 2013 Paul Tarvydas [email protected]

Upload: kevin-west

Post on 26-Mar-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Flow-Based Programming Introduction Toronto, Sept 11, 2013 Paul Tarvydas paul.tarvydas@gmail.com

Flow-Based Programming

Introduction

Toronto, Sept 11, 2013

Paul [email protected]

Page 2: Flow-Based Programming Introduction Toronto, Sept 11, 2013 Paul Tarvydas paul.tarvydas@gmail.com

Simple (text) example of FBP

ls -l | less

Characteristics:components

portsstandardized communication

Page 3: Flow-Based Programming Introduction Toronto, Sept 11, 2013 Paul Tarvydas paul.tarvydas@gmail.com

FBP

● subroutine / statement-level components● visual components & pipes (textual also)

● {processes | co-routines | stackless}● ports (queues) – {bounded | unbounded}● {streams | events}● encapsulation (namespace, time, space, control flow, …),

composition, hierarchy

Page 4: Flow-Based Programming Introduction Toronto, Sept 11, 2013 Paul Tarvydas paul.tarvydas@gmail.com

Often Compared to...

● Erlang, CSP, Actors (FBP is hierarchical, siblings invisible)

● UML (FBP is for compiling designs, not modeling them)

● LabView (FBP preserves component separation at runtime)

● Scratch, etc. (FBP is primarily meant to simplify s/w engineering / architecting, not targeted at non-programmers per se)

Page 5: Flow-Based Programming Introduction Toronto, Sept 11, 2013 Paul Tarvydas paul.tarvydas@gmail.com

NoFlo

http://www.kickstarter.com/projects/noflo/noflo-development-environmenthttp://noflojs.org

Javascript (Coffeescript) + Node.js

Page 6: Flow-Based Programming Introduction Toronto, Sept 11, 2013 Paul Tarvydas paul.tarvydas@gmail.com

FBP in FBPhttps://github.com/guitarvydas/vsh/

yEd + 800 LOC + fork();

Page 7: Flow-Based Programming Introduction Toronto, Sept 11, 2013 Paul Tarvydas paul.tarvydas@gmail.com

Websites

http://www.jpaulmorrison.com/fbp/https://groups.google.com/forum/#!forum/flow-based-programming

http://www.kickstarter.com/projects/noflo/noflo-development-environmenthttp://noflojs.org