《冒号课堂》学习笔记 编程范式汇总

编程范式  命令式/过程式(Imperative/Procedural)

代表语言  Fortran/Pascal/C

核心概念  命令/过程(Command/Procedure)

运行机制  命令执行

关键突破  突破单一主程序和非结构话程序的限制

实现原理  引入逻辑控制与子程序

主要目的  模拟机器思维,实现自顶向下的模块设计

常见应用  交互式、事件驱动型系统、数值计算等

编程范式  函数式/应用式(Functional/Applicative)

代表语言  Scheme/Haskell

核心概念  函数(Funcation)

运行机制  表达式计算

关键突破  突破机器思维的限制

实现原理  引入高阶函数,将函数作为数据处理

主要目的  模拟数学思维,简化代码,减少副作用

常见应用  微积分计算,数学逻辑,博弈等

编程范式  逻辑式(Logic)

代表语言  Prolog/Mercury

核心概念  断言(Predicate)

运行机制  逻辑推算

关键突破  突破逻辑与控制台粘合的限制

实现原理  利用推理引擎在已知的事实和规则的基础上进行逻辑推断

主要目的  专注逻辑分析,减少控制代码

常见应用  机器证明、专家系统、自然语言处理、语义网(semantic web)、决策分析、业务规则管理等

编程范式  对象式(Object-Oriented)

代表语言  Smalltalk/Java

核心概念  对象(Object)

运行机制  对象间信息交换

关键突破  突破数据与代码分离的限制

实现原理  引入封装、继承和多态机制

主要目的  迎合人类认知模式,提高软件的易用性和重用性

常见应用  大型复杂交互式系统等

编程范式  并发式/并行式(Concurrent/Parallel)

代表语言  Erlang/Oz

核心概念  进程/线程(Process/Thread)

运行机制  进程/线程间通信与同步

关键突破  突破串行的限制

实现原理  引入并发的线程模块及模块间的通信与同步机制

主要目的  充分利用资源、提高运行效率、提高软件的响应能力

常见应用  图形用户界面,I/O处理,多任务系统如操作系统、网络服务等,实时系统,嵌入式系统,计算密集型系统如科学计算、人工智能等

编程范式  泛型式(Generic)

代表语言  Ada/Eiffel/C++

核心概念  算法(Algorithm)

运行机制  算法实例化(多发生于编译器)

关键突破  突破静态类型语言的限制

实现原理  利用模板延迟类型指定

主要目的  提高算法的普遍性

常见应用  普适性算法如排序,搜索等,集合类容器等

编程范式  元编程(Meta-programming)

代表语言  Lisp/Ruby/JavaScript

核心概念  元程序(Metaprogram)

运行机制  动态生成代码或自动修改执行指令

关键突破  突破语言的常规语法限制

实现原理  利用代码生成或语言内建的反射(reflection)、动态等机制,将程序语言作为数据来处理

主要目的  减少手工编码,提高语言级别

常见应用  自动代码生成、定义结构化配置文件、IDE、编译器、解释器、人工智能、模型驱动架构(MDA)、领域特定语言(DSL)等

编程范式  切面式(Aspect-Oriented)

代表语言  AspectJ/AspectC++

核心概念  切面(Aspect)

运行机制  在接入点处执行建议

关键突破  突破横切关注点无法模块化的限制

实现原理  通过编织(weaving)将附加行为嵌入主体程序

主要目的  实现横切关注点分离

常见应用  日志输出、代码跟踪、性能监控、异常处理、安全检查、事务管理等

编程范式  事件驱动(Event-Driven)

代表语言  C#/VB.NET

核心概念  事件(Event)

运行机制  监听器收到事件通知后做出响应

关键突破  突破顺序、同步的流程限制

实现原理  引入控制反转和异步机制

主要目的  调用者与被调用者在代码和时间上双重解耦

常见应用  图形化用户界面、网络应用、服务器、操作系统、IoC框架、异步输入、DOM等

原文地址:https://www.cnblogs.com/guihuo/p/5619033.html