计算机科学和Python编程导论(一) 计算机相关理论

基本概念

1. 计算机基础知识

陈述性知识:关于事实的描述。如果满足y × y = x,那么x的平方根就是数值y。

程序性知识:说明“如何做”,描述的是信息演绎的过程。

算法:是一个有穷指令序列,它在给定的输入集合中执行时,会按照一系列定义明确的状态进行,并最终产生一个输出结果。

解释器:可以执行任意合法指令集的程序(这样计算机就能够计算任何可以使用基本指令集描述的问题。)

计算机的功能:执行计算与保存计算结果,操作的程序和数据都存储在内存中。通常都有一个程序计数器指向内存中的特定位置,通过执行这个位置上的指令,计算过程得以开始。

控制流:解释器执行一个测试,然后根据测试结果可能跳到指令序列的其他位置继续执行。

通用图灵机:这种机器具有无限的存储容量,即一条无限长的纸带。可以在纸带上面写入0和1,以及一些非常简单的初始指令,从而对纸带进行移动、读出和写入等操作。

邱奇-图灵论题:如果一个函数是可计算的,那么一定可以通过对图灵机进行编程实现这种计算。邱奇-图灵论题中的“如果”非常重要,并非所有问题都可以通过计算求解。

停机问题:不存在这样一个程序:对于给定的任意程序P,当且仅当P永远运行时输出true。

图灵完备:邱奇-图灵论题可以直接推导出图灵完备性这个概念。如果一门编程语言可以模拟通用图灵机,才可以说它是图灵完备的。

编程基本思想的核心:简单来说,就是组装操作序列的过程

2. 编程语言的组成

基本结构:Python语言中的基本结构包括字面量(例如,数值3.2和字符串’abc’)和中缀操作符(例如,+和/)。

语法:语言中的语法定义了字符和符号组成句子的正确形式。如,在Python中,3.2 + 3.2这样的基本结构序列在语法上是良好的,但3.2 3.2这个序列则不是。(语法错误是最常见的错误,但因为更容易检查出来它的危害性却最小)

静态语义:定义了哪些语法有效的句子是有意义的。在Python中,序列3.2/’abc’在语法上没有问题(<字面量><操作符><字面量>),但会产生一个静态语义错误,因为数值除以字符串是没有意义的。(Python在运行程序时确实会做相当数量的静态语义检查,但不会捕获所有静态语义错误。)

语义:为每个语法正确又没有静态语义错误的句子关联一个含义。在自然语言中,句子的语义可以是模棱两可的。例如,句子I cannot praise this student too highly可以是一种恭维,也可以是一种批评。(当程序可以执行,但结果未必如程序员所愿时,这样不可知的错误往往最致命。)

猜你喜欢

转载自blog.csdn.net/datawhale/article/details/81067495