由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 只有状态自动机(state machine)是正确的编程模型
相关主题
[bssd]计算机科学的自然律ARM计算机时代即将到来 (转载)
常规应用多核有什么优势?谈谈想学好底层必不可少的东西
这个版上的主要矛盾FP怎么和OOP比较上了?
老魏的套路需要能scale才行机械硬盘的物理极限
【求教】投票机编写的简单方法大规模多核并发的系统PK大规模多机并发的系统
关于regular expressionCompiler
问个flex的问题并联100只猩猩, 能不能过图灵测试? (转载)
温州动车事故启示:重启动(初始化)程序难搞啊!再说说react & angular 2
相关话题的讨论汇总
话题: ntm话题: 自动机话题: 多线程话题: 图灵机话题: 计算机
进入Programming版参与讨论
1 (共1页)
T********i
发帖数: 2416
1
本文的目的在于帮助程序员树立正确的世界观和人生观。如果感觉颠覆感太强烈,主要
原因也不是你学错了,而是你的老师教错了,或者你的教科书写错了。
1. 确定图灵机和不确定图灵机,
根据计算机科学理论,图灵机(Turing Machine)是计算机的抽象模型。现有的计算机
的计算能力(不是速度,而是理论上能够求解数学问题的能力)不会超过这个模型。
确定图灵机(DTM)是图灵机的一个经典描述,是一个单线程的图灵机。
不确定图灵机(NTM)可以看作是一台有无穷多单线程的图灵机组合的图灵机。也就是
有无限并行能力的图灵机。
可计算性理论可以证明,NTM和DTM是等价的。也就是说DTM可以完全模拟NTM。NTM能够
计算的题目,DTM也必然能够计算,虽然可能速度上比NTM慢很多倍。
2. 冯.诺依曼(Von Neumann)计算机体系就是DTM
现在的计算机都是冯.诺依曼体系。即使多核计算机,本质上也就是有限个DTM组合。和
NTM相距甚远。注意NTM是有无限个核心的无穷并行的计算机。
3. 什么是NTM?量子计算机才是
有一种理论认为量子计算机利用平行宇宙进行超大规模并行计算,也不管那个宇宙愿意
不愿意?无论如何,现在貌似还没有真正实用的量子计算机。
4. 线程模型,单核多核,以及单线程多线程,同步
现有的冯.诺依曼体系,线程只是一个编程模型。多线程可以在单核心上实现,也可以
在多核心上实现。
因为多线程访问同一个数据的时候存在时序冲突,才有同步问题。
注意,NTM作为一个图灵机的模型,没有同步问题。NTM的内存和计算单元都是无限多,
程序的每一个分支都可以在一个新的计算单元(CPU核)上运行。
5. 为什么说状态自动机(state machine)才是正确的编程模型?
第一, 因为我们的现有的计算机体系本质就是状态自动机。而且是单核单线程的状
态自动机。多核以及多机系统只不过是简单拼凑而已。
第二, 事件回调(event callback)归根结底依赖于硬件中断(interrupt)。即
使是硬件中断最终也是依赖于高速状态轮询(polling)。
第三, 理论可以证明,在每个单核心上运行一个设计良好的单线程状态自动机,效
率一定超过任何实用更多线程的实现。
第四, 很多人认为状态自动机比多线程实现麻烦。其实多线程的同步问题也不简单
。虽然事实上,我认为任何人搞不定状态机或者多线程同步的,都不配写程序;但是现
实中这就意味着大多数程序员都不配。
6. 现有的framework,从node.js到vert.x,都是试图解决这个问题
这些framework解决思路隐藏线程和状态自动机。让用户自定义状态响应函数而已。他
们试图解决的只不过是I/O的问题,而且更具体是Network I/O的问题。这些framework
确实在一定程度上解决了一些问题。但是同时带来了一系列其他的问题。
7. 推论,只有基于message的系统设计是正确的设计
道理很简单。基于message的系统是最自然能够映射成状态自动机的。反之就是RPC之类
的就离不开blocking call和多线程了。
8. 多线程和状态自动机不矛盾
多线程必然要有,否则多核系统就不会被充分利用了。但是多核多线程系统也要尽量做
成状态自动机。因为这样线程同步就会尽量简化。而且系统效率会提高。
这就是为什么近年来所谓异步I/O和消息传递系统越来越火的原因。
一般一个多线程系统,肯定是线程数量越接近CPU核心数量的设计越合理。
现实中,基本上任何系统的线程模型都离最优化甚远。根本不是差一点点,而是设计很
糟糕。包括那些在一个几十K内存的MCU上运行的系统在内。错误都是滥用线程和call
back。
是的,在那些几十K内存的MCU上运行的也都是多线程操作系统。
9. 自觉向状态自动机的设计靠拢,是一种习惯,是一种人生观和世界观
现在大多数程序员还没意识到这一点。其实是三观不正。计算机工程的世界,任重而道
远。
h**********c
发帖数: 4120
2
WATT NTM X cartesian trasintion functions = DTM
is this robot engineering?
w***g
发帖数: 5958
3
窃以为量子计算机也没法实现NTM,物理世界肯定有某些限制导致这个
不能实现。否则在量子计算机上P和NP就没有区别了。
NP不管以任何方式变成可有效计算的话都是too good to be true。

