版权声明
本文原创作者:wby小菜盒
作者博客地址:https://blog.csdn.net/weixin_51037598/
程序设计导引(一)
程序设计导引概述
有几个重要的概念:程序;算法;高级语言
程序
- 程序的概念:计算机程序是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求(或为帮助用户解决问题的信息化工具。【程序是一个指令序列(或可理解为文档集合)】
- 程序设计语言的概念:用于书写计算机程序的语言。人与计算机打交道时交流信息的一类媒介和工具,由语句(statement)组成。(注:代码需符合语言规范)
- 大致运行过程:程序以某些程序设计语言编写,运行于某种目标结构体系上。打个比方,程序就如同以英语(程序设计语言)写作的文章,要让一个懂得英语的人(编译器)同时也会阅读这篇文章的人(结构体系)来阅读、理解、标记这篇文章。一般的,以英语文本为基础的计算机程序要经过编译、链接而成为人难以解读,但可轻易被计算机所解读的数字格式,然后放入运行。(come from 度娘)
算法
- 概念:算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。(百度解释)
(Wby暴力解释:算法即解决问题的方法,其可 以自然语言、流程图、程序(编程语言)等形式展现) - 评判算法好坏的因素:
- 时空复杂度
时空复杂度即为时间复杂度与空间复杂度。
(1)顾名思义,一个为时间上的开销,一个是计算机内存空间的开销(简言之:占字节的多少)。
(2)一般的算法不可兼顾两者,鱼和熊掌不可兼得。
例:递归----时间复杂度低、效率高,但是空间复杂度高(一次又一次地为形参开辟内存空间)。 - 计算机的运行范围
(1)硬件(硬盘容量、CPU性能、内存容量等)是否支持、是否在其承受能力范围内、其性能是否达标等等
(2)软件(如操作系统OS)
高级语言
- 计算机程序设计语言经过了从低级到高级的发展过程。
语言处理程序经历了机器语言、汇编语言、高级语言三个层次。
- 机器语言:计算机直接使用的二进制形式的程序语言或机器代码。
- 汇编语言:一种面向机器的用符号表示的低级程序设计语言(助记符) 。相当于机器指令的助记符号,与机器语言很接近。
【以上两者均受机器的限制,通用性不高】 - 高级语言:易被人们理解,完全符号化的程序设计语言
- 计算机只能识别和执行机器语言,高级语言编写的程序(源代码)必须经过“翻译(都是系统程序----编译器或解释器)”才能被执行。
- 编译(编译系统):编译是指在应用源程序执行之前,就将程序源代码 “翻译” 成目标代码(机器语言)。
(1)利:其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。
(2)弊:应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件才能执行,只有目标文件而没有源代码,修改很不方便。
(通常认为C为编译型语言) - 解释程序(python)解释一句执行一句,不产生目标代码。
执行方式类似于日常生活中的 “同声翻译” ,应用程序源代码一边由相应语言的解释器 “翻译” 成目标代码(机器语言),一边执行。
(1)弊:效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器。
(2)利:这种方式比较灵活,可以动态地调整、修改应用程序。
总述详见程序设计导引【总述】