View Single Post
  #2   Spotlight this post!  
Unread 04-01-2009, 13:39
GregT GregT is offline
Registered User
no team
 
Join Date: Jul 2001
Rookie Year: 2001
Location: FL
Posts: 400
GregT will become famous soon enough
Send a message via AIM to GregT
Re: total noob question :)

Quote:
Originally Posted by 1075guy View Post
I don't know Alan, I use LabVIEW at work, and I'm more used to traditional (C/C++/BASIC/etc) style programming, and I wouldn't even really consider G to be a "language" per se. I like to refer to LabVIEW/G as "Programming with flow-charts."
LabVIEW's "G" language is a Dataflow programming language. Dataflow programming started to gain popularity in the late 70's / early 80's with the emergence of supercomputers supporting large levels of concurrency.

Dataflow programs are referred to as "data driven" because the flow of execution is determined by the availability of data in the program, not a sequential order. When you write a program in a structural language like C or C++, execution of commands (lines) must occur in sequence (although this order can be somewhat controlled by the use of threads).

Dataflow programming languages, such as LabVIEW, don't impose this restriction. Any part of the program can be executed at any time, depending on when the individual components receive inputs (in LabVIEW, this happens along the wires).

A dataflow program consists of a set of actors (in LabVIEW they are called components) connected by relations (wires). When an actor has received all the information it needs to perform its assigned computation (ex. an addition actor needs two inputs, A and B, to perform A+B) it does so and passes the result along wires to connected actors. In this way, data propagates through the program to the other actors.

This is all really cool because, by default, Dataflow programs are highly concurrent. Any actor can perform its assigned work whenever it has data available- even at the same time as other actors! While this isn't terribly useful for our controller, as normal desktop CPU's keep getting more and more processing cores, this type of programming has the potential to become very important. Free concurrency!

My point is, don't feel like you need to learn C or C++ to program competitively in the competition this year. Many experienced programmers don't like LabVIEW because it is radically different from what they are comfortable with. While I haven't familiarized myself with the new control system, LabVIEW as a programming language can be just as powerful as C++. Any difference is due to a more optimized compiler / architecture.

LabVIEW is not necessarily less powerful than C++, it's just different.

See also:
http://en.wikipedia.org/wiki/Dataflow_programming
http://www.cs.ucf.edu/courses/cda415...rcomputers.pdf
__________________
The above was my opinion. I'm wrong a lot. I'm sarcastic a lot. Try not to take me too seriously.

Last edited by GregT : 04-01-2009 at 13:43.