【在 T********i 的大作中提到】
: 本文的目的在于帮助程序员树立正确的世界观和人生观。如果感觉颠覆感太强烈,主要
: 原因也不是你学错了,而是你的老师教错了,或者你的教科书写错了。
: 1. 确定图灵机和不确定图灵机,
: 根据计算机科学理论,图灵机(Turing Machine)是计算机的抽象模型。现有的计算机
: 的计算能力(不是速度,而是理论上能够求解数学问题的能力)不会超过这个模型。
: 确定图灵机(DTM)是图灵机的一个经典描述,是一个单线程的图灵机。
: 不确定图灵机(NTM)可以看作是一台有无穷多单线程的图灵机组合的图灵机。也就是
: 有无限并行能力的图灵机。
: 可计算性理论可以证明,NTM和DTM是等价的。也就是说DTM可以完全模拟NTM。NTM能够
: 计算的题目,DTM也必然能够计算,虽然可能速度上比NTM慢很多倍。

T********i
发帖数: 2416
4
有人指出了现在的量子计算机能计算一类问题BQP。但是还不能证明BQP===NP。
我个人认为量子计算机理论将来也有可能继续发展。不论如何,量子计算机是更加接近
NTM的。
微信群里面有一个搞数学的号称他的一个朋友找到了NPC的平均复杂度===P的算法。但
是他朋友精神病疯了。他仔细研究朋友手稿看不出毛病。但是又不能代替朋友发表。呵
呵呵。
不管信仰,现实是,NP是不是等于P?谁也不能证明,谁也不能证伪。
我讨论的主要是现在的硬件架构。在这种架构下,如果任何软件的设计不是基于状态机
的,那根本就是设计错误。越靠近状态机的越是好的架构。

【在 w***g 的大作中提到】
: 窃以为量子计算机也没法实现NTM,物理世界肯定有某些限制导致这个
: 不能实现。否则在量子计算机上P和NP就没有区别了。
: NP不管以任何方式变成可有效计算的话都是too good to be true。

l******t
发帖数: 55733
5
这个朋友手里的手稿好像那张祖传花旗银行1945年一亿美金本票啊

【在 T********i 的大作中提到】
: 有人指出了现在的量子计算机能计算一类问题BQP。但是还不能证明BQP===NP。
: 我个人认为量子计算机理论将来也有可能继续发展。不论如何,量子计算机是更加接近
: NTM的。
: 微信群里面有一个搞数学的号称他的一个朋友找到了NPC的平均复杂度===P的算法。但
: 是他朋友精神病疯了。他仔细研究朋友手稿看不出毛病。但是又不能代替朋友发表。呵
: 呵呵。
: 不管信仰,现实是,NP是不是等于P?谁也不能证明,谁也不能证伪。
: 我讨论的主要是现在的硬件架构。在这种架构下,如果任何软件的设计不是基于状态机
: 的,那根本就是设计错误。越靠近状态机的越是好的架构。

f******2
发帖数: 2455
6
老魏是有情怀的从业人员。
思考的高度在这里

【在 T********i 的大作中提到】
: 本文的目的在于帮助程序员树立正确的世界观和人生观。如果感觉颠覆感太强烈,主要
: 原因也不是你学错了,而是你的老师教错了,或者你的教科书写错了。
: 1. 确定图灵机和不确定图灵机,
: 根据计算机科学理论,图灵机(Turing Machine)是计算机的抽象模型。现有的计算机
: 的计算能力(不是速度,而是理论上能够求解数学问题的能力)不会超过这个模型。
: 确定图灵机(DTM)是图灵机的一个经典描述,是一个单线程的图灵机。
: 不确定图灵机(NTM)可以看作是一台有无穷多单线程的图灵机组合的图灵机。也就是
: 有无限并行能力的图灵机。
: 可计算性理论可以证明,NTM和DTM是等价的。也就是说DTM可以完全模拟NTM。NTM能够
: 计算的题目,DTM也必然能够计算,虽然可能速度上比NTM慢很多倍。

