j*w
2 楼
好奇大家有谁实现过完整的编程语言系统?包括:
1 定义语言 spec,包括词法,语法,BNF 产生式等;明白自己在设计中作出的
tradeoffs;
2 实现该 spec,包括 lexer,parser,code generator 等;用啥工具都成:bison,
YACC, 或者手工随意;
3 实现虚拟机,包括指令集,数据类型,条件,循环,堆,栈,子程序调用,递归,垃
圾收集,异常抛出和处理,coroutine,程序加载和执行。
你做的系统未必是进入 production 的系统,只要走过从 spec 到可运行程序的整个流
程就可以。或者不用虚拟机,直接生成机器代码也可以,只要能跑。
哪怕能在 vm 上面运行个该语言写的八皇后都算。关键是点到点,到了这个份上就 OK。
只做一个 lexer,parser,或者写几个产生式不算,需要完整的系统。
做过的握个手。
1 定义语言 spec,包括词法,语法,BNF 产生式等;明白自己在设计中作出的
tradeoffs;
2 实现该 spec,包括 lexer,parser,code generator 等;用啥工具都成:bison,
YACC, 或者手工随意;
3 实现虚拟机,包括指令集,数据类型,条件,循环,堆,栈,子程序调用,递归,垃
圾收集,异常抛出和处理,coroutine,程序加载和执行。
你做的系统未必是进入 production 的系统,只要走过从 spec 到可运行程序的整个流
程就可以。或者不用虚拟机,直接生成机器代码也可以,只要能跑。
哪怕能在 vm 上面运行个该语言写的八皇后都算。关键是点到点,到了这个份上就 OK。
只做一个 lexer,parser,或者写几个产生式不算,需要完整的系统。
做过的握个手。
h*i
4 楼
我老是一个。
【在 j*****w 的大作中提到】
: 好奇大家有谁实现过完整的编程语言系统?包括:
: 1 定义语言 spec,包括词法,语法,BNF 产生式等;明白自己在设计中作出的
: tradeoffs;
: 2 实现该 spec,包括 lexer,parser,code generator 等;用啥工具都成:bison,
: YACC, 或者手工随意;
: 3 实现虚拟机,包括指令集,数据类型,条件,循环,堆,栈,子程序调用,递归,垃
: 圾收集,异常抛出和处理,coroutine,程序加载和执行。
: 你做的系统未必是进入 production 的系统,只要走过从 spec 到可运行程序的整个流
: 程就可以。或者不用虚拟机,直接生成机器代码也可以,只要能跑。
: 哪怕能在 vm 上面运行个该语言写的八皇后都算。关键是点到点,到了这个份上就 OK。
【在 j*****w 的大作中提到】
: 好奇大家有谁实现过完整的编程语言系统?包括:
: 1 定义语言 spec,包括词法,语法,BNF 产生式等;明白自己在设计中作出的
: tradeoffs;
: 2 实现该 spec,包括 lexer,parser,code generator 等;用啥工具都成:bison,
: YACC, 或者手工随意;
: 3 实现虚拟机,包括指令集,数据类型,条件,循环,堆,栈,子程序调用,递归,垃
: 圾收集,异常抛出和处理,coroutine,程序加载和执行。
: 你做的系统未必是进入 production 的系统,只要走过从 spec 到可运行程序的整个流
: 程就可以。或者不用虚拟机,直接生成机器代码也可以,只要能跑。
: 哪怕能在 vm 上面运行个该语言写的八皇后都算。关键是点到点,到了这个份上就 OK。
j*w
6 楼
+1
c*g
7 楼
这个电影没看。。。。据说有残忍镜头,不太敢看
j*w
8 楼
强调一下,在编译原理上面做的 lexer 或者 parser 不算是完整的系统,只能是系统
的一部分。
要 end-to-end 的才算。
的一部分。
要 end-to-end 的才算。
T*x
10 楼
没有目标代码,解释执行,算不算?
OK。
【在 j*****w 的大作中提到】
: 好奇大家有谁实现过完整的编程语言系统?包括:
: 1 定义语言 spec,包括词法,语法,BNF 产生式等;明白自己在设计中作出的
: tradeoffs;
: 2 实现该 spec,包括 lexer,parser,code generator 等;用啥工具都成:bison,
: YACC, 或者手工随意;
: 3 实现虚拟机,包括指令集,数据类型,条件,循环,堆,栈,子程序调用,递归,垃
: 圾收集,异常抛出和处理,coroutine,程序加载和执行。
: 你做的系统未必是进入 production 的系统,只要走过从 spec 到可运行程序的整个流
: 程就可以。或者不用虚拟机,直接生成机器代码也可以,只要能跑。
: 哪怕能在 vm 上面运行个该语言写的八皇后都算。关键是点到点,到了这个份上就 OK。
OK。
【在 j*****w 的大作中提到】
: 好奇大家有谁实现过完整的编程语言系统?包括:
: 1 定义语言 spec,包括词法,语法,BNF 产生式等;明白自己在设计中作出的
: tradeoffs;
: 2 实现该 spec,包括 lexer,parser,code generator 等;用啥工具都成:bison,
: YACC, 或者手工随意;
: 3 实现虚拟机,包括指令集,数据类型,条件,循环,堆,栈,子程序调用,递归,垃
: 圾收集,异常抛出和处理,coroutine,程序加载和执行。
: 你做的系统未必是进入 production 的系统,只要走过从 spec 到可运行程序的整个流
: 程就可以。或者不用虚拟机,直接生成机器代码也可以,只要能跑。
: 哪怕能在 vm 上面运行个该语言写的八皇后都算。关键是点到点,到了这个份上就 OK。
g*t
12 楼
python寫個Lisp解釋器,可以跑八皇后的算不算。带测试两天就差不多了。
带类型,包管理,... 没幾個月搞不定的。你还要coroutine都要有的虛擬機什麼的,
一個人要做一年。
带类型,包管理,... 没幾個月搞不定的。你还要coroutine都要有的虛擬機什麼的,
一個人要做一年。
c*i
13 楼
the only nomination i haven't seen so far. :D.
c*g
25 楼
这个电影没看。。。。据说有残忍镜头,不太敢看
g*t
34 楼
语言和虚拟机实现这条路是两回事。虚拟机,bytecode这条路是java开始的。
以python
为例,最早的1990年就有了。那时候应该不是虚拟机这条路的实现。另外最早的
JavaScript
是10天写完的。也不太可能包括VM这部分。
当然,现在假如真的要自制通用语言的话。走llvm我认为最妥当。假如要嵌入式腳本語
言的話,我會抄克努奇書的系統。
: 一般脚本的 VM 单线程,JavaScript 就是。因为主要用途就是嵌入,复
杂了
overhead
: 就高。
: 我那个也是,单线程。调度通过 coroutine,脚本自愿 yield。
【在 j*****w 的大作中提到】
: 一般脚本的 VM 单线程,JavaScript 就是。因为主要用途就是嵌入,复杂了 overhead
: 就高。
: 我那个也是,单线程。调度通过 coroutine,脚本自愿 yield。
以python
为例,最早的1990年就有了。那时候应该不是虚拟机这条路的实现。另外最早的
JavaScript
是10天写完的。也不太可能包括VM这部分。
当然,现在假如真的要自制通用语言的话。走llvm我认为最妥当。假如要嵌入式腳本語
言的話,我會抄克努奇書的系統。
: 一般脚本的 VM 单线程,JavaScript 就是。因为主要用途就是嵌入,复
杂了
overhead
: 就高。
: 我那个也是,单线程。调度通过 coroutine,脚本自愿 yield。
【在 j*****w 的大作中提到】
: 一般脚本的 VM 单线程,JavaScript 就是。因为主要用途就是嵌入,复杂了 overhead
: 就高。
: 我那个也是,单线程。调度通过 coroutine,脚本自愿 yield。
j*w
38 楼
> 虚拟机,bytecode这条路是java开始的。
虚拟机至少在 60 年代就有,轮不到 Java。
【在 g****t 的大作中提到】
: 语言和虚拟机实现这条路是两回事。虚拟机,bytecode这条路是java开始的。
: 以python
: 为例,最早的1990年就有了。那时候应该不是虚拟机这条路的实现。另外最早的
: JavaScript
: 是10天写完的。也不太可能包括VM这部分。
: 当然,现在假如真的要自制通用语言的话。走llvm我认为最妥当。假如要嵌入式腳本語
: 言的話,我會抄克努奇書的系統。
:
:
: 一般脚本的 VM 单线程,JavaScript 就是。因为主要用途就是嵌入,复
: 杂了
虚拟机至少在 60 年代就有,轮不到 Java。
【在 g****t 的大作中提到】
: 语言和虚拟机实现这条路是两回事。虚拟机,bytecode这条路是java开始的。
: 以python
: 为例,最早的1990年就有了。那时候应该不是虚拟机这条路的实现。另外最早的
: JavaScript
: 是10天写完的。也不太可能包括VM这部分。
: 当然,现在假如真的要自制通用语言的话。走llvm我认为最妥当。假如要嵌入式腳本語
: 言的話,我會抄克努奇書的系統。
:
:
: 一般脚本的 VM 单线程,JavaScript 就是。因为主要用途就是嵌入,复
: 杂了
j*e
39 楼
slave太流水账,尤其让人以为快出现高潮的时候突然就结局了,草草收场,很奇怪
人物也都比较平面
人物也都比较平面
g*t
46 楼
From my understanding, VM required another set of ASM instructions.
The path :Lisp -->C --> X86 ASM
There is no new ASM instructions set and bytecodes.
Another path:
Step 1: Implement the smallest C subset in X86 ASM
Step 2: Expand the miniC language to whole C language spec.
Still, you need not to use VM.
【在 j*****w 的大作中提到】
: 这个机制就是 VM。
: 所谓的解释器 interpreter 就是 compiler + VM。
: 你自己的描述已经包括 VM 的表达式估值的一部分,你没有意识到。
The path :Lisp -->C --> X86 ASM
There is no new ASM instructions set and bytecodes.
Another path:
Step 1: Implement the smallest C subset in X86 ASM
Step 2: Expand the miniC language to whole C language spec.
Still, you need not to use VM.
【在 j*****w 的大作中提到】
: 这个机制就是 VM。
: 所谓的解释器 interpreter 就是 compiler + VM。
: 你自己的描述已经包括 VM 的表达式估值的一部分,你没有意识到。
j*w
48 楼
写个 VM 吧。完了就没那么多纠结了。
【在 g****t 的大作中提到】
: From my understanding, VM required another set of ASM instructions.
: The path :Lisp -->C --> X86 ASM
: There is no new ASM instructions set and bytecodes.
: Another path:
: Step 1: Implement the smallest C subset in X86 ASM
: Step 2: Expand the miniC language to whole C language spec.
: Still, you need not to use VM.
【在 g****t 的大作中提到】
: From my understanding, VM required another set of ASM instructions.
: The path :Lisp -->C --> X86 ASM
: There is no new ASM instructions set and bytecodes.
: Another path:
: Step 1: Implement the smallest C subset in X86 ASM
: Step 2: Expand the miniC language to whole C language spec.
: Still, you need not to use VM.
C*l
54 楼
还有一种vm就是比如你进来一个加法,我背后call libc帮你算出来,python, perl应
该用的是这种。
【在 g****t 的大作中提到】
: From my understanding, VM required another set of ASM instructions.
: The path :Lisp -->C --> X86 ASM
: There is no new ASM instructions set and bytecodes.
: Another path:
: Step 1: Implement the smallest C subset in X86 ASM
: Step 2: Expand the miniC language to whole C language spec.
: Still, you need not to use VM.
该用的是这种。
【在 g****t 的大作中提到】
: From my understanding, VM required another set of ASM instructions.
: The path :Lisp -->C --> X86 ASM
: There is no new ASM instructions set and bytecodes.
: Another path:
: Step 1: Implement the smallest C subset in X86 ASM
: Step 2: Expand the miniC language to whole C language spec.
: Still, you need not to use VM.
l*s
55 楼
编译器的轮子很成熟了,我觉得这个版上大部分同学都能轻松⛏;
T*i
56 楼
产品自带Lua parser。很快就要发布了。专利也批准了。
图,就先不上了。
图,就先不上了。
j*w
57 楼
Lua 简单易用,嵌入 的 overhead 也低,挺好。
预祝发布顺利。
预祝发布顺利。
g*t
59 楼
VM和程序語言都分不清的就不要講別人了。自娛自樂吧
: 某些轮子是几十年前就有了,但是做一个完整的语言,从 spec 到 运行
仍然不
是
: cakewalk。
: So far, 观察结果是:有些基本上是 buzzword/red herring 横飞,但是
并不真
正理解
: 程序语言的运行机制。
: 如果理解了,讨论是可以深入到有意义的细节中的,而不是停留在
buzzword/
red
: herring 上。
【在 j*****w 的大作中提到】
: 某些轮子是几十年前就有了,但是做一个完整的语言,从 spec 到 运行仍然不是
: cakewalk。
: So far, 观察结果是:有些基本上是 buzzword/red herring 横飞,但是并不真正理解
: 程序语言的运行机制。
: 如果理解了,讨论是可以深入到有意义的细节中的,而不是停留在 buzzword/red
: herring 上。
: 某些轮子是几十年前就有了,但是做一个完整的语言,从 spec 到 运行
仍然不
是
: cakewalk。
: So far, 观察结果是:有些基本上是 buzzword/red herring 横飞,但是
并不真
正理解
: 程序语言的运行机制。
: 如果理解了,讨论是可以深入到有意义的细节中的,而不是停留在
buzzword/
red
: herring 上。
【在 j*****w 的大作中提到】
: 某些轮子是几十年前就有了,但是做一个完整的语言,从 spec 到 运行仍然不是
: cakewalk。
: So far, 观察结果是:有些基本上是 buzzword/red herring 横飞,但是并不真正理解
: 程序语言的运行机制。
: 如果理解了,讨论是可以深入到有意义的细节中的,而不是停留在 buzzword/red
: herring 上。
j*w
64 楼
h*i
66 楼
你们两个争的都是鸡毛蒜皮的命名问题。你说的VM,其实就是runtime,而他认为的VM
,是具体的一种runtime。
一个编译的语言,必然是compiler和runtime都需要,这是对的,但你用VM这个词,太
具体了。runtime不一定要以VM的形式出现,也不一定需要语言自己来实现。只要能运
行编译出的代码的环境,就是runtime,比如ClojureScript,编译结果是Javascript源
代码,runtime就是JavaScript engine,不是ClojureScript自己写的。当然,大部分
语言,都会写自己的runtime。
【在 j*****w 的大作中提到】
: 没有 VM 的话,你认为代码如何执行?
:
: python
: JavaScript
,是具体的一种runtime。
一个编译的语言,必然是compiler和runtime都需要,这是对的,但你用VM这个词,太
具体了。runtime不一定要以VM的形式出现,也不一定需要语言自己来实现。只要能运
行编译出的代码的环境,就是runtime,比如ClojureScript,编译结果是Javascript源
代码,runtime就是JavaScript engine,不是ClojureScript自己写的。当然,大部分
语言,都会写自己的runtime。
【在 j*****w 的大作中提到】
: 没有 VM 的话,你认为代码如何执行?
:
: python
: JavaScript
h*i
68 楼
你这不搭嘎,你这是计算理论教材,与语言基本无关。语言实现经典是龙书,讲编译器
的,国内外都用这本书。我老在国内上学的时候也用这个。
可见你不是CS科班出身的,龙书都不知道,说你是科学计算domain expert,不是CS的
没有冤枉你。
【在 g****t 的大作中提到】
: 你是不是没上过计算理论基础这门课啊?所以还要自己造个“语言”出来。
: 我给你列一下国内课本的目录:
: 全书共分7章,分别为:集合、关系和语言;有穷自动机;上下文无关语言;Turing机
: ;不可判定性;计算复杂性;NP完全性。
:
:
: 少扯 red herring。
:
: 》你主贴说的东西是通用语言产品的一种。难点在engineering部分。
:
: 我做的语言就是我的首贴所说的,包含所有的功能。
:
的,国内外都用这本书。我老在国内上学的时候也用这个。
可见你不是CS科班出身的,龙书都不知道,说你是科学计算domain expert,不是CS的
没有冤枉你。
【在 g****t 的大作中提到】
: 你是不是没上过计算理论基础这门课啊?所以还要自己造个“语言”出来。
: 我给你列一下国内课本的目录:
: 全书共分7章,分别为:集合、关系和语言;有穷自动机;上下文无关语言;Turing机
: ;不可判定性;计算复杂性;NP完全性。
:
:
: 少扯 red herring。
:
: 》你主贴说的东西是通用语言产品的一种。难点在engineering部分。
:
: 我做的语言就是我的首贴所说的,包含所有的功能。
:
g*t
71 楼
他不是自称自己看ultimate lambda吗?那里很多CS语言的fresh phd发语言相关的广告
。你看看讲的语言,是我说的为
准。还是你讲的一个具体实现技术为准。
我当初本科可以上任何一个系的课。只要你想。就可以学物理系的物理课,数学系的数
学课。可以不必理会自己系的同类课。我考研选的数据结构还有微机原理。
: 你这不搭嘎,你这是计算理论教材,与语言基本无关。语言实现经典是龙
书,讲
编译器
: 的,国内外都用这本书。我老在国内上学的时候也用这个。
: 可见你不是CS科班出身的,龙书都不知道,说你是科学计算domain
expert,不
是CS的
: 没有冤枉你。
【在 h*i 的大作中提到】
: 我老发明的语言,从spec, compiler和runtime都是我一人写的,算是我司的技术核心
: ,现在已经有大学课程教我老的语言了。你说呢?
: 你是CTO,我也是CTO, 我们的工作性质,很不一样,哈哈。
。你看看讲的语言,是我说的为
准。还是你讲的一个具体实现技术为准。
我当初本科可以上任何一个系的课。只要你想。就可以学物理系的物理课,数学系的数
学课。可以不必理会自己系的同类课。我考研选的数据结构还有微机原理。
: 你这不搭嘎,你这是计算理论教材,与语言基本无关。语言实现经典是龙
书,讲
编译器
: 的,国内外都用这本书。我老在国内上学的时候也用这个。
: 可见你不是CS科班出身的,龙书都不知道,说你是科学计算domain
expert,不
是CS的
: 没有冤枉你。
【在 h*i 的大作中提到】
: 我老发明的语言,从spec, compiler和runtime都是我一人写的,算是我司的技术核心
: ,现在已经有大学课程教我老的语言了。你说呢?
: 你是CTO,我也是CTO, 我们的工作性质,很不一样,哈哈。
h*i
73 楼
lambda the ultimate 对我来说太高深了,我只看hacker news,哈哈。
【在 g****t 的大作中提到】
: 他不是自称自己看ultimate lambda吗?那里很多CS语言的fresh phd发语言相关的广告
: 。你看看讲的语言,是我说的为
: 准。还是你讲的一个具体实现技术为准。
: 我当初本科可以上任何一个系的课。只要你想。就可以学物理系的物理课,数学系的数
: 学课。可以不必理会自己系的同类课。我考研选的数据结构还有微机原理。
:
:
: 你这不搭嘎,你这是计算理论教材,与语言基本无关。语言实现经典是龙
: 书,讲
: 编译器
:
: 的,国内外都用这本书。我老在国内上学的时候也用这个。
【在 g****t 的大作中提到】
: 他不是自称自己看ultimate lambda吗?那里很多CS语言的fresh phd发语言相关的广告
: 。你看看讲的语言,是我说的为
: 准。还是你讲的一个具体实现技术为准。
: 我当初本科可以上任何一个系的课。只要你想。就可以学物理系的物理课,数学系的数
: 学课。可以不必理会自己系的同类课。我考研选的数据结构还有微机原理。
:
:
: 你这不搭嘎,你这是计算理论教材,与语言基本无关。语言实现经典是龙
: 书,讲
: 编译器
:
: 的,国内外都用这本书。我老在国内上学的时候也用这个。
g*t
74 楼
CS language 的博士,都是以我讲的为准吧。另外我也没有抬杠的意思。不然我说我做了
个算盘,也是计算机语言系统的实现。
按我的理解。VM一定要有自己的汇编指令集。不然哪里来的机器一说呢?VM的细节我确
实没研究过。但是我知道golang没有VM。此为定论。没什么含糊的地方。然后我还仔细
看过nim,人家也有十几年历史了,翻译成gcc以及javascript。也没有自己造汇编指令
集。
所以现在这个时代,语言的实现很多种路径都是可以的。这是我的浅见。你看了smart
contract的那几个新品种吗?区块链内嵌图灵完备语言。年轻的天才很多啊。
: lambda the ultimate 对我来说太高深了,我只看hacker news,哈哈。
【在 h*i 的大作中提到】
: lambda the ultimate 对我来说太高深了,我只看hacker news,哈哈。
个算盘,也是计算机语言系统的实现。
按我的理解。VM一定要有自己的汇编指令集。不然哪里来的机器一说呢?VM的细节我确
实没研究过。但是我知道golang没有VM。此为定论。没什么含糊的地方。然后我还仔细
看过nim,人家也有十几年历史了,翻译成gcc以及javascript。也没有自己造汇编指令
集。
所以现在这个时代,语言的实现很多种路径都是可以的。这是我的浅见。你看了smart
contract的那几个新品种吗?区块链内嵌图灵完备语言。年轻的天才很多啊。
: lambda the ultimate 对我来说太高深了,我只看hacker news,哈哈。
【在 h*i 的大作中提到】
: lambda the ultimate 对我来说太高深了,我只看hacker news,哈哈。
g*t
75 楼
一把年纪了。瞎吹这些还有啥意思。
我写码水平还是不错的。这就不谦虚了。我这个CTO是现学java写码几个月promote 的
。本身是找的developer的工作。
我不认识人。没有关系。也不拿股份。
去年还在本版给大家分享了developer的面试题。
现在等于车间主任。说不定很快就退休了。
你和本版很多别的朋友(包括楼主)是走在发大财的路上,祝你们越走越好。
: 我老发明的语言,从spec, compiler和runtime都是我一人写的,算是我
司的技
术核心
: ,现在已经有大学课程教我老的语言了。你说呢?
: 你是CTO,我也是CTO, 我们的工作性质,很不一样,哈哈。
【在 h*i 的大作中提到】
: lambda the ultimate 对我来说太高深了,我只看hacker news,哈哈。
我写码水平还是不错的。这就不谦虚了。我这个CTO是现学java写码几个月promote 的
。本身是找的developer的工作。
我不认识人。没有关系。也不拿股份。
去年还在本版给大家分享了developer的面试题。
现在等于车间主任。说不定很快就退休了。
你和本版很多别的朋友(包括楼主)是走在发大财的路上,祝你们越走越好。
: 我老发明的语言,从spec, compiler和runtime都是我一人写的,算是我
司的技
术核心
: ,现在已经有大学课程教我老的语言了。你说呢?
: 你是CTO,我也是CTO, 我们的工作性质,很不一样,哈哈。
【在 h*i 的大作中提到】
: lambda the ultimate 对我来说太高深了,我只看hacker news,哈哈。
k*x
76 楼
吗公还真是谁都看不起谁,不是吹的
:一把年纪了。瞎吹这些还有啥意思。
:
:一把年纪了。瞎吹这些还有啥意思。
:
P*r
77 楼
我也没明白,为啥语言一定要有VM?直接编译成机器码不也是常见的吗
j*w
81 楼
根本没有弄错,看原帖,一直有 vm 和机器指令两个选项。
说弄错的是你回帖没看清,回错了。
说弄错的是你回帖没看清,回错了。
g*t
84 楼
VM有优点是没错。我也认可。但是golang这种。还有编译成C的语言也有自己的优点。
总之,语言系统和VM是两回事。
为了说明VM和语言系统是两回事。我举的例子,Golang還是照顧了樓主的知識的。我並
沒有拿github上面乱七八糟的各种语言项目出来做例子。
现如今知识更新换代很快。我一天和好几个新毕业生面试。听闻分布式文件系统,分布
式数据库什么的也就是一个学期不到的时间的course work。
这些东西在本版早年,不少人也觉得会写这些东西的底层就是屠龙术?然而终究挡不住
学校里大批训练新人出来。
但是这样的坏处是。要是一个
新人不幸上了这种课。那说不定还真就以为分布式文件系统就必须是coursework学到的
那
一种架构了。除此之外的都不算CS, LoL
: vm能实现静态编译做不到的优化,比如逃逸分析,利用TLS分配内存等
【在 x****u 的大作中提到】
: vm能实现静态编译做不到的优化,比如逃逸分析,利用TLS分配内存等
总之,语言系统和VM是两回事。
为了说明VM和语言系统是两回事。我举的例子,Golang還是照顧了樓主的知識的。我並
沒有拿github上面乱七八糟的各种语言项目出来做例子。
现如今知识更新换代很快。我一天和好几个新毕业生面试。听闻分布式文件系统,分布
式数据库什么的也就是一个学期不到的时间的course work。
这些东西在本版早年,不少人也觉得会写这些东西的底层就是屠龙术?然而终究挡不住
学校里大批训练新人出来。
但是这样的坏处是。要是一个
新人不幸上了这种课。那说不定还真就以为分布式文件系统就必须是coursework学到的
那
一种架构了。除此之外的都不算CS, LoL
: vm能实现静态编译做不到的优化,比如逃逸分析,利用TLS分配内存等
【在 x****u 的大作中提到】
: vm能实现静态编译做不到的优化,比如逃逸分析,利用TLS分配内存等
h*c
85 楼
还是解决具体问题比较好,编译器这种东西没碰过。不过做过breadboard设计整数相加
的溢出,我觉得使得我对计算机器认识比较深刻。
三极管就是近似,电压是测量近似,傅立叶变换再精妙,最后还得用门电路,就是世界
上你可以认为没有是非,但是只有门里或者门外。忘了,书上讨论过门电路vs 摸拟电
路。
如果你没有一个全的真值表,你肯定会溢出,会有漏洞。
另外我最近总结,图灵机没有时间参数,是不是一个缺陷。不是说隐含了时间就是不变
流形,而是计算机器的一些问题实际是应该以可变流形,就是物理的规律会随时间变化
。比如数据库系统一边计数一边运算,最后一定会溢出。还没太想好。总之不是一个全
真值表的表述,所以有时间参数的系统不是图灵机,图灵测试是伪命题。全真或许可以
以群论来表示。
OK。
【在 j*****w 的大作中提到】
: 好奇大家有谁实现过完整的编程语言系统?包括:
: 1 定义语言 spec,包括词法,语法,BNF 产生式等;明白自己在设计中作出的
: tradeoffs;
: 2 实现该 spec,包括 lexer,parser,code generator 等;用啥工具都成:bison,
: YACC, 或者手工随意;
: 3 实现虚拟机,包括指令集,数据类型,条件,循环,堆,栈,子程序调用,递归,垃
: 圾收集,异常抛出和处理,coroutine,程序加载和执行。
: 你做的系统未必是进入 production 的系统,只要走过从 spec 到可运行程序的整个流
: 程就可以。或者不用虚拟机,直接生成机器代码也可以,只要能跑。
: 哪怕能在 vm 上面运行个该语言写的八皇后都算。关键是点到点,到了这个份上就 OK。
的溢出,我觉得使得我对计算机器认识比较深刻。
三极管就是近似,电压是测量近似,傅立叶变换再精妙,最后还得用门电路,就是世界
上你可以认为没有是非,但是只有门里或者门外。忘了,书上讨论过门电路vs 摸拟电
路。
如果你没有一个全的真值表,你肯定会溢出,会有漏洞。
另外我最近总结,图灵机没有时间参数,是不是一个缺陷。不是说隐含了时间就是不变
流形,而是计算机器的一些问题实际是应该以可变流形,就是物理的规律会随时间变化
。比如数据库系统一边计数一边运算,最后一定会溢出。还没太想好。总之不是一个全
真值表的表述,所以有时间参数的系统不是图灵机,图灵测试是伪命题。全真或许可以
以群论来表示。
OK。
【在 j*****w 的大作中提到】
: 好奇大家有谁实现过完整的编程语言系统?包括:
: 1 定义语言 spec,包括词法,语法,BNF 产生式等;明白自己在设计中作出的
: tradeoffs;
: 2 实现该 spec,包括 lexer,parser,code generator 等;用啥工具都成:bison,
: YACC, 或者手工随意;
: 3 实现虚拟机,包括指令集,数据类型,条件,循环,堆,栈,子程序调用,递归,垃
: 圾收集,异常抛出和处理,coroutine,程序加载和执行。
: 你做的系统未必是进入 production 的系统,只要走过从 spec 到可运行程序的整个流
: 程就可以。或者不用虚拟机,直接生成机器代码也可以,只要能跑。
: 哪怕能在 vm 上面运行个该语言写的八皇后都算。关键是点到点,到了这个份上就 OK。
x*u
86 楼
静态语言执行效率可确定啊,中间代码的话能跑多快还要看你的vm设置
有的时候确定性非常重要
【在 g****t 的大作中提到】
: VM有优点是没错。我也认可。但是golang这种。还有编译成C的语言也有自己的优点。
: 总之,语言系统和VM是两回事。
: 为了说明VM和语言系统是两回事。我举的例子,Golang還是照顧了樓主的知識的。我並
: 沒有拿github上面乱七八糟的各种语言项目出来做例子。
: 现如今知识更新换代很快。我一天和好几个新毕业生面试。听闻分布式文件系统,分布
: 式数据库什么的也就是一个学期不到的时间的course work。
: 这些东西在本版早年,不少人也觉得会写这些东西的底层就是屠龙术?然而终究挡不住
: 学校里大批训练新人出来。
: 但是这样的坏处是。要是一个
: 新人不幸上了这种课。那说不定还真就以为分布式文件系统就必须是coursework学到的
有的时候确定性非常重要
【在 g****t 的大作中提到】
: VM有优点是没错。我也认可。但是golang这种。还有编译成C的语言也有自己的优点。
: 总之,语言系统和VM是两回事。
: 为了说明VM和语言系统是两回事。我举的例子,Golang還是照顧了樓主的知識的。我並
: 沒有拿github上面乱七八糟的各种语言项目出来做例子。
: 现如今知识更新换代很快。我一天和好几个新毕业生面试。听闻分布式文件系统,分布
: 式数据库什么的也就是一个学期不到的时间的course work。
: 这些东西在本版早年,不少人也觉得会写这些东西的底层就是屠龙术?然而终究挡不住
: 学校里大批训练新人出来。
: 但是这样的坏处是。要是一个
: 新人不幸上了这种课。那说不定还真就以为分布式文件系统就必须是coursework学到的
g*t
89 楼
我最近听闻的,最新的CS master的course work流行两种:
一种是大数据。
一种是带推荐系统的假Amzon网站。
我猜你可能就是Course work写VM的。先一个贴coursework
的利弊我的参考意见如下。
“
现如今知识更新换代很快。我一天和好几个新毕业生面试。听闻分布式文件系统,分布
式数据库什么的也就是一个学期不到的时间的course work。
这些东西在本版早年,不少人也觉得会写这些东西的底层就是屠龙术?然而终究挡不住
学校里大批训练新人出来。
但是这样的坏处是。要是一个
新人不幸上了这种课。那说不定还真就以为分布式文件系统就必须是coursework学到的
那
一种架构了。除此之外的都不算CS, LoL”
: 你说的这些应该是相对高级的特性了,当时并没有实现。
: 当时选择用 vm 是因为有些基本特性在 vm 上面实现方便。比如说异常处
理和捕
获中,
: 需要倒卷数据栈,还有实现 coroutine/closure 之类的,生成机器代码
挺麻烦
,毕竟
: 学生时代的习作。但是对一个 vm,你可以对它做很多事情,实现这些相
对容易。
: 思考各种日常用到的语言特性在 vm 中如何具体实现是一件相当有意思的
事情。
【在 j*****w 的大作中提到】
: 你说的这些应该是相对高级的特性了,当时并没有实现。
: 当时选择用 vm 是因为有些基本特性在 vm 上面实现方便。比如说异常处理和捕获中,
: 需要倒卷数据栈,还有实现 coroutine/closure 之类的,生成机器代码挺麻烦,毕竟
: 学生时代的习作。但是对一个 vm,你可以对它做很多事情,实现这些相对容易。
: 思考各种日常用到的语言特性在 vm 中如何具体实现是一件相当有意思的事情。
一种是大数据。
一种是带推荐系统的假Amzon网站。
我猜你可能就是Course work写VM的。先一个贴coursework
的利弊我的参考意见如下。
“
现如今知识更新换代很快。我一天和好几个新毕业生面试。听闻分布式文件系统,分布
式数据库什么的也就是一个学期不到的时间的course work。
这些东西在本版早年,不少人也觉得会写这些东西的底层就是屠龙术?然而终究挡不住
学校里大批训练新人出来。
但是这样的坏处是。要是一个
新人不幸上了这种课。那说不定还真就以为分布式文件系统就必须是coursework学到的
那
一种架构了。除此之外的都不算CS, LoL”
: 你说的这些应该是相对高级的特性了,当时并没有实现。
: 当时选择用 vm 是因为有些基本特性在 vm 上面实现方便。比如说异常处
理和捕
获中,
: 需要倒卷数据栈,还有实现 coroutine/closure 之类的,生成机器代码
挺麻烦
,毕竟
: 学生时代的习作。但是对一个 vm,你可以对它做很多事情,实现这些相
对容易。
: 思考各种日常用到的语言特性在 vm 中如何具体实现是一件相当有意思的
事情。
【在 j*****w 的大作中提到】
: 你说的这些应该是相对高级的特性了,当时并没有实现。
: 当时选择用 vm 是因为有些基本特性在 vm 上面实现方便。比如说异常处理和捕获中,
: 需要倒卷数据栈,还有实现 coroutine/closure 之类的,生成机器代码挺麻烦,毕竟
: 学生时代的习作。但是对一个 vm,你可以对它做很多事情,实现这些相对容易。
: 思考各种日常用到的语言特性在 vm 中如何具体实现是一件相当有意思的事情。
j*w
90 楼
g*t
91 楼
我本科的course work是自己查表翻译汇编指令。硕士course work是给亚州某某会议写
个delphi 程序管理论文数据库。
: 我最近听闻的,最新的CS master的course work流行两种:
: 一种是大数据。
: 一种是带推荐系统的假Amzon网站。
: 我猜你可能就是Course work写VM的。先一个贴coursework
: 的利弊我的参考意见如下。
: “
: 现如今知识更新换代很快。我一天和好几个新毕业生面试。听闻分布式文件系统
,分布
: 式数据库什么的也就是一个学期不到的时间的course work。
: 这些东西在本版早年,不少人也觉得会写这些东西的底层就是屠龙术?然而终究
挡不住
: 学校里大批训练新人出来。
【在 g****t 的大作中提到】
: 我最近听闻的,最新的CS master的course work流行两种:
: 一种是大数据。
: 一种是带推荐系统的假Amzon网站。
: 我猜你可能就是Course work写VM的。先一个贴coursework
: 的利弊我的参考意见如下。
: “
: 现如今知识更新换代很快。我一天和好几个新毕业生面试。听闻分布式文件系统,分布
: 式数据库什么的也就是一个学期不到的时间的course work。
: 这些东西在本版早年,不少人也觉得会写这些东西的底层就是屠龙术?然而终究挡不住
: 学校里大批训练新人出来。
个delphi 程序管理论文数据库。
: 我最近听闻的,最新的CS master的course work流行两种:
: 一种是大数据。
: 一种是带推荐系统的假Amzon网站。
: 我猜你可能就是Course work写VM的。先一个贴coursework
: 的利弊我的参考意见如下。
: “
: 现如今知识更新换代很快。我一天和好几个新毕业生面试。听闻分布式文件系统
,分布
: 式数据库什么的也就是一个学期不到的时间的course work。
: 这些东西在本版早年,不少人也觉得会写这些东西的底层就是屠龙术?然而终究
挡不住
: 学校里大批训练新人出来。
【在 g****t 的大作中提到】
: 我最近听闻的,最新的CS master的course work流行两种:
: 一种是大数据。
: 一种是带推荐系统的假Amzon网站。
: 我猜你可能就是Course work写VM的。先一个贴coursework
: 的利弊我的参考意见如下。
: “
: 现如今知识更新换代很快。我一天和好几个新毕业生面试。听闻分布式文件系统,分布
: 式数据库什么的也就是一个学期不到的时间的course work。
: 这些东西在本版早年,不少人也觉得会写这些东西的底层就是屠龙术?然而终究挡不住
: 学校里大批训练新人出来。
x*u
93 楼
这些叫实操技能,会多会少其实没大区别
关键是对技术的品味和对新事物的接受能力
【在 g****t 的大作中提到】
: 我最近听闻的,最新的CS master的course work流行两种:
: 一种是大数据。
: 一种是带推荐系统的假Amzon网站。
: 我猜你可能就是Course work写VM的。先一个贴coursework
: 的利弊我的参考意见如下。
: “
: 现如今知识更新换代很快。我一天和好几个新毕业生面试。听闻分布式文件系统,分布
: 式数据库什么的也就是一个学期不到的时间的course work。
: 这些东西在本版早年,不少人也觉得会写这些东西的底层就是屠龙术?然而终究挡不住
: 学校里大批训练新人出来。
关键是对技术的品味和对新事物的接受能力
【在 g****t 的大作中提到】
: 我最近听闻的,最新的CS master的course work流行两种:
: 一种是大数据。
: 一种是带推荐系统的假Amzon网站。
: 我猜你可能就是Course work写VM的。先一个贴coursework
: 的利弊我的参考意见如下。
: “
: 现如今知识更新换代很快。我一天和好几个新毕业生面试。听闻分布式文件系统,分布
: 式数据库什么的也就是一个学期不到的时间的course work。
: 这些东西在本版早年,不少人也觉得会写这些东西的底层就是屠龙术?然而终究挡不住
: 学校里大批训练新人出来。
h*i
99 楼
你还是比较有观察力的,一下就看出了那位其实就是个学生作了个project就自以为是
了,
你老的情商看来不错,果然厉害,是得致敬。
【在 g****t 的大作中提到】
: VM有优点是没错。我也认可。但是golang这种。还有编译成C的语言也有自己的优点。
: 总之,语言系统和VM是两回事。
: 为了说明VM和语言系统是两回事。我举的例子,Golang還是照顧了樓主的知識的。我並
: 沒有拿github上面乱七八糟的各种语言项目出来做例子。
: 现如今知识更新换代很快。我一天和好几个新毕业生面试。听闻分布式文件系统,分布
: 式数据库什么的也就是一个学期不到的时间的course work。
: 这些东西在本版早年,不少人也觉得会写这些东西的底层就是屠龙术?然而终究挡不住
: 学校里大批训练新人出来。
: 但是这样的坏处是。要是一个
: 新人不幸上了这种课。那说不定还真就以为分布式文件系统就必须是coursework学到的
了,
你老的情商看来不错,果然厉害,是得致敬。
【在 g****t 的大作中提到】
: VM有优点是没错。我也认可。但是golang这种。还有编译成C的语言也有自己的优点。
: 总之,语言系统和VM是两回事。
: 为了说明VM和语言系统是两回事。我举的例子,Golang還是照顧了樓主的知識的。我並
: 沒有拿github上面乱七八糟的各种语言项目出来做例子。
: 现如今知识更新换代很快。我一天和好几个新毕业生面试。听闻分布式文件系统,分布
: 式数据库什么的也就是一个学期不到的时间的course work。
: 这些东西在本版早年,不少人也觉得会写这些东西的底层就是屠龙术?然而终究挡不住
: 学校里大批训练新人出来。
: 但是这样的坏处是。要是一个
: 新人不幸上了这种课。那说不定还真就以为分布式文件系统就必须是coursework学到的
相关阅读
请教一个gmail里面标签的设计问题cilent段开发的ide用哪个比较好?公司名气大的入门薪水低,但是高级职位薪水高 (转载)狂笑——习特勒得知 AlphaGo战胜李世石(视频)问问api gatewayvecot<vecot<int>> p怎么 得到p的指针呢?MVC Web: How to transfer a dictionary from viewer to cont再挖一坑,Xamarin为啥不招人待见?我看像神器呀?学围棋的风险——差点害死 Google从人工智能AlphaGo到平面几何定理证明阿尔法幕后的陈御天台州高考理科状元清华电子系python 有什么好书可以读一读?redis真是神器狗家的gRPC有在SAP工作的吗?帮忙怎么下载sapjco-sun_64-2.1.8.tgzJava EE 问题python 小问题.NET系的工作比JAVA系轻松很多,能做.NET就不要做JAVA (转载)总结一下kaggle比赛Java码农转data science行业,有没有一起的 (转载)