《程序原本》电子书 - PDF版

所需积分/C币:50 2017-07-20 11:59:43 5.59MB PDF
收藏 收藏
举报

在本书中,作者采用反复置疑、层层递进的手法,从一些极其简单的现象或结果出发,为你揭示“程序是什么”这个简单而深刻的命题。本书将创建一个一致性的思维框架,并引领读者在这个框架之下,发现简单代码到系统结构之间不变的那些规则与本质。 本书既是追溯程序原本之书,也是走向设计师、架构师的入门之径。
内容提要 在本书中,作者采用反复置疑、层层递进的手法,从一些极其简单 的现象或结果出发,为你揭示“程序是什么”这个简单而深刻的命 题。本书将创建一个一致性的思维框架,并引领读者在这个框架之 下,发现简单代码到系统结构之间不变的那些规则与本质 本书既是追溯程序原本之书,也是走向设计师、架构师的入门之径 序1:程序里的世界 程序,或多或少地反映了这个世界运行的本质。那么,程序的本质 又是什么呢? 爱民写了这本《程序原本》,看起来想部分地回答“程序的本质是 什么”这个大问题。 在篇一,“计算系统”。他认为,“算”是程序之表,“数”是程 序之本。然后,算的过程体现了数之间的“逻辑”。而算与数在人 们的认知过程一一当然也包括在计算系统一一中的体现,则是对 “事物”的“抽象”。当然,这个对事物的抽象,是与事物的“具 象”相联系的,也只有这样,计算系统才是在反映现实世界的运行 人们在“计算系统”中,通过“程序”来描述、虚拟现实世界,跟 人们在日常生活中,通过讲述、写作来描述与推理现实世界一样, 是通过“语言”来达到的。“语言及其面临的系统”,即是本书篇 二的内容。 在计算系统中为计算机所理解的程序语言,也有一系列语法、语义 与语用的设定,以尽量避免“计算不确定性”带来的副作用。不同 计算范式的程序语言或者设计,均力图从不同的角度来减少这种副 作用。比如命令式编程、函数式编程,前者,通过限定计算步骤、 命令的严格顺序来避免不确定性;后者,则通过引用透明来避免不 确定性。 而系统的构建,即使部件由不同的程序语言写成,只要在交互界面 上设计为“可实现的规则集”,以及输出表达为“可计算的数据 项”,也可以实现“对话”。或者说,“可实现的规则集”和“可 计算的数据项”,实际上也可以归为一套简洁的“语言”。 篇三,“程序设计的核心思想”。作者开始涉及到程序设计中的一 些基本要素,包括数据结构、执行体与它在执行过程中的环境、语 法树和对象系统等等。这些要素,仍然是从算与数出发,自然延伸 出来的。其中“语法树”在本篇提出,我的理解是,“语法树”在 很多情况下是可以作为程序设计中的要素加以利用的。 篇四,“应用开发基础”。从本篇起,对“程序”的理解开始上升 到“应用”层次,主要是从“软件复用”和“工程化”的角度来陈 述“模块/单元”与“项目/工程”这些“应用程序”的组成或者构 建过程。并以“模型是一种沟通工具,这是它内在的‘语言’本质 特征”来回到“程序语言”这个“程序”最基本的表达方式本身 篇五,“系统的基础部件”。则在系统的层次来讨论“程序”,认 为“系统是‘通过在程序组织上的结构化来解决规模问题’的一种 策略,那么程序所解决的问题集‘能否分割’以及‘如何正确地分 割’,就是所有系统问题的核心所在”。并提出,“系统应付规模 问题的总法则只有两个:运算能力的分布,以及运算对象的分布”。 进一步的,既有了“分布”,则立刻遇到分布的部件之间的“依 赖”。而这种依赖,处理的对象则是系统的(分布的)“状态” 并可以通过“消息”来处理这些“状态之间的依赖”。状态和消息, 是处理系统分布与依赖问题的主要数据模式。 最后一篇,篇六,“系统的基本组织方法与原理”。探讨“系统” 这个带有“规模化”内涵的程序。而“这一规模的定义本身就是由 跨领域引申而来”,以应对“跨领域”的系统级“程序”。另一方 面,“服务”则更倾向于设计为带有领域逻辑交互界面的“节点”。 那么在这种倾向下,服务要处理的对象,也许应该退化到“数据” 本身,并作为“数据”节点来提供它的能力。尤其是面对所谓的 “海量”数据时,不同领域的交互,需要数据以更灵活(可变)的 方式来存贮、获得和传递。 而“程序”,这个即使在“系统”层面上也仍然是——“算”是程 序之表,“数”是程序之本—一的“玩意”,在规模化到了系统层 面之后,其层间的规划与层间关系的模型,以及如何通过系统化方 法来实现这些层之间,亦即是领域间的协作开发,就需要在作者 《我的架构思想:基本模型、理论与原则》一书中继续展开了。 邓草原 2017.05.27 序2:最后一层表象 我曾经写过一本《动态函数式语言精髓》,并称之为我在最终结论 面前的“最后一层表象”。而我所追寻的最终结论是关于什么的呢? 那个问题从十余年前便困扰着我:作为一个程序员,我到底在做什 么呢?换而言之,我一直在追问的问题其实就是: 什么是程序? 我曾经认为这个问题是有答案的,比如经典的“算法+数据结构= 程序”。但是在多年之后我对这个答案有了怀疑。因为我看到, 《结构程序设计》这本书根本上是在讨论另一个解,即“结构(算 法(数据))”。然而即使如此,“结构化”本身,就是程序规模化的 唯一求解吗?更深入地说,规模化是“计算的程序化”唯一的问题 吗? ①这是《 JavaScript语言精髓与编程实践》一书的电子版(精编版)的书名,事实上这也是前者在正式发 行前所使用的书名。 《算法+数据结构=程序》,作者尼古拉斯沃斯( Niklaus wirth)是 Pasca语言之父,也是1984年图 灵奖得主 ③《结构程序设计( Structured Programming)》,由EW戴克斯特拉、CAR霍尔和OJ达尔合著,他 们分别是1972年、1980年和2001年图灵奖得主。 我认为不是。 本书从数据之于计算系统的意义谈起,回顾了我多年前所认识到的 那一层(我曾自认为是最后一层)的表象一一亦即是“语言”。而 后,将所谓真正的问题推及对“程序”的认识和理解,再推及到所 谓的“应用”与“系统”,并最终揭示这些表象之下的那个简单的 事实:它们不过是“结构化”这一求解的引申 又是一层表象。 周爱民 2017.02.25

