《编程原本 》一1.4 过程

简介: 本节书摘来自华章出版社《编程原本 》一书中的第1章,第1.4节,作者(美)斯特潘诺夫(Stepanov, A.),(美)麦克琼斯(McJones, P.),更多章节内容可以访问云栖社区“华章计算机”公众号查看

1.4 过程

一个过程(procedure)是一个指令序列,它修改某些对象的状态,也可能构造或
者销毁一些对象.根据程序员的意图,与一个过程交互的对象分为四类.
1.输入输出(input/output),指该过程通过其参数或返回值直接或间接传递的那些对象.

2.局部状态(localstate),该过程在其一次调用期间创建、销毁或修改的那些对象.

3.全局状态(globalstate),该过程和其他过程在多次调用中访问的对象.

4.拥有的状态(ownstate),仅供该过程(及其隶属过程)访问但又能被该过程的多次调用共享的对象.

如果一个对象作为参数或结果传递,称它是直接传递的;如果是通过指针或类似指针的机制传递,则称它是间接传递的.如果一个对象被某个过程读但是并不修改,称它是该过程的输入.如果一个对象被某过程写入、创建或销毁,但该过程并不访问其初始状态,则称它是该过程的输出.如果一个对象被某过程既读又修改,称它是该过程的输入/输出.
一个类型的计算基(computationalbasis)是有穷的一集过程,基于它们可以构造出该类型上的其他过程.一组基是高效的(e.cient),当且仅当基于它实现的任何过程的效率不比基于任何其他基写出的过程低效.例如,对k-位无符号整数的一组只提供0,相等判断和后继操作的基就不是高效的,因为基于后继函数实现加法的复杂性是k的指数函数.
一组基是有表达力的(expressive),当且仅当基于它可以紧凑而方便地定义相关类型上的其他过程.特别是,如果合适的话,一个基应该提供所有常用的数学运算.举例说,虽然减法运算可以通过求负和加法实现,但在一个有表达力

相关文章
|
6月前
|
算法 程序员
为何程序员在编写程序时难以一次性将所有代码完美无瑕地完成,而是需要经历反复修改Bug的过程?
为何程序员在编写程序时难以一次性将所有代码完美无瑕地完成,而是需要经历反复修改Bug的过程?
65 7
|
存储 安全 程序员
程序员思维模式-主调试循环
仅通过测试进行验证基本上是在仪器上驾驶飞机,而不是能够向外看挡风玻璃。视觉飞行和肌肉记忆飞行与仪器相结合,既高效又安全。你不太可能误撞山。 当你已经编码了十多年时,可能很难重新捕捉初学者的思想,并向新手解释如何像程序员一样思考。我记得在大学里,当我编码的时间相对较短时,有一件事在我的脑海中结晶了编写代码背后的思维过程——你可以称之为程序员哲学。我正在帮助一个朋友完成计算机
程序员思维模式-主调试循环
|
Java Apache
集合的特别要注意地方哈
《系统设计》系列
78 0
|
存储 安全 程序员
程序员思维模式 - 主调试循环
> 仅通过测试进行验证基本上是在仪器上驾驶飞机,而不是能够向外看挡风玻璃。视觉飞行和肌肉记忆飞行与仪器相结合,既高效又安全。你不太可能误撞山。 当你已经编码了十多年时,可能很难重新捕捉[初学者的思想](https://en.wikipedia.org/wiki/Shoshin),并向新手解释如何像程序员一样思考。我记得在大学里,当我编码的时间相对较短时,有一件事在我的脑海中结晶了编写代码背后的思维过程——你可以称之为程序员哲学。我正在帮助一个朋友完成计算机科学101任务。他们对编码完全陌生。 他们从头到尾在纸上写了一个完整的解决方案——也许是100行代码。然后,他们将其全部输入到文本编辑器
136 0
|
前端开发 大数据 程序员
还在看视频读文档学编程?这有7种编程学习方式,哪种最适合你?
学习编程不仅仅是学会各种语言,你还需要学习如何像程序员一样思考。这里有七种学习编程的方式,视频、文档、听觉、触摸……,你需要找到最适合你的那种。
1852 0
C过程思想,根据需求写方法就行
实现的方法有多种 Comprehensive orientate 2017/10/27 13:25:07C过程思想,根据需求写方法就行     
714 0
|
人工智能 JavaScript C++
《编程原本 》一3.4 处理特殊情况的过程
本节书摘来自华章出版社《编程原本 》一书中的第3章,第3.4节,作者(美)斯特潘诺夫(Stepanov, A.),(美)麦克琼斯(McJones, P.),更多章节内容可以访问云栖社区“华章计算机”公众号查看
1168 0
|
机器学习/深度学习 人工智能 JavaScript
《编程原本 》一3.3 程序变换
本节书摘来自华章出版社《编程原本 》一书中的第3章,第3.3节,作者(美)斯特潘诺夫(Stepanov, A.),(美)麦克琼斯(McJones, P.),更多章节内容可以访问云栖社区“华章计算机”公众号查看
1196 0