计算机是20世纪重大的科技成果之一,它的飞速发展大大促进了知识经济的发展和社会信息化的进程。人与计算机交流最通用的手段是程序设计语言。当人们想利用计算机解决某个问题时,必须用程序设计语言安排好处理步骤,并存入计算机内供计算机执行,这些用程序设计语言安排好的处理步骤称为 计算机程序 ,程序是计算机操作指令的集合。
一个计算机程序主要包括两方面的内容:其一是关于程序实现算法的操作步骤描述,即动作描述;其二是关于算法操作对象的描述,即数据描述。曾经发明Pascal语言的著名计算机科学家·尼古拉斯·沃思(Niklaus Wirth)提出了一个关于程序设计的著名公式:
程序=算法+数据结构
这个公式说明了程序设计的主要任务,也说明了在程序设计过程中“算法”与“数据结构”密不可分的关系。用程序设计语言编制一个能完成某项任务的计算机程序的过程叫作 程序设计 。用计算机解决一个实际问题,首先应进行程序设计,而程序设计主要包括对数据以及处理问题的方法和步骤的完整而准确的描述。
数据是操作的对象,操作的目的是对数据进行处理,以得到期望的结果。对数据的描述,就是指明在程序中要用到数据的哪些类型和组织形式,即数据结构;对问题的方法和步骤的描述,即计算机进行操作的步骤,也就是所采用的算法。
对于程序设计初学者来说,要学会如何设计一个正确的程序,首先要认真考虑和设计数据结构及操作步骤。一个正确的程序通常包含两方面的含义:一是书写正确,二是结果正确。书写正确是程序在语法上正确,符合程序设计语言的规则;结果正确通常是指对应于正确的输入,程序能够产生所期望的输出。程序设计除了以上两大要素之外,还涉及程序设计方法和所用的具体语言工具及环境,可以详细地描述为:
程序设计=算法+数据结构+程序设计方法+语言工具及环境
这四个方面是程序设计人员应具备的基本知识。其中,算法是灵魂,解决“做什么”和“怎么做”的问题,不了解算法就谈不上程序设计。程序中的操作语句就是对算法的实现。算法是从计算机操作的角度对解题过程的抽象,数据结构是从如何组织被处理对象的角度进行抽象。本书不是以数据结构和算法为主展开讨论的,而是着重介绍利用C语言进行程序设计的基本方法。
程序设计方法是从宏观的角度处理问题的方法,如结构化程序设计、面向对象的技术等。工具包括使用的程序设计语言及相关的编译系统和调试工具。
程序设计的另一个关键是必须选择且掌握一种程序设计语言,因为程序设计语言是人和计算机直接交流的工具。
程序设计语言通常分为三类:机器语言、汇编语言和高级语言。
机器语言 是指由二进制代码组成,不需要翻译就可以被计算机直接执行的指令的集合。这是一种面向机器的语言,执行效率高,但通用性和可读性都很差。
微视频1-1 计算机解决问题方法
为了克服这些缺点,产生出一种符号语言,也称为 汇编语言 。对于用汇编语言编写的程序,计算机不能直接识别,需要汇编程序把它翻译成机器代码。它比机器语言使用起来方便,但通用性仍然很差。
人们把直接表示数学公式和解题方法的语言称为 高级语言 。这种语言直观通俗,非常接近于人们的“自然描述”语言,便于编写、阅读、修改和维护,通用性强。用高级语言编写的源程序,机器也是不能识别的,必须通过编译程序或解释程序进行翻译,最终生成机器语言程序。目前程序设计语言有很多,新的语言不断涌现。各类语言都有其特点和适用的领域。本书介绍C语言。
最后一项指的是,要选择一个合适的 集成开发环境 (Integrated Development Environment,IDE)。IDE是集成了程序员语言开发中需要的一些基本工具、基本环境和其他辅助功能的应用软件,一般包含四个主要组件: 源代码编辑器 (editor)、 编译器 (compiler)、 解释器 (interpreter)和 调试器 (debugger)。开发人员可以通过图形用户界面(GUI)访问这些组件,并且实现整个代码编译、调试和执行的过程。现在的IDE也提供帮助程序员提高开发效率的一些高级辅助功能,比如代码高亮、代码补全和提示、语法错误提示、函数追踪、断点调试等。
微视频1-2 程序设计语言