...展开详情
试读 127P 《程序原本》电子书 - PDF版
立即下载 低至0.43元/次 身份认证VIP会员低至7折
    一个资源只可评论一次,评论内容不能少于5个字
    yanbin_cheng 很不错哦,可以下载
    2018-01-26
    回复
    img
    aimingoo
    • 分享宗师

      成功上传21个资源即可获取

    关注 私信 TA的资源

    上传资源赚积分,得勋章
    最新推荐
    《程序原本》电子书 - PDF版 50积分/C币 立即下载
    1/127
    《程序原本》电子书 - PDF版第1页
    《程序原本》电子书 - PDF版第2页
    《程序原本》电子书 - PDF版第3页
    《程序原本》电子书 - PDF版第4页
    《程序原本》电子书 - PDF版第5页
    《程序原本》电子书 - PDF版第6页
    《程序原本》电子书 - PDF版第7页
    《程序原本》电子书 - PDF版第8页
    《程序原本》电子书 - PDF版第9页
    《程序原本》电子书 - PDF版第10页
    《程序原本》电子书 - PDF版第11页
    《程序原本》电子书 - PDF版第12页
    《程序原本》电子书 - PDF版第13页
    《程序原本》电子书 - PDF版第14页
    《程序原本》电子书 - PDF版第15页
    《程序原本》电子书 - PDF版第16页
    《程序原本》电子书 - PDF版第17页
    《程序原本》电子书 - PDF版第18页
    《程序原本》电子书 - PDF版第19页
    《程序原本》电子书 - PDF版第20页

    试读已结束,剩余107页未读...

    50积分/C币 立即下载 >