zoukankan      html  css  js  c++  java
  • 6.00 Introduction to Computer Science and Programming lec1

    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

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




  • 相关阅读:
    关于Python解释器
    进程和线程
    Python
    高等数学
    关于Bulk加载模式
    使用Update Strategy组件无法进行delete操作
    3.15 晚会—「饿了么」之殇
    JavaScript 踩坑心得— 为了高速(下)
    JavaScript 踩坑心得— 为了高速(上)
    从零开始运维之旅:如何监控你的 Windows?
  • 原文地址:https://www.cnblogs.com/jubincn/p/3381137.html
Copyright © 2011-2022 走看看