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

什么是编程范型

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

编程范型简要体系

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

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

posted on 2014-08-02 18:28  格物志  阅读(801)  评论(0编辑  收藏  举报

导航