4 程序的语言 程序的语言是计算机能识别的一套符号系统,有机器语言、汇编语言、高级语言。计算机所有的行为都是我们预先设计、安排好的,但是必须得用一种她能够明白的方式告诉她。正如世界各地的人进行交流时总的用一种大家都能明白的语言,否则他们之间无法交流。 计算机对文字、图像、音频及视频等数据的处理都是按照二进制运算法则进行的,和自然语言一样,计算机程序也有特殊的语言,有自己的文字、语汇、语句及一些语法规则。起初工程师们编制程序就是用二进制的符号来描述的,后来为了便于记忆识别,采用带助记符的汇编语言来描述。但不论是机器语言还是汇编语言都是比较难懂、比较专业的,唯有高级语言比较适合普通学习者,从思维的学习训练来讲只明白高级语言就足够了。Windows程序设计的开发环境中有专门的编译程序,会将我们写的高级语言代码转化成机器语言代码,供计算机阅读。高级语言更接近自然语言,其基本“文字”是就是各种文字、字符、字母等书面语言用到的字符和文字。 用程序语言来描述五彩缤纷的现实世界,需要将各种对象实体格式化成一定格式的数据,即根据所描述对象的特点把数据设计成专门的方便运算的“数据类型”和“数据结构”。比如:整数型、浮点型、日期型、逻辑型等类型,数组、结构体、链表、队列、堆、栈等结构。数据在计算机内存中存放,该处内存叫“变量”。往内存里放数叫内存变量赋值,而“变量”就是程序语言的“词汇”,变量和常量用各种运算符连起来做算术运算、字符运算、关系运算、逻辑运算,以解决不同的问题。在运算的基础上形成“语句”,能表达一个完整意思的语句有,给变量赋值语句、输入/输出语句、选择判断语句、循环语句、其它辅助语句等。按照一定逻辑把各种语句组织起来就形成了程序文章,程序文章既是我们解决问题的方法和思路的描述,也是计算机处理问题的流程。 5 程序的思维 程序的思维是人脑思维的表现,我们怎么想,准备怎么做,告诉她,她就怎么想,怎么做。要想让程序进行数据处理,我们需解决三个问题:首先,要弄清楚所解决的问题是什么,想得到什么结果,达到什么目的;其次,找出解决问题的方法,即不用程序我们如何解决这个问题,现在有什么数据要处理,需经过怎样的处理,预想的处理结果是什么,最好是能把手工处理的步骤写下来,能写出方案和处理流程是最好的;最后,用计算机帮我们处理,用适合的可视化程序设计语言来描述处理过程,输入计算机,把人的思维转化成程序的思维。 可以看出,有了计算机,让程序行为代替我们的行为并不是让我们不去考虑问题,恰恰相反,是要求我们对问题看的更加清楚、明确,要求我们更加深入的思考解决问题的办法,要求我们有更加清晰的思路。 6 程序的逻辑 程序的逻辑即程序的执行规律。程序的思维是人类思维的表现,人的思维是对客观物质、客观规律的能动的反应,当然,程序执行规律反映物质运动的规律,是客观物质世界运动发展规律的反映。辨证唯物主义认为,世界是物质的,物质是运动的,运动是有规律的,从总体上讲物质运动发展的规律是随着时间的推移不断由简单向复杂、由低级向高级运动、发展。但是,就局部而言,发展并不是随意的,而是有条件的,在一定条件下可能向这个方向发展,也可能向那个方向发展,事物发展的道路也不是平坦的,在一定条件下可能会出现反复,但这个反复不是简单的重复,而是旧事物的灭亡,新事物的产生。 经过计算机科学家和工程师们长期的研究实践,总结提炼出,计算机程序的逻辑规律,即结构化程序的三种逻辑模式:顺序结构、选择结构、循环结构,以及面向对象程序的事件驱动模式和消息传递模式。顺序结构用来描述现实世界事物随时间发展的顺序性,是程序的总逻辑,也就是任何程序必须有头有尾,有开始有结束,既不会凭空而来,也不会无缘而去。选择结构用来描述事物发展的条件性,依照实际条件设计逻辑判断,决定程序的走向,其中有单分支条件结构,只描述一种条件,如果条件满足,则做相应的处理;双分支条件结构,用来描述判断的两个方面,如果满足条件,则做相应的处理,否则也得做出另外的处理;多分支结构,因为实际事物发展的条件性是很复杂的,可能涉及多个条件,从而决定发展的多个方向,程序需设计多个判断,满足对应的条件,做出对应的处理,这种多条件结构,有时也用多情况选择结构来描述,能够非常清晰的描述多情况讨论的事情。循环结构用来描述事物发展的重复性,让计程序在一定条件下反复运算,以得出需求的结果。循环有两种形式,一种是我们预先知道重复次数的计数循环,另一种是预先不知道重复次数,但是知道在什么条件下重复的条件循环。 面向对象程序的事件驱动模式用来描述事物对外界刺激反应的情况。比如家养看门狗,一旦有盗贼出现,狗狗马上做出反应,狗的行为就是事件驱动的。事件驱动是Windows程序的最大特色,程序一旦启动就进入Windows系统的任务队列,等待用户操作或其它外部事件的发生,Windows系统会不停的巡视队列中程序的状态,一旦某程序发生某种事件,则系统会调用预先编写好的事件处理程序做出相应的处理。事件驱动机制是针对对象而言的,具体对象做出什么样的处理,那就看事件过程里写的什么内容了。消息传递模式是用来描述程序中各对象之间信息交流的通信机制。操作系统通过消息循环来监视任务队列中程序的状态,通过消息传递实现各程序之间的通信。 7 程序与人脑 计算机程序产生初期只是某些专业技术人员思维的物化,一般人望尘莫及,随着计算机软硬件技术的发展,程序能够解决的事情越来越多,越来越复杂,越来越人性化,程序已经成为我们生活不可缺少的一部分,程序设计语言也越来越接近自然语言,设计程序、阅读程序也不再只是专业技术人员的专利。 但是,不论程序语言多么自然,要想让程序解决一个更复杂问题,更完美的解决问题,要求编写程序的人思维更加缜密细致。程序设计的过程是平心静气整理思维的过程,也是激发灵感的过程。程序的思维总归是人的思维表现,而使用程序的过程既是与机器交流的过程,也是与设计者交流的过程,是一个学习提高的过程,不仅仅是知识,更多的是程序中蕴含的思维和流程。人类在推动计算机程序向前发展的同时,程序也在反过来激发我们的思维不断提高,工作不断流程化,工作中的盲目性、随意性不断减少。程序是目前最简洁的思想方法的表达方式,她抛开了太多描写和修饰的语言,留下的只有工作流程和思想方法。程序已经成为人类思维共享,文明传承的桥梁和纽带。学习程序设计,并经常能阅读一些优秀的程序对我们思维能力的提高大有裨益,将使我们思路更加清晰,做事更加有条理。 参考文献: [1] 王秉中.计算电磁学[M].北京:科学出版社,2007(8). [2] 龚沛曾,杨志强. 大学计算机基础教学中的计算思维培养[J].中国大学教学,2012(5):51-54. |