p**p
发帖数: 121
7
分布系统全是基于state machine的。
那个通信系统的软件设计也是,但是很多人都hate。魏老师怎么看
T********i
发帖数: 2416
8
通信系统本来就有这个传统。单核单线程死循环。
分布式系统鱼龙混杂。就不好说了。
很多人hate可能也有一部分实现的原因。但是我想说一句话绝对不会错:要是一个人连
这个系统的状态机都分析不明白,都实现不了,这个人就别干了,直接吃屎去算了。
我发现很多成天把并发挂在嘴边的,反倒是对软件和硬件体系结构毫无概念的。
物理学家的世界是量子的。码工的世界不但应该是量子的,还应该是单线程的。
a****u
发帖数: 1537
9
01才是终极解,谁不同意我就和谁急,然后用机关枪突突突他们。
T********i
发帖数: 2416
10
你这个观点没人不同意,挖坑都没人看,句号。

【在 a****u 的大作中提到】
: 01才是终极解,谁不同意我就和谁急,然后用机关枪突突突他们。
相关主题
关于regular expressionARM计算机时代即将到来 (转载)
问个flex的问题谈谈想学好底层必不可少的东西
温州动车事故启示:重启动(初始化)程序难搞啊!FP怎么和OOP比较上了?
进入Programming版参与讨论
s******3
发帖数: 344
11
re

【在 T********i 的大作中提到】
: 本文的目的在于帮助程序员树立正确的世界观和人生观。如果感觉颠覆感太强烈,主要
: 原因也不是你学错了,而是你的老师教错了,或者你的教科书写错了。
: 1. 确定图灵机和不确定图灵机,
: 根据计算机科学理论,图灵机(Turing Machine)是计算机的抽象模型。现有的计算机
: 的计算能力(不是速度,而是理论上能够求解数学问题的能力)不会超过这个模型。
: 确定图灵机(DTM)是图灵机的一个经典描述,是一个单线程的图灵机。
: 不确定图灵机(NTM)可以看作是一台有无穷多单线程的图灵机组合的图灵机。也就是
: 有无限并行能力的图灵机。
: 可计算性理论可以证明,NTM和DTM是等价的。也就是说DTM可以完全模拟NTM。NTM能够
: 计算的题目,DTM也必然能够计算,虽然可能速度上比NTM慢很多倍。

a****u
发帖数: 1537
12
有限状态机也没好到哪里去。

【在 T********i 的大作中提到】
: 你这个观点没人不同意,挖坑都没人看,句号。
m***i
发帖数: 2480
13
观点比较奇怪。开发效率在大多数时候是最重要的,因为人力的成本最高。雇一个人的
花费远比多用两台机器的花费大。
线程,promise大多时候比自动机直观,开发快,开发成本低。这就是为啥 node 火。一
门语言前
端后端通吃。发展的潮流是用机器解放人,简单的开发模型简化程序员的工作。
至于所谓最底层底是什么模型不相干,现在都是多层系统,你开发出来的东西只要和最
近一层match就对了。OS多数不是进程和线程的模型吗,哪个是自动机的接口。
自动机是你那 microcontroller上面没办法才用的。

【在 T********i 的大作中提到】
: 本文的目的在于帮助程序员树立正确的世界观和人生观。如果感觉颠覆感太强烈,主要
: 原因也不是你学错了,而是你的老师教错了,或者你的教科书写错了。
: 1. 确定图灵机和不确定图灵机,
: 根据计算机科学理论,图灵机(Turing Machine)是计算机的抽象模型。现有的计算机
: 的计算能力(不是速度,而是理论上能够求解数学问题的能力)不会超过这个模型。
: 确定图灵机(DTM)是图灵机的一个经典描述,是一个单线程的图灵机。
: 不确定图灵机(NTM)可以看作是一台有无穷多单线程的图灵机组合的图灵机。也就是
: 有无限并行能力的图灵机。
: 可计算性理论可以证明,NTM和DTM是等价的。也就是说DTM可以完全模拟NTM。NTM能够
: 计算的题目,DTM也必然能够计算,虽然可能速度上比NTM慢很多倍。

