• 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

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




  • 相关阅读:
    jbpm 为任务自由选择办理人
    我永远的 dell 15r
    select radio readonly
    面向对象的5条基本设计原则
    Java数据库缓存思路
    作为java应届生,面试求职那点事
    项目开发中数据字典设计实现缓存
    oracle 优化 —— 分区表
    myeclipse快捷键
    win8 安装myeclipse 失败 MyEclipse ForSpring 安装失败
  • 原文地址:https://www.cnblogs.com/jubincn/p/3381137.html
Copyright © 2020-2023  润新知