编程语言的演化

名称代表语言核心概念运行机制关键突破实现原理主要目的常见应用
元编程(Meta programming)Lisp/Ruby/JavaScript元程序动态生成代码或者自动修改执行指令突破语言的常规语法限制利用代码生成或语言内奸的反射、动态等机制,将程序语言作为数据处理减少手工编码、提高语言级别自动代码生成、定义结构化配置文件,IDE、编译器,解释器,人工智能、领域特定语言等
命令式/过程式(Impreative/procedural)Fortran/Pascal/C命令、过程命令执行突破单一主程序和非结构化程序的限制引入逻辑控制和子程序模拟机器思维,实现自顶向下的模块设计交互式、事件驱动型系统、数值计算等
函数式、应用式(Functional、Applicative)Scheme/Haskell函数表达式计算突破机器思维的限制引入高阶函数、将函数作为数据处理模拟数学思维,简化代码,减少副作用微积分计算、数学逻辑、博弈等 
逻辑式Prolog/Mercury断言逻辑推理突破逻辑与控制粘合的限制利用推理引擎在已知的事实和规则的基础上进行逻辑推断专注逻辑分析、减少代码机器证明、专家系统、自然语言处理、语义网、决策分析、业务规则管理等
并发式/并行式(Concurrent/Parallel)Erlang/Oz进程、线程进程、线程、协程间通信与同步突破串行的限制引入并行的线程模块以及模块间的通信与同步机制充分利用资源、提供运行效率、提高软件的响应能力图形界面,IO处理,多任务系统,计算密集型系统
泛型式(Generic)Ada/Eiffel/C++算法算法实例化(多发生于编译期)突破静态类型语言的限制利用模板推迟类型指定提高算法的普适性普适性算法如排序、搜索等,集合类容器等
切面式(Aspect-Oriented)AspectJ/AspectC++切面在接入点处执行建议突破横切关注点无法模块化的限制通过编制将附加行为嵌入主题程序实现横切关注点分割日志输出、代码耿宗、性能监控、异常处理、安全检查等
时间驱动(Event-Driven)C#/VB.NET事件监听器收到事件后做出响应突破顺序、同步的流程限制引入控制反转和异步机制调用者与被调用者在代码和时间上双重解耦图形界面、网络应用、服务器、异步输入等、DOM等
对象式(Object-Oriented)Smaltalk/Java/Objc对象对象间信息交互突破数据与代码分隔的限制引入封装、继承和多态机制迎合人类认知模式,提高软件的易用性和重用性大型复杂交互系统等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值