现在的位置: 首页 > 综合 > 正文

6.00 Introduction to Computer Science and Programming lec1

2012年12月19日 ⁄ 综合 ⁄ 共 884字 ⁄ 字号 评论关闭

6.00 是MIT CS的入门课程,面向没有多少编程基础的人。从前学过一次,现在再学一遍,主要是为了学习Python。

第一课主要介绍计算机的一些基础知识,内容虽浅但逻辑清晰,涵盖了很多重要的问题。

1. Declarative Knowledge vs Imperative Knowledge

Declarative风格:首先声明一些规则,类似于启发式程序,这个可以从Lisp - AI上找到此程序风格的分支,90年代曾经红极一时,当初日本成为AI的中心,雄伟的五代机计划似乎要将美帝踩到脚下。随Google等公司大量使用函数式编程风格解决并行计算并投入巨大资源研究AI,相信我们未来能从Declarative风格中挖掘出更多宝藏。

Imperative风格:发出一系列指令,这个目前应用最广。Shell、C、Java等都是这个风格。由于其可控,因此其主导地位在这个时代是不可动摇的。

2. Stored Program Computer

简单说,就是指令和数据掺在一起的体系结构。(Treat instructions and data as the same thing)

过去曾有过指令流和数据流分开的机器,但目前几乎所有的机器都是Stored Program Computer. 将两者混合的好处我记不清了,我自己能想到的是降低控制难度,提升速度和使递归成为体系结构的一个特色。课程上讲这种方式更为灵活,可以处理用户自定义的程序,看来我没有想到点子上。

\

3. Syntax, Static Semantics, Semantics

了解过编译原理的人可能很容易分清Syntax和Semantics,可Static Semantics是什么可能就需要学过那们课程才知道。

Syntax: 语法,例如:指令可以操作数据,因此1/'a'在语法上是对的,1和'a'都是数据,可以被/处理

Static Semantic: 那段字符串具有语义,例如1/'a'就不能通过static Semantic检查,因为这是没有语义的。

Semantic: 语义

4. Compiled vs Interpreted

自然这个是少不了的,这个话题可大可小,这里就不多说了。

抱歉!评论已关闭.