博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
冒号和他的学生们(连载13)——范式总结
阅读量:2425 次
发布时间:2019-05-10

本文共 2020 字,大约阅读时间需要 6 分钟。

Normal 0
冒号和他的学生们

——程序员提高班纪事

 

 

 

  1. 范式总结

至精而后阐其妙,至变而后通其数                            ——《文心雕龙·神思》

           

摘要:            编程范式总结

 

众人落座之后,冒号开始了第四课的讲授:“我们已经涉及了不少编程范式,虽只是走马观花,亦可管窥一斑。现用表格归纳如下——”

 

编程范式

核心概念

程序运行

典型应用

命令式/过程式

Imperative/Procedural

命令/过程

Command

/Procedure

命令执行

交互式、事件驱动型系统;数值计算等

声明式

Declarative

函数式/应用式

(Functional

/Applicative

函数

Function

表达式计算

微积分计算;数学逻辑;博弈等

逻辑式

Logic

断言

Predicate

逻辑证明

机器证明;专家系统;自然语言处理等

对象式(Object-Oriented

对象(Object

对象间信息交换

大型复杂交互式系统等

并发式/并行式

Concurrent/Parallel

进程/线程

Process

    /Thread

进程/线程间通讯与同步

图形用户界面;多任务系统如操作系统、服务器等;计算密集型系统如科学计算、人工智能等;

泛型式(Generic

算法

Algorithm

算法实例化

(多发生于编译期)

普适性算法如排序、搜索等;集合类容器等;

元编程(Metaprogramming

程序

Program

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

自动代码生成;定义结构化配置文件;IDE;编译器;解释器;人工智能;领域特定语言(DSL)等

切面式(Aspect-Oriented

切面(Aspect

在接入点处执行建议

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

 

冒号作结案陈词:“编程范式当然不止以上八种,但暂时不必贪多求全。不同的范式各擅胜场,有风格之别而无高低之分。现在请大家畅所欲言,谈谈这段时间的学习感受。”

叹号表情有点复杂:“通过前面的学习,让我长了不少见识,只是——”

“但讲无妨。” 见叹号有些吞吞吐吐,冒号鼓励道。

“只是觉得有点——纸上谈兵。”叹号鼓足勇气说出心里话。

引号不以为然:“我倒觉得应该更深入地去了解这些范式,现在有了一些感性认识,但还非常肤浅,希望以后能进一步展开。”

逗号挺实在:“有些地方似懂非懂,听起来挺费劲的,直到情景编程才觉得轻松了些。以后可不可以多谈些具体的编程知识、编程技巧和编程经验?”

句号拍了拍他的肩膀:“你想学的是招法,老冒传的是心法。”

逗号不服:“没有招法再多心法也白搭——光说不练假把式。”

句号反驳:“只关注招法,境界永远得不到提升——光练不说傻把式。”

“二位请暂停争论。”冒号把头转向问号,“你怎么看?”

问号很干脆:“管它心法还是招法,能解决问题就是好法。”

“你倒滑头,整个一白猫黑猫论嘛!” 冒号哈哈一笑,“首先,编程范式绝非中看不中用的屠龙之术,它有助于我们在更高的层次上去理解编程语言,故有心法之谓。其次,心法只有通过招法才能落到实处,也只有通过招法才能融会贯通。”

“那传说中的‘无招胜有招’呢?”引号问。

冒号哂道:“武侠小说看多了,容易想入非非,那种境界岂是一般人所能达到的?对绝大多数人来说,无招就意味着自己没招而将中他人之招。”

众人窃笑。

“还有一样是至关重要的。”冒号提醒道,“那就是实战。”

句号深有体会:“以前在学校里编程似乎还得心应手,到了公司就时感力有不逮。”

“花拳绣腿对付小喽啰绰绰有余,真碰到高手自然漏洞百出了。”冒号总结道,“编程水平的提升之道是:在实战中演练招法,在招法中领会心法,心法反过来提升招法,进而提高实战水平,如此循环往复呈螺旋式上升过程。正所谓熟能生巧,巧能生通。”

问号询道:“下面我们的主题是什么?”

冒号亮出他的学习理论:“软件工程中有个迭代开发法,本班则采用迭代学习法:即在具体知识与抽象理论之间进行折返式学习。当然这种迭代不是机械式的重复,而是增量式的循环。假定你们以前更关注具体的编程语言,那么遵循这种方式,先介绍抽象的编程范式是合适的。在初步了解范式之后,不妨重新回到编程语言上来。”

叹号求之不得:“是啊,在空中飘久了,会染上恐高症的。”

冒号笑着警告:“不要高兴太早,着陆后我们还会再次起飞的——别忘了我们的迭代式学习是周而复始的。至于眼下谈什么,还是先征求各位的意见,这样开放式教学才名副其实嘛。”

众人开始交头接耳、七嘴八舌地议论起来。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14674535/viewspace-373139/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/14674535/viewspace-373139/

你可能感兴趣的文章
【计算机网络】【HTTPS】HTTPS通信原理剖析 2018-9-25
查看>>
【java】优先队列问题2018-9-25
查看>>
【Java】【web】【计算机网络】cookie学习总结 2018-9-28
查看>>
【Java】【编程练习】给定一个整数数组A及它的大小n,同时给定要查找的元素val,请返回它在数组中的位置(从0开始),若不存在该元素,返回-1。若该元素出现多次请返回第一个找到的位置.2018-9
查看>>
【Java】【编程练习】输入一个正整数n,求n!(即阶乘)末尾有多少个 0 ? 2018-9-28
查看>>
【Java】【web】【计算机网络】session学习总结 2018-9-28
查看>>
【计算机网络】【WEB】DNS域名解析过程(十步走) 2018-9-28
查看>>
【java】【web】Web组件之间的跳转方式 2018-9-29
查看>>
【Java】【web】Servlet的三大作用域对象 2018-8-29
查看>>
【转载】【计算机网络】【TCP】当我们说"TCP是可靠协议"时,我们真正表达的是什么?
查看>>
【Java】【JVM】Java中JVM内存管理 2018-10-5
查看>>
【Java】Java 集合学习总结 2018-10-5
查看>>
【Java】Java序列化学习总结 2018-10-5
查看>>
【web】深入理解负载均衡 2018-10-5
查看>>
交换机和路由器的区别
查看>>
各种服务应用的端口
查看>>
ALL IS WELL《三傻大闹宝莱坞》意味深长的23句经典台词
查看>>
linux环境下安装Java并配置
查看>>
基于Service的简易音乐播放器
查看>>
在android studio中使用genymotion模拟器
查看>>