基於流程編程

電腦編程中,基於流程(flow-based)編程,縮寫為FBP,是一種程式設計範式,它將應用定義為黑箱行程的網絡,它們經過預先定義的連接,通過訊息傳遞來交換數據,而這裏的連接是在「外部」指定給行程的。這些黑箱行程不需要更改內部,就可以無盡的重新連接而形成不同的應用。FBP因而是天然基於構件的。

FBP是一種特殊形式的數據流程編程,它基於了有界緩衝區,帶有確定生存時間的資訊包,命名埠,和獨立的連接的定義[1]

歷史

基於流程編程由J. Paul Morrison在1970年代前期發明,最初實現於為加拿大銀行開發的軟件中[2]。FBP在初起階段受到同期的一些IBM模擬語言英語Simulation language的強烈影響,特別是GPSS英語GPSS,但是它的根基完全一致於康威關於協程的開創性論文[3]

概念

下列方塊圖展示了FBP方塊圖的主要實體(資訊包除外)。這種方塊圖可以直接轉換成一個連接的列表,接着它們可以在適當的引擎(軟件或硬件)上執行:

 
簡單的FBP方塊圖

A、B和C是執行代碼構件的處理器。O1、O2和兩個IN是埠,它們將連接M和N連結到與它們有關的處理器上。允許處理器B和C執行相同的代碼,每個處理器必須有自己的工作儲存、控制塊等的集合。不管它們共用代碼與否,B和C自由的使用相同的埠名字,因為埠名字只在參照它們的構件內有意義(當然是在網絡層面上)。

M和N經常被稱為「有界緩衝區」,在任何時間點上能持有的資訊包(IP)的數目方面,它們有着固定的能力。

「埠」的概念是為允許同一個構件在一個網絡上用在多於一個位置上。結合了叫做初始化資訊包(IIP)的參數化能力,埠向FBP提供了構件重用功能,使得FBP成為基於構件的架構。FBP從而展示了IBM研究院的Raoul de Campo和Nate Edwards英語Nate Edwards所稱謂的「可組態的模組化」。

參見

參照

  1. ^ Flow-based Programming. [2020-05-02]. (原始內容存檔於2021-01-20). 
  2. ^ Gabe Stein. How an Arcane Coding Method From 1970s Banking Software Could Save the Sanity of Web Developers Everywhere. August 2013 [24 January 2016]. (原始內容存檔於2020-11-11). 
  3. ^ Conway, Melvin E. Design of a separable transition-diagram compiler. Communications of the ACM. 1963, 6 (7): 396–408. doi:10.1145/366663.366704. 

外部連結