什么是数据流编程语言?为什么要使用它?有什么好处吗?
什么是数据流编程语言?为什么要使用它?有什么好处吗?
Answers:
在控制流语言中,您有一系列对外部数据进行操作的指令流。条件执行,跳转和过程调用会更改要执行的指令流。这可以看作是指令在数据中流动(例如,指令在由指令加载数据的寄存器上操作-数据是静态的,除非指令流将其移动)。控制流“ if”语句跳转到指令流中的正确分支,但数据不会移动。
在数据流语言中,您有一条数据流,该数据流从指令传递到要处理的指令。条件执行,跳转和过程调用会将数据路由到不同的指令。这可以看作是数据流经其他静态指令,例如电信号如何流经电路或水如何流经管道。数据流“ if”语句会将数据路由到正确的分支。
数据流功能和语言的一些示例:
文字语言
视觉语言
嵌入可视数据流语言的产品:
数据流编程语言是一种专注于程序状态并导致根据状态的任何更改进行操作的语言。数据流编程语言在本质上是并行的,因为操作依赖于输入,当这些输入满足时将导致该操作执行。这意味着与普通程序不同,在普通程序中,一个操作之后是下一个操作,在数据流程序中,只要满足输入条件,就将执行操作,因此没有设置顺序。
通常,数据流编程语言使用大型哈希表,其中键是程序的数据,表的值是指向程序操作的指针。这使多核程序更容易用数据流编程语言创建,因为每个核仅需要哈希表即可工作。
数据流编程语言的一个常见示例是电子表格程序,该程序具有受其他数据列影响的数据列。如果一列中的数据发生更改,则其他列中的其他数据可能也会随之更改。尽管电子表格程序是数据流编程语言的最常见示例,但其中大多数倾向于图形语言。
Excel(和其他电子表格)本质上是数据流语言。数据流语言与功能编程语言非常相似,不同之处在于整个程序图的叶子上的值根本不是值,而是变量(或值流),因此,当它们改变时,变化会起伏并向上流动。 。
在某些领域,数据流编程更有意义。实时媒体就是一个例子,Pure Data和Max / MSP这两种广泛使用的图形数据流编程环境都专注于实时媒体编程。我想它们的视觉特性也可以很好地映射到数据流编程中。
您可以尝试Cameleon:www.shinoe.org/cameleon,它似乎很容易使用。这是用于函数式编程的图形语言,具有数据(工作)流方法。
它是用C ++编写的,但可以调用以任何编程语言编写的任何类型的本地或远程程序。