CS107编程范式-学习笔记-1

一直听说CS107编程范式是非常好的课程,GAN发明者都力推的一门课,所以准备抽空把它学完。

第一讲

C语言代表了过程范式/命令式范式,面向动态过程的,经典的代表是函数调用(function  call),对于内存操作更好。

C++调用dothis函数时,将某个对象作为参数进行传入,myobject->dothis,首先看到的是对象。

高级语言代码在执行过程中,都会被编译为汇编代码,然后再转化为机器语言,也就是01序列。

C和C++代表了两种不同范式,也就是常说的面向过程和面向对象。

**&**p->*** = 7。我晕了。

基本来说,并发编程并不是流水线一般一下运行完毕,而是像右边这样子,在两个函数或者进程间进行来回切换,逐步运行的,但是频率非常高,几乎感受不到。

CS107编程范式-学习笔记-1

然而并发编程也带来一个问题,进程安全,试想一个账户有100元,你和你朋友从两台ATM中同时对它进行提取100元,那你们能得到200元吗?肯定是不能的,账户应该被具有原子特性的事物保护着,确保一次操作只能有一台ATM进行,并且存取要么不执行,要么都执行,而其他用户操作都是不被允许的。

看到这里想到了操作系统中的PV算法,也是为了保证进程安全,对临界区进行访问控制。

通过引用的方式将原始数据结构传入函数,函数执行完成后,原始数据结构也会发生变化,这是利用函数的副作用编程

使用scheme进行函数式编程范式进行编程,不会有任何副作用。