發現編程範型一:認識範型

什麼是編程範型

  • 緣起:
    上學的時候學習C/C++語言和Java語言,工做後又陸續接觸了一些編程語言python/lua/objective-c等,
    發現每門語言開始學習的東西都是類似的,helloworld程序、類型與變量、操做符、表達式及面向對象的類、繼承和多態等,
    這個時候就會發現這種重複就是一種規律--網上查找以後才知道這個叫作編程範型。
  • 網上釋義:
    編程範型,是一類典型的編程風格,提供了(同時決定了)程序員對程序執行的見解。
  • 編程語言的思考:
    程序設計語言,是一個有限的詞彙與規則的集合,用於描述一個特定的問題。
    全部的編程語言最後都要編譯成機器理解的二進制代碼,理論上全部語言都是相等的。
    但多語言的出現是伴隨不一樣問題領域出現的,因此不一樣語言的側重點也不一樣,語法也不一樣。
  • 範型:
    一個連貫完整的詞聚集以及組合規則,能夠產生一種範型--定義出很大一部分的語言特質。
    範型的重要性,可生成簡潔的、可讀性強的代碼,保持問題域和軟件模型之間的一致性。
  • 語言的其餘特性:
    語言的其餘特質:類型種類(動態/靜態),句法及其餘因素。
  • 使用多語言編程:
    • 將問題域分解爲差別明顯的多個部分 -- 分析問題,合理的將分解問題
    • 爲子領域選擇正確的/合適的語言/範型

編程範型簡要體系

該體系結構摘錄自:編程範型wiki
雖然不少看不太懂,可是感受不明覺厲
推薦相關書籍:《七週七語言:理解多種編程範型》python

  • 面向代理
  • 基於組件(如OLE)
    • 基於流
    • 管道(Unix/Linux中的管道)
  • 連續式
  • 併發計算
  • 聲明式(對比:命令式)
    • 函數式
      • 數據流
        • 面向細胞(電子表格)(如Microsoft FoxPro)
        • 無功
    • 面向圖形
    • 目標導向
      • 約束
        • 邏輯
          • 回答集編程
          • 約束邏輯
          • 溯因邏輯
          • 概括邏輯
  • 事件驅動
    • 面向服務
    • 時間驅動
  • 功能導向
  • 函數級(對比:價值級)
  • 命令式(對比:聲明式)
    • 非結構化
      • 陣列(對比:標量)
      • 迭代式
    • 結構化
      • 過程式
        • 模塊化
        • 遞歸式
      • 面向對象
        • 基於類
        • 基於原型
        • 自動機
        • 根據關注分離:
          • 面向方面(如AspectJ)
          • 面向主題
          • 面向角色
  • 元編程
    • 面向屬性
    • 自動
      • 泛型
        • 模板
          • 基於原則
      • 面向語言
        • 領域特定
        • 面向語法
          • 方言化
        • 意圖
    • 反射式
  • 不肯定
  • 並行計算
    • 面向過程
  • 大規模與小規模編程
  • 價值級(對比:函數級)
相關文章
相關標籤/搜索