T********i
发帖数: 2416
14
线程,promise大多时候比自动机直观?
这个版面上有几个会写线程的?你说的node,promise之类的,恰恰就是状态自动机。
人家状态给你定好的,让你写下状态响应函数而已。都是单线程的。而且,这些实现都
是单线程的。

观点比较奇怪。开发效率在大多数时候是最重要的,因为人力的成本最高。雇一个人的

【在 m***i 的大作中提到】
: 观点比较奇怪。开发效率在大多数时候是最重要的,因为人力的成本最高。雇一个人的
: 花费远比多用两台机器的花费大。
: 线程,promise大多时候比自动机直观,开发快,开发成本低。这就是为啥 node 火。一
: 门语言前
: 端后端通吃。发展的潮流是用机器解放人,简单的开发模型简化程序员的工作。
: 至于所谓最底层底是什么模型不相干,现在都是多层系统,你开发出来的东西只要和最
: 近一层match就对了。OS多数不是进程和线程的模型吗,哪个是自动机的接口。
: 自动机是你那 microcontroller上面没办法才用的。

T********i
发帖数: 2416
15
本文的目的在于帮助程序员树立正确的世界观和人生观。如果感觉颠覆感太强烈,主要
原因也不是你学错了,而是你的老师教错了,或者你的教科书写错了。
1. 确定图灵机和不确定图灵机,
根据计算机科学理论,图灵机(Turing Machine)是计算机的抽象模型。现有的计算机
的计算能力(不是速度,而是理论上能够求解数学问题的能力)不会超过这个模型。
确定图灵机(DTM)是图灵机的一个经典描述,是一个单线程的图灵机。
不确定图灵机(NTM)可以看作是一台有无穷多单线程的图灵机组合的图灵机。也就是
有无限并行能力的图灵机。
可计算性理论可以证明,NTM和DTM是等价的。也就是说DTM可以完全模拟NTM。NTM能够
计算的题目,DTM也必然能够计算,虽然可能速度上比NTM慢很多倍。
2. 冯.诺依曼(Von Neumann)计算机体系就是DTM
现在的计算机都是冯.诺依曼体系。即使多核计算机,本质上也就是有限个DTM组合。和
NTM相距甚远。注意NTM是有无限个核心的无穷并行的计算机。
3. 什么是NTM?量子计算机才是
有一种理论认为量子计算机利用平行宇宙进行超大规模并行计算,也不管那个宇宙愿意
不愿意?无论如何,现在貌似还没有真正实用的量子计算机。
4. 线程模型,单核多核,以及单线程多线程,同步
现有的冯.诺依曼体系,线程只是一个编程模型。多线程可以在单核心上实现,也可以
在多核心上实现。
因为多线程访问同一个数据的时候存在时序冲突,才有同步问题。
注意,NTM作为一个图灵机的模型,没有同步问题。NTM的内存和计算单元都是无限多,
程序的每一个分支都可以在一个新的计算单元(CPU核)上运行。
5. 为什么说状态自动机(state machine)才是正确的编程模型?
第一, 因为我们的现有的计算机体系本质就是状态自动机。而且是单核单线程的状
态自动机。多核以及多机系统只不过是简单拼凑而已。
第二, 事件回调(event callback)归根结底依赖于硬件中断(interrupt)。即
使是硬件中断最终也是依赖于高速状态轮询(polling)。
第三, 理论可以证明,在每个单核心上运行一个设计良好的单线程状态自动机,效
率一定超过任何实用更多线程的实现。
第四, 很多人认为状态自动机比多线程实现麻烦。其实多线程的同步问题也不简单
。虽然事实上,我认为任何人搞不定状态机或者多线程同步的,都不配写程序;但是现
实中这就意味着大多数程序员都不配。
6. 现有的framework,从node.js到vert.x,都是试图解决这个问题
这些framework解决思路隐藏线程和状态自动机。让用户自定义状态响应函数而已。他
们试图解决的只不过是I/O的问题,而且更具体是Network I/O的问题。这些framework
确实在一定程度上解决了一些问题。但是同时带来了一系列其他的问题。
7. 推论,只有基于message的系统设计是正确的设计
道理很简单。基于message的系统是最自然能够映射成状态自动机的。反之就是RPC之类
的就离不开blocking call和多线程了。
8. 多线程和状态自动机不矛盾
多线程必然要有,否则多核系统就不会被充分利用了。但是多核多线程系统也要尽量做
成状态自动机。因为这样线程同步就会尽量简化。而且系统效率会提高。
这就是为什么近年来所谓异步I/O和消息传递系统越来越火的原因。
一般一个多线程系统,肯定是线程数量越接近CPU核心数量的设计越合理。
现实中,基本上任何系统的线程模型都离最优化甚远。根本不是差一点点,而是设计很
糟糕。包括那些在一个几十K内存的MCU上运行的系统在内。错误都是滥用线程和call
back。
是的,在那些几十K内存的MCU上运行的也都是多线程操作系统。
9. 自觉向状态自动机的设计靠拢,是一种习惯,是一种人生观和世界观
现在大多数程序员还没意识到这一点。其实是三观不正。计算机工程的世界,任重而道
远。
h**********c
发帖数: 4120
16
WATT NTM X cartesian trasintion functions = DTM
is this robot engineering?
w***g
发帖数: 5958
17
窃以为量子计算机也没法实现NTM,物理世界肯定有某些限制导致这个
不能实现。否则在量子计算机上P和NP就没有区别了。
NP不管以任何方式变成可有效计算的话都是too good to be true。

