Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re: A preliminary stab at Flow-Based Programming

by dragonchild (Archbishop)
on Mar 05, 2002 at 13:55 UTC ( #149365=note: print w/ replies, xml ) Need Help??


in reply to A preliminary stab at Flow-Based Programming

How different is this from a state machine? Just looking at it superficially (without knowing anything about the XML technologies), it looks awfully a lot like it ...

------
We are the carpenters and bricklayers of the Information Age.

Don't go borrowing trouble. For programmers, this means Worry only about what you need to implement.


Comment on Re: A preliminary stab at Flow-Based Programming
Re: Re: A preliminary stab at Flow-Based Programming
by Masem (Monsignor) on Mar 05, 2002 at 14:37 UTC
    Well, they are sort of related in that both FBP and State machines typically have a (uni)directional graph that forms the basis for the system.

    However, at least as I've come to understand them, the state machine is where the "flow" through the system is decided by some ruleset, typically comparing a pointer to a storage area to the next possible states (ala regex'ing). The concept of flow based programming is that it's like a series of water pipes; there's no implicit decision block that decides if water can go to one pipe or the other when it reaches a split; it just fills them both. The concept here is that the water, supplied in my case by Reader and composed of chunks with one line of a file each, flow through the system, and are acted upon by each unit the water passes through. Thus, at the end, you'll get a stream of data that you need to do something with (in this case, it's written to STDOUT). Now, this doesn't mean that water can be diverted or blocked by units, but the units have to be built with this functionality. EG, a grep unit would only allow water chunks to pass through that meet the necessary requirements.

    I believe that one of the end goals of FBP is that such a system leads to a visual/rapid design system for general programming solution. I don't suggest this will be replacing direct use of perl any time soon in writing web pages, but this would help those that have some but not sufficient programming skills to create repetitive type tasks easily without knowing the fundamentals.

    -----------------------------------------------------
    Dr. Michael K. Neylon - mneylon-pm@masemware.com || "You've left the lens cap of your mind on again, Pinky" - The Brain
    "I can see my house from here!"
    It's not what you know, but knowing how to find it if you don't know that's important

      Let me see if I can restate what you just said. The major conceptual difference between state machines and FBP is that FBP could have output from one state potentially go to more than one state at the same time. State machines, ordinarily, cannot.

      Personally, as I never studied state machines in school (as such), but learned about them on the job, I never had that restriction on them. Why would that restriction be placed?

      Now, I'm thinking that another way to look at it is the difference between procedure-based analysis and data-based analysis. State machines are more concerned with the actions that can take place. FBP is more concerned with the data that is moving through the system. Right?

      ------
      We are the carpenters and bricklayers of the Information Age.

      Don't go borrowing trouble. For programmers, this means Worry only about what you need to implement.

        I think that
        State machines are more concerned with the actions that can take place. FBP is more concerned with the data that is moving through the system.
        is a fair assessment of the differences. With a state machine, you want to make sure that you can move through the states of the machine to some valid exit state; if so, then the machine has succeeded, else you failed. With FBP, you push data in and wait for data out, but if nothing comes out, that's just a valid response as if you did get data.

        -----------------------------------------------------
        Dr. Michael K. Neylon - mneylon-pm@masemware.com || "You've left the lens cap of your mind on again, Pinky" - The Brain
        "I can see my house from here!"
        It's not what you know, but knowing how to find it if you don't know that's important

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://149365]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (4)
As of 2014-11-28 07:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My preferred Perl binaries come from:














    Results (193 votes), past polls