大成科技--从状态机说起
导言
状态空间与状态的转换
有状态,有状态转换的机制,就有了生生不息的存在。
历史,现在,未来
有了状态,就有了现在,就有了记忆,有了转换方法,就有了未来,那么历史在哪里?
最简单的状态机--触发器
从并行到串行--时序逻辑电路
时序逻辑电路,数字电路的模块化有了物理基础,数学基础。
状态机与模块化
状态机模块化,才能在组成更复杂的状态机时,简化、优化设计,保证设计、实现的正确性。
状态机与图灵完备
状态机之内存与CPU
CPU,内存与中断处理
CPU与外设是并行还是串行?
状态机与输入输出
状态机之程序语言
语言的发展--新的抽象,提供新的通用的受限方法
图灵完备怎么支持生成更高的抽象?
汇编语言也是不区分代码与数据的吗?
数据与指令的绑定
-----数据结构与算法
数字电路,汇编指令,表达式,函数,类,线程,进程,操作系统
lambda表达式,函数为第一类型,闭包,协程,
jvm(java虚拟机),python虚拟机,lua虚拟机,kvm(linux内核虚拟机),docker
设计目标与实现
自顶向下的设计,关注点是状态,是目标,实现是为目标服务的。
自底向上的设计,关注点是现实,是进步,是细节,成果是依赖基础的。
c系列的语言,是自底向上实现的,是步步高
lisp系列的语言,是自顶向下实现的,是重构
那么两者的交汇处是哪个语言呢,lua,python ?? haskell,clojure ??
语言实现时的特性选择
为什么C++这么复杂? --不为没用到的特性付出代价
C++,java中的lambda表达式的实现有什么异同?
协程可以分到不现的线程,进程中吗?
动态语言一定是弱类型语言吗?
解释型语言是边解释边执行吗?
状态机与内存管理
引用计数与垃圾收集