发现编程范型一:认识范型

什么是编程范型

  • 缘起:
    上学的时候学习C/C++语言和Java语言,工做后又陆续接触了一些编程语言python/lua/objective-c等,
    发现每门语言开始学习的东西都是类似的,helloworld程序、类型与变量、操做符、表达式及面向对象的类、继承和多态等,
    这个时候就会发现这种重复就是一种规律--网上查找以后才知道这个叫作编程范型。
  • 网上释义:
    编程范型,是一类典型的编程风格,提供了(同时决定了)程序员对程序执行的见解。
  • 编程语言的思考:
    程序设计语言,是一个有限的词汇与规则的集合,用于描述一个特定的问题。
    全部的编程语言最后都要编译成机器理解的二进制代码,理论上全部语言都是相等的。
    但多语言的出现是伴随不一样问题领域出现的,因此不一样语言的侧重点也不一样,语法也不一样。
  • 范型:
    一个连贯完整的词聚集以及组合规则,能够产生一种范型--定义出很大一部分的语言特质。
    范型的重要性,可生成简洁的、可读性强的代码,保持问题域和软件模型之间的一致性。
  • 语言的其余特性:
    语言的其余特质:类型种类(动态/静态),句法及其余因素。
  • 使用多语言编程:
    • 将问题域分解为差别明显的多个部分 -- 分析问题,合理的将分解问题
    • 为子领域选择正确的/合适的语言/范型

编程范型简要体系

该体系结构摘录自:编程范型wiki
虽然不少看不太懂,可是感受不明觉厉
推荐相关书籍:《七周七语言:理解多种编程范型》python

  • 面向代理
  • 基于组件(如OLE)
    • 基于流
    • 管道(Unix/Linux中的管道)
  • 连续式
  • 并发计算
  • 声明式(对比:命令式)
    • 函数式
      • 数据流
        • 面向细胞(电子表格)(如Microsoft FoxPro)
        • 无功
    • 面向图形
    • 目标导向
      • 约束
        • 逻辑
          • 回答集编程
          • 约束逻辑
          • 溯因逻辑
          • 概括逻辑
  • 事件驱动
    • 面向服务
    • 时间驱动
  • 功能导向
  • 函数级(对比:价值级)
  • 命令式(对比:声明式)
    • 非结构化
      • 阵列(对比:标量)
      • 迭代式
    • 结构化
      • 过程式
        • 模块化
        • 递归式
      • 面向对象
        • 基于类
        • 基于原型
        • 自动机
        • 根据关注分离:
          • 面向方面(如AspectJ)
          • 面向主题
          • 面向角色
  • 元编程
    • 面向属性
    • 自动
      • 泛型
        • 模板
          • 基于原则
      • 面向语言
        • 领域特定
        • 面向语法
          • 方言化
        • 意图
    • 反射式
  • 不肯定
  • 并行计算
    • 面向过程
  • 大规模与小规模编程
  • 价值级(对比:函数级)
相关文章
相关标签/搜索