【在 T********i 的大作中提到】
: 本文的目的在于帮助程序员树立正确的世界观和人生观。如果感觉颠覆感太强烈,主要
: 原因也不是你学错了,而是你的老师教错了,或者你的教科书写错了。
: 1. 确定图灵机和不确定图灵机,
: 根据计算机科学理论,图灵机(Turing Machine)是计算机的抽象模型。现有的计算机
: 的计算能力(不是速度,而是理论上能够求解数学问题的能力)不会超过这个模型。
: 确定图灵机(DTM)是图灵机的一个经典描述,是一个单线程的图灵机。
: 不确定图灵机(NTM)可以看作是一台有无穷多单线程的图灵机组合的图灵机。也就是
: 有无限并行能力的图灵机。
: 可计算性理论可以证明,NTM和DTM是等价的。也就是说DTM可以完全模拟NTM。NTM能够
: 计算的题目,DTM也必然能够计算,虽然可能速度上比NTM慢很多倍。

T********i
发帖数: 2416
18
有人指出了现在的量子计算机能计算一类问题BQP。但是还不能证明BQP===NP。
我个人认为量子计算机理论将来也有可能继续发展。不论如何,量子计算机是更加接近
NTM的。
微信群里面有一个搞数学的号称他的一个朋友找到了NPC的平均复杂度===P的算法。但
是他朋友精神病疯了。他仔细研究朋友手稿看不出毛病。但是又不能代替朋友发表。呵
呵呵。
不管信仰,现实是,NP是不是等于P?谁也不能证明,谁也不能证伪。
我讨论的主要是现在的硬件架构。在这种架构下,如果任何软件的设计不是基于状态机
的,那根本就是设计错误。越靠近状态机的越是好的架构。

【在 w***g 的大作中提到】
: 窃以为量子计算机也没法实现NTM,物理世界肯定有某些限制导致这个
: 不能实现。否则在量子计算机上P和NP就没有区别了。
: NP不管以任何方式变成可有效计算的话都是too good to be true。

l******t
发帖数: 55733
19
这个朋友手里的手稿好像那张祖传花旗银行1945年一亿美金本票啊

【在 T********i 的大作中提到】
: 有人指出了现在的量子计算机能计算一类问题BQP。但是还不能证明BQP===NP。
: 我个人认为量子计算机理论将来也有可能继续发展。不论如何,量子计算机是更加接近
: NTM的。
: 微信群里面有一个搞数学的号称他的一个朋友找到了NPC的平均复杂度===P的算法。但
: 是他朋友精神病疯了。他仔细研究朋友手稿看不出毛病。但是又不能代替朋友发表。呵
: 呵呵。
: 不管信仰,现实是,NP是不是等于P?谁也不能证明,谁也不能证伪。
: 我讨论的主要是现在的硬件架构。在这种架构下,如果任何软件的设计不是基于状态机
: 的,那根本就是设计错误。越靠近状态机的越是好的架构。

f******2
发帖数: 2455
20
老魏是有情怀的从业人员。
思考的高度在这里

