アルゴリズム的プログラミング


2020年であり、それぞれ独自のUSPを持つプログラミング言語が多々あります.ビジネス・プログラミングのために、これはビジネスロジックが進歩から利益を得るためにほぼ10年ごとに新しいプログラミング言語を使って書き直されなければならないことを意味します.数ヶ月後、私は簡単に保守、コード再利用性と言語の独立性に焦点を当てて実行可能コードにアルゴリズムを変換する目標を開始した.私は、ちょうど働くかもしれないアプローチを共有してうれしいです.あなたがそれが役に立つとわかるならば、知らせてください.
つのプログラムで起動すると、1つの手順を一連の手順として書き込みます.プログラムがプログラムをアルゴリズムに変換して実行することができれば、それは良いことではないでしょうか?私のアプローチは、最初のドラフトの最終的なプログラムとの1対1の対応を維持します.その事実のハイライトの名前の種類.主題に詳しい人々は、流れベースのプログラミング(FBP)と類似点を見るかもしれません.多くの反復と改善は、基本的なテーマがありますが、私は読者が私のアプローチが改善されているかどうかを決定させていただきます.This discussionは2つのアプローチの比較を提供する.
このアプローチの実行可能性をテストするために、FBP定義(INIT . fbp)からランタイム/オーケストラレーター(index . js)を生成するコードを記述しました.コードはhttps://gitlab.com/atamariya/fbpです.
ネットワークFBP (サンプルFBPプログラム)
Read line from network.fbp,lineReader,network.fbp  
Parse nodes,parseNodes  
Append nodes,append  
Generate code,genCode  
Execute code,vmscript  
これは単純なCSVファイルです.
ステップを説明するコメント
プログラミング言語において、実行されるコンポーネントからの
  • 識別子
    コンポーネントのための
  • INITパラメタ
  • ネットワークを実行できます.デフォルトでは
    node index.js
    
    また、引数として接尾辞なしでFBPファイルを提供することもできます
    node index.js init
    
    インデックス.JS (サンプルnodejs実装)
    var packages = ["lineReader", "parseNodes", "append", "genCode", "vmscript", ];  
    var vars = [];  
    var initargs = [];  
    initargs[0] = ["network.fbp"];  
    
    var core = require("./core")();  
    var res;  
    res = core.init(packages, initargs, vars);  
    res = res.then(() => core.execute(e));  
    res = res.then((e) => {  
    console.log(e);  
    // Additional code to process res  
    // Returned value is the value of res  
    return e;  
    });  
    return res;
    
    利点
  • インラインコメントは、その特定のステップで起こっていることを非常に明確にします.だから、流れを理解するためにコンポーネントを調べる必要はありません.
  • GUIツールの有無による編集が簡単です.したがって、それは初心者フレンドリーです.
  • ビジネスロジックのための
  • 、これは複雑さと保全性の良いバランスのようです.より複雑な慣用句は、コンポーネント内で実装できるプログラミング言語に適しています.
  • のコンポーネントは、単にオーケストラのそばで実行されるコードの部分です.
  • アルゴリズムはランタイムプログラミング言語に完全に依存しません.