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学到的
相关阅读
c++ template中如何判断类型Need experienced PHP Programmer urgently! Good pay!你们觉得《the little book of semaphore》这本书怎么样?Please help me prove SUM(logi) is Omega(nlogn) (转载)one more c++ questionwindows下有没有免费的C++编译器?C++ 和数据库结合的课, 哪个教材比较好啊?C++读文件的一个基础问题public and protected member in private inheritif you know how to use port_dissociate()在linux上用什么工具compile java程序?Another question from Programming Pearls: 13.4求Programming Pearls(编程珠玑)by Jon Bentley 电子版书问个autoconf的问题dreamweaver里面怎么加code hints啊?请教:如何用Java get URL content是.swe并且是utf-16 encoding的文件关于SELinux (转载)Why should i include .cpp instead of .h请教一个自动下载网页链接的问题另一个相关的很基础的问题