【在 T********i 的大作中提到】
: 本文的目的在于帮助程序员树立正确的世界观和人生观。如果感觉颠覆感太强烈,主要
: 原因也不是你学错了,而是你的老师教错了,或者你的教科书写错了。
: 1. 确定图灵机和不确定图灵机,
: 根据计算机科学理论,图灵机(Turing Machine)是计算机的抽象模型。现有的计算机
: 的计算能力(不是速度,而是理论上能够求解数学问题的能力)不会超过这个模型。
: 确定图灵机(DTM)是图灵机的一个经典描述,是一个单线程的图灵机。
: 不确定图灵机(NTM)可以看作是一台有无穷多单线程的图灵机组合的图灵机。也就是
: 有无限并行能力的图灵机。
: 可计算性理论可以证明,NTM和DTM是等价的。也就是说DTM可以完全模拟NTM。NTM能够
: 计算的题目,DTM也必然能够计算,虽然可能速度上比NTM慢很多倍。

相关主题
机械硬盘的物理极限并联100只猩猩, 能不能过图灵测试? (转载)
大规模多核并发的系统PK大规模多机并发的系统再说说react & angular 2
Compiler1 .中国往事
进入Programming版参与讨论
p**p
发帖数: 121
21
分布系统全是基于state machine的。
那个通信系统的软件设计也是,但是很多人都hate。魏老师怎么看
T********i
发帖数: 2416
22
通信系统本来就有这个传统。单核单线程死循环。
分布式系统鱼龙混杂。就不好说了。
很多人hate可能也有一部分实现的原因。但是我想说一句话绝对不会错:要是一个人连
这个系统的状态机都分析不明白,都实现不了,这个人就别干了,直接吃屎去算了。
我发现很多成天把并发挂在嘴边的,反倒是对软件和硬件体系结构毫无概念的。
物理学家的世界是量子的。码工的世界不但应该是量子的,还应该是单线程的。
a****u
发帖数: 1537
23
01才是终极解,谁不同意我就和谁急,然后用机关枪突突突他们。
T********i
发帖数: 2416
24
你这个观点没人不同意,挖坑都没人看,句号。

【在 a****u 的大作中提到】
: 01才是终极解,谁不同意我就和谁急,然后用机关枪突突突他们。
s******3
发帖数: 344
25
re

【在 T********i 的大作中提到】
: 本文的目的在于帮助程序员树立正确的世界观和人生观。如果感觉颠覆感太强烈,主要
: 原因也不是你学错了,而是你的老师教错了,或者你的教科书写错了。
: 1. 确定图灵机和不确定图灵机,
: 根据计算机科学理论,图灵机(Turing Machine)是计算机的抽象模型。现有的计算机
: 的计算能力(不是速度,而是理论上能够求解数学问题的能力)不会超过这个模型。
: 确定图灵机(DTM)是图灵机的一个经典描述,是一个单线程的图灵机。
: 不确定图灵机(NTM)可以看作是一台有无穷多单线程的图灵机组合的图灵机。也就是
: 有无限并行能力的图灵机。
: 可计算性理论可以证明,NTM和DTM是等价的。也就是说DTM可以完全模拟NTM。NTM能够
: 计算的题目,DTM也必然能够计算,虽然可能速度上比NTM慢很多倍。

a****u
发帖数: 1537
26
有限状态机也没好到哪里去。

【在 T********i 的大作中提到】
: 你这个观点没人不同意,挖坑都没人看,句号。
m***i
发帖数: 2480
27
观点比较奇怪。开发效率在大多数时候是最重要的,因为人力的成本最高。雇一个人的
花费远比多用两台机器的花费大。
线程,promise大多时候比自动机直观,开发快,开发成本低。这就是为啥 node 火。一
门语言前
端后端通吃。发展的潮流是用机器解放人,简单的开发模型简化程序员的工作。
至于所谓最底层底是什么模型不相干,现在都是多层系统,你开发出来的东西只要和最
近一层match就对了。OS多数不是进程和线程的模型吗,哪个是自动机的接口。
自动机是你那 microcontroller上面没办法才用的。

【在 T********i 的大作中提到】
: 本文的目的在于帮助程序员树立正确的世界观和人生观。如果感觉颠覆感太强烈,主要
: 原因也不是你学错了,而是你的老师教错了,或者你的教科书写错了。
: 1. 确定图灵机和不确定图灵机,
: 根据计算机科学理论,图灵机(Turing Machine)是计算机的抽象模型。现有的计算机
: 的计算能力(不是速度,而是理论上能够求解数学问题的能力)不会超过这个模型。
: 确定图灵机(DTM)是图灵机的一个经典描述,是一个单线程的图灵机。
: 不确定图灵机(NTM)可以看作是一台有无穷多单线程的图灵机组合的图灵机。也就是
: 有无限并行能力的图灵机。
: 可计算性理论可以证明,NTM和DTM是等价的。也就是说DTM可以完全模拟NTM。NTM能够
: 计算的题目,DTM也必然能够计算,虽然可能速度上比NTM慢很多倍。

