□由计算系统与程序员共同确知的数据与逻辑构成;且,□最终可以由某种计算方法在指定计算系统上实施以得到计算结果。
这里的计算方法并不是指“算法”,而是指对某种计算实施过程的抽象,例如在上一章第三节中所讨论到“命令式”和“函数式”这两种计算范式。所以,会编程与掌握某种语言的语法形式是无关的。
编程实质上是一种在语义描述上的能力修养。具备这种能力之后,语法也就无非是一些规则、限制和对不同计算系统的理解能力上的差别了。所以“计算机程序设计”这门功课应该教你编程,而不是教你使用一门具体的语言——我们现在大多把它当成语言课,实在是本末倒置了。
我一直有一个问题:为什么JavaScript不适合大型开发?更进一步的问题是,JavaScript可以应付何种规模的开发?或者,我们泛义一点来讨论这个问题:语法与语义上的特性,是否决定了该语言可能适宜的开发规模?对于这一系列的问题,我希望尝试通过对第三个问题的分析,回溯至对第一个问题的探讨。首先我们需要界定“开发规模”,而这缺乏一个必要的、科学的分类方法。以我的经验来说,我用四个显著的关键词来区分我们面临的开发规模的不同等级,分别是:功能(function)、程序(program)、应用(application)和系统(system),
并不是说一段代码中具有了上述某个级别的关键词就有相应的规模,而只能说这种语言具有对这个级别的开发规模的支持。具体语言对这个级别可能支持得好或不好,但“好”的程度并不是我们讨论的问题,因为这是一个变化的、发展相关的状态。
我们需要另外说一下项目(project)这个关键词。“项目”主要是一个开发过程中的、组织上的用词。就其组织的形式而言,更进一步地会有项目组(project group),退一步则可能是一个活动或事件(action/event)。但是,这些都与我们这里讨论的开发规模无关。你可能为一个只有三行代码的微型程序创建一个项目,或者一个项目组中仅仅只有三个空程序,这些说明不了你的开发规模,而只是你对后续开发活动的组织形式的设定。yipindushu.com
所以“语言具有什么样的特性”出自语言设计视角,并对“项目组织成多大”有支持作用,但不是后者的全部。那么接下来的问题还有两个,一是“为什么存在支持作用”?二是“哪些特性,有何种的支持作用”?二我何以将开发规模分为上述四种等级呢?因为这四种等级随计算机应用的演进历史发展而来,具有各自不同的特性和表现。
功能(function)是计算机的本质能力,它包括最初的计算能力,以及计算能力在数学抽象上的、最大粒度的表达。这类语言的目仅仅是“完成计算”,其特性集中在对计算机的计算能力的抽象和实现上。一般来说,一门语言只要具有:□数(number)的定义□数据(data)的定义□计算能力(formula/expression)□逻辑能力(顺序、分支与循环)□一个计算过程的约定(命令式、函数式或其他计算范式)那么它就已经是一门这样的语言了。这在个级别上,最大规模以引入函数这一抽象概念为止(即具有将一系列的计算过程定义为函数的能力)。因为函数等同于“数学定理",所以他可以像一个公式或运算元一样直接使用。而这样的语言被创生的目的,通常是通过计算能力(包括函数)与逻辑能力,对一系列的数——亦即数据进行计算。因此可以将之定义为:p+fd)即,“计算范式+计算能力(数据)”:Paradigm + Function(Data)出于表达的需要,我将这一等级上的语言统称为“计算语言”(computinglanguage)。需要注意的是,一般来说计算语言通常不适合应用软件开发,而只是数学与计算机科学在应用于跨学科研究领域中的工具。
接下来三种等级以计算语言为源起,是语言设计在结构化这种思想下的、两种方向上的发展结果,
中仅仅只有三个空程序,这些说明不了你的开发规模,而只是你对后续开发活动的组织形式的设定。
所以“语言具有什么样的特性”出自语言设计视角,并对“项目组织成多大”有支持作用,但不是后者的全部。那么接下来的问题还有两个,一是“为什么存在支持作用”?二是“哪些特性,有何种的支持作用”?二我何以将开发规模分为上述四种等级呢?因为这四种等级随计算机应用的演进历史发展而来,具有各自不同的特性和表现。
功能(function)是计算机的本质能力,它包括最初的计算能力,以及计算能力在数学抽象上的、最大粒度的表达。这类语言的目仅仅是“完成计算”,其特性集中在对计算机的计算能力的抽象和实现上。一般来说,一门语言只要具有:口数(number)的定义口数据(data)的定义□计算能力(formula/expression)□逻辑能力(顺序、分支与循环)□一个计算过程的约定(命令式、函数式或其他计算范式)那么它就已经是一门这样的语言了。这在个级别上,最大规模以引入函数这一抽象概念为止(即具有将一系列的计算过程定义为函数的能力)。因为函数等同于“数学定理",所以他可以像一个公式或运算元一样直接使用。而这样的语言被创生的目的,通常是通过计算能力(包括函数)与逻辑能力,对一系列的数——亦即数据进行计算。因此可以将之定义为:p+f(d)即,“计算范式+计算能力(数据)”:Paradigm + Function(Data)出于表达的需要,我将这一等级上的语言统称为“计算语言”(computinglanguage)。需要注意的是,一般来说计算语言通常不适合应用软件开发,而只是数学与计算机科学在应用于跨学科研究领域中的工具。
接下来三种等级以计算语言为源起,是语言设计在结构化这种思想下的、两种方向上的发展结果,
版权声明
本站素材均来源与互联网和网友投稿,欢迎学习分享
【节数以及对数据的性质的思考9:http://www.yipindushu.com/xuexifangfa/16486.html
推荐文章
11-26
1 0基础英语学习方法01-19
2 初中英语学习策略与有效学习指导01-18
3 如何学习前端开发09-03
4 女人哲理自己的句子12-24
5 清华大学学习方法