1 计算机能为我们做什么事情?
计算机可以为我们做两件事情:计算和存储结果
2 算法和程序之间的区别:算法是一个概念,程序是算法的具体实现。但是算法不一定会提高程序的运行速度,程序的运行速度由CPU决定。
3 计算机科学不会研究如何建立高效的程序运行机器,而致力于研究高效的算法
4 计算机思维:将一切看做是一个涉及到数字和公式的数学问题
5 什么是计算?先从理解什么是知识开始。知识分为两种:陈述性知识和程序性知识。陈述性知识给了我们事实,但并不能通过它寻找新信息。程序性知识,又称为操作方法,给了我们找到新信息的方法。算法可以被看做程序性知识,即解决一种问题的方法
6 不能把推算平方根的方法写成真正的计算机程序是因为计算机不能猜出 y 的初始值。(此处存疑)
7 计算机的原语
图灵提到,计算机内部只要6种原语就可以计算任何东西
8 语法、静态语义和形式语义
语法:判定一个字串是否合法。如英语中的"cat dog boy"不合语法,因为它的构成并不符合句子的形式
静态语义:判定一个字串是否有意义。它告诉我们在语法有效的字符串中,哪些是有含义的。如英语中的"I are big"包含一个名词,一个不及物动词和另一个名词,所以是合乎语法的。但它并不是一个有效的英语,因为"I"是单数的,"are"是复数。再如编程中的<字符串\数字\其他><操作><字符串\数字\其他>是合乎语法的,但是2.3/‘abc’是不对的,合乎语法但违反静态语义。
形式语义或全语义:赋予一个合法的语句意义。它告诉我们一个符合语法和静态语义的语句是什么意思。在英语这种自然语言中,一个语句可能有歧义。在编程语言中,虽然一个语句只有一种意义,但这种意义可能不是程序员想要表达的意义。