T********i
发帖数: 2416
28
线程,promise大多时候比自动机直观?
这个版面上有几个会写线程的?你说的node,promise之类的,恰恰就是状态自动机。
人家状态给你定好的,让你写下状态响应函数而已。都是单线程的。而且,这些实现都
是单线程的。

观点比较奇怪。开发效率在大多数时候是最重要的,因为人力的成本最高。雇一个人的

【在 m***i 的大作中提到】
: 观点比较奇怪。开发效率在大多数时候是最重要的,因为人力的成本最高。雇一个人的
: 花费远比多用两台机器的花费大。
: 线程,promise大多时候比自动机直观,开发快,开发成本低。这就是为啥 node 火。一
: 门语言前
: 端后端通吃。发展的潮流是用机器解放人,简单的开发模型简化程序员的工作。
: 至于所谓最底层底是什么模型不相干,现在都是多层系统,你开发出来的东西只要和最
: 近一层match就对了。OS多数不是进程和线程的模型吗,哪个是自动机的接口。
: 自动机是你那 microcontroller上面没办法才用的。

d*******r
发帖数: 3299
29
很精辟的帖子,绝大部分都赞同.
针对这个:
"第二, 事件回调(event callback)归根结底依赖于硬件中断(interrupt)。即
使是硬件中断最终也是依赖于高速状态轮询(polling) "
跟我看过的底层代码一致,不过还是想问:
难道计算机最最底层,甚至硬件电路,就没有真正的 event notifiy 这种东西,
都是靠高速 polling 来模拟 event 的?

【在 T********i 的大作中提到】
: 本文的目的在于帮助程序员树立正确的世界观和人生观。如果感觉颠覆感太强烈,主要
: 原因也不是你学错了,而是你的老师教错了,或者你的教科书写错了。
: 1. 确定图灵机和不确定图灵机,
: 根据计算机科学理论,图灵机(Turing Machine)是计算机的抽象模型。现有的计算机
: 的计算能力(不是速度,而是理论上能够求解数学问题的能力)不会超过这个模型。
: 确定图灵机(DTM)是图灵机的一个经典描述,是一个单线程的图灵机。
: 不确定图灵机(NTM)可以看作是一台有无穷多单线程的图灵机组合的图灵机。也就是
: 有无限并行能力的图灵机。
: 可计算性理论可以证明,NTM和DTM是等价的。也就是说DTM可以完全模拟NTM。NTM能够
: 计算的题目,DTM也必然能够计算,虽然可能速度上比NTM慢很多倍。

w***g
发帖数: 5958
30
event的产生本身就是polling的结果。你睁着眼睛看世界,也是在poll。
别太纠结...

【在 d*******r 的大作中提到】
: 很精辟的帖子,绝大部分都赞同.
: 针对这个:
: "第二, 事件回调(event callback)归根结底依赖于硬件中断(interrupt)。即
: 使是硬件中断最终也是依赖于高速状态轮询(polling) "
: 跟我看过的底层代码一致,不过还是想问:
: 难道计算机最最底层,甚至硬件电路,就没有真正的 event notifiy 这种东西,
: 都是靠高速 polling 来模拟 event 的?

相关主题
有人用过这个python库吗?常规应用多核有什么优势?
FP over head很高这个版上的主要矛盾
[bssd]计算机科学的自然律老魏的套路需要能scale才行
进入Programming版参与讨论
g****t
发帖数: 31659
31
电压高于一个二极管的阀值,亮个灯泡,不就是event notify了,
要啥polling....
魏老师瞎吹吹,值得鼓励。但他的观点需要polish。

【在 d*******r 的大作中提到】
: 很精辟的帖子,绝大部分都赞同.
: 针对这个:
: "第二, 事件回调(event callback)归根结底依赖于硬件中断(interrupt)。即
: 使是硬件中断最终也是依赖于高速状态轮询(polling) "
: 跟我看过的底层代码一致,不过还是想问:
: 难道计算机最最底层,甚至硬件电路,就没有真正的 event notifiy 这种东西,
: 都是靠高速 polling 来模拟 event 的?

