大成科技--从状态机说起

导言

状态空间与状态的转换

有状态,有状态转换的机制,就有了生生不息的存在。

历史,现在,未来

有了状态,就有了现在,就有了记忆,有了转换方法,就有了未来,那么历史在哪里?

最简单的状态机--触发器

从并行到串行--时序逻辑电路

时序逻辑电路,数字电路的模块化有了物理基础,数学基础。

状态机与模块化

状态机模块化,才能在组成更复杂的状态机时,简化、优化设计,保证设计、实现的正确性。

状态机与图灵完备

状态机之内存与CPU

CPU,内存与中断处理

CPU与外设是并行还是串行?

状态机与输入输出

状态机之程序语言

语言的发展--新的抽象,提供新的通用的受限方法

图灵完备怎么支持生成更高的抽象?

汇编语言也是不区分代码与数据的吗?

数据与指令的绑定

-----数据结构与算法

数字电路,汇编指令,表达式,函数,类,线程,进程,操作系统

lambda表达式,函数为第一类型,闭包,协程,

jvm(java虚拟机),python虚拟机,lua虚拟机,kvm(linux内核虚拟机),docker

设计目标与实现

自顶向下的设计,关注点是状态,是目标,实现是为目标服务的。

自底向上的设计,关注点是现实,是进步,是细节,成果是依赖基础的。

c系列的语言,是自底向上实现的,是步步高

lisp系列的语言,是自顶向下实现的,是重构

那么两者的交汇处是哪个语言呢,lua,python ?? haskell,clojure ??

语言实现时的特性选择

为什么C++这么复杂? --不为没用到的特性付出代价

C++,java中的lambda表达式的实现有什么异同?

协程可以分到不现的线程,进程中吗?

动态语言一定是弱类型语言吗?

解释型语言是边解释边执行吗?

状态机与内存管理

引用计数与垃圾收集