g****t
发帖数: 31659
32
魏老师没干过电工的活儿,貌似弄懂一些EE的东西后,觉得amazing...
模型多的是。关键是约束,就是成本和市场前景,以及你有的resource什么的。
其实说白了,什么计算不都是查无限大的表嘛。
程序本身是可列的,你弄两列,左边一列是程序,右边一列是结果。
that is it!

观点比较奇怪。开发效率在大多数时候是最重要的,因为人力的成本最高。雇一个人的

【在 m***i 的大作中提到】
: 观点比较奇怪。开发效率在大多数时候是最重要的,因为人力的成本最高。雇一个人的
: 花费远比多用两台机器的花费大。
: 线程,promise大多时候比自动机直观,开发快,开发成本低。这就是为啥 node 火。一
: 门语言前
: 端后端通吃。发展的潮流是用机器解放人,简单的开发模型简化程序员的工作。
: 至于所谓最底层底是什么模型不相干,现在都是多层系统,你开发出来的东西只要和最
: 近一层match就对了。OS多数不是进程和线程的模型吗,哪个是自动机的接口。
: 自动机是你那 microcontroller上面没办法才用的。

w***g
发帖数: 5958
33
你得表里还差input,如果input是程序的话会出现一些怪异的情况,
不一定有结果。
CPU硬中断是polling没错。但硬件polling的开销跟软件不一样的。

【在 g****t 的大作中提到】
: 魏老师没干过电工的活儿,貌似弄懂一些EE的东西后,觉得amazing...
: 模型多的是。关键是约束,就是成本和市场前景,以及你有的resource什么的。
: 其实说白了,什么计算不都是查无限大的表嘛。
: 程序本身是可列的,你弄两列,左边一列是程序,右边一列是结果。
: that is it!
:
: 观点比较奇怪。开发效率在大多数时候是最重要的,因为人力的成本最高。雇一个人的

g****t
发帖数: 31659
34
我的意思是:
1.
你on-off几个button,然后就有对应的红绿灯反应什么的,
这都是可以纯模拟电路实现。所以从模型的角度来讲,
event notify显然和polling没多大关系。
2.
状态机的input/output字典也是可列的,加在同一列就行了。
我假设你说的不是有限状态机。如果是有限状态机,那它的计算能力不是
完备的。和Turing机不等价。
所以我的浅见,程序就是无限查表。
这个表哪一块重要,哪一块值钱,其实是人类的实践活动走出来的。
能forcast哪种模型在未来更重要,那是最牛的。
所以你提了模型还不够,还得解决未来为什么这个模型能dominate市场这
个问题。这不能光是技术原因。

【在 w***g 的大作中提到】
: 你得表里还差input,如果input是程序的话会出现一些怪异的情况,
: 不一定有结果。
: CPU硬中断是polling没错。但硬件polling的开销跟软件不一样的。

g****t
发帖数: 31659
35
他说的不是有限状态机吧。有限状态机能计算的东西只是Turing Machine
的子集,很多需求无法满足。话说我以前曾参与过一个有限状态机的芯片项目。

【在 a****u 的大作中提到】
: 有限状态机也没好到哪里去。
f****y
发帖数: 243
36
然而干活的猴子写代码的时候脑子里是线程啊
本来开发效率高和运行效率高在大多数情况下就是互斥的。。。你要运行效率无限高,
你的选择应该是自己去流芯片;你要开发效率高就用轮子,用抽象出来的模型和结构去
写。。。

【在 T********i 的大作中提到】
: 线程,promise大多时候比自动机直观?
: 这个版面上有几个会写线程的?你说的node,promise之类的,恰恰就是状态自动机。
: 人家状态给你定好的,让你写下状态响应函数而已。都是单线程的。而且,这些实现都
: 是单线程的。
:
: 观点比较奇怪。开发效率在大多数时候是最重要的,因为人力的成本最高。雇一个人的

1 (共1页)
进入Programming版参与讨论
相关主题
再说说react & angular 2【求教】投票机编写的简单方法
1 .中国往事关于regular expression
有人用过这个python库吗?问个flex的问题
FP over head很高温州动车事故启示:重启动(初始化)程序难搞啊!
[bssd]计算机科学的自然律ARM计算机时代即将到来 (转载)
常规应用多核有什么优势?谈谈想学好底层必不可少的东西
这个版上的主要矛盾FP怎么和OOP比较上了?
老魏的套路需要能scale才行机械硬盘的物理极限
相关话题的讨论汇总
话题: ntm话题: 自动机话题: 多线程话题: 图灵机话题: 计算机