百科问答小站 logo
百科问答小站 font logo



会写 Parser、Tokenizer 是什么水平? 第1页

  

user avatar    网友的相关建议: 
      

想当年C语言一代宗师

@薛非

大战水货程序员

@林建入

时,正杀的天昏地暗,不想

@林建入

忽使出绝招Tokenizer!

@薛非

中计落荒而逃。

不好啦!闹大啦!程序员约架啦!!场面太血腥了!!!

从此见人杀人见佛见佛的Tokenizer大法开始在江湖暗中流传。

几载之后,历史终于重现,

@winter

大战PLT界巨擘

@王垠

,正杀的你死我活,忽然一道金光!一声惊雷

—— 别废话了咱俩比赛写tokenizer!

@王垠

就这样倒在了血泊之中。

可见Tokenizer就是程序员界的降龙十八掌

........

@王垠

:喂导演这剧情怎么设定的,我压根没跟他开打呢啊,难道刚才一阵风就是他的Tokenizer大法吗?


user avatar   yu-san-geng 网友的相关建议: 
      

词法/语法分析,尽管是编译原理的基础知识,但如果能灵活运用到工作中,那可不能说没水平,水平很高了好不好?

我是做前端的,你看有几个前端能在工作中运用编译原理解决工程问题的?以我的见闻,这个比例肯定不到1%——你要是比99%的同行都厉害,这还叫没水平?

要做到这一点有两个要素:第一是你《编译原理》的前半部分(后半部分真的不是绝大多数工程师该操心的)得学到能上手做,对原理有一定理解;第二是你得能识别出工程中有什么问题,适合用编译原理解决,并且敢于“上大招”把它搞定。

要做到这两点,难么?挺难的。

就说前端吧,我前几年一直有种感觉——很多国内的前端技术产品(包括大厂出品),之所以不够优雅,很大程度上是因为开发团队不愿意动用编译技术,让它变得更优雅。

比如graphQL,实际上它的思想并非全新,但是为啥它一出现就让人觉得make sense?因为它靠一门轻巧的DSL把表达能力提上去了,你看了这东西就觉得它有无限可能性。很多大公司内部秉承类似思想的产品,也能解决业务问题,但是不具备扩展性,这不是功能问题,而是接口设计的时候就没往“声明-解释-执行”这条路上想,把扩展性限制住了,所以就没有影响力。

再比如现在很火的低代码产品,前两年出来的产品,普遍没有设计面向前端model的查询语言,没有已经被Excel证明非常有用的公式能力,一言不合就内嵌js。但你看微软的Power Platform,人家一上场就敢说,低代码不仅是少写代码,而且是代码本身应该是“低”的,于是设计了Power Fx这样一门低代码语言。

Power Fx看起来长这样:

你说写这么个语言的解释器,难吗?不难吧?那么把前端应用抽象成数据驱动UI的模型,难吗?也没那么难吧?

但这两者的结合,绝大多数团队都没搞出来。不得不说,有时候创新就像一层窗户纸,有些人不知道窗户纸能捅(缺设计能力),有些人肌无力捅不动(缺技术能力),两者都有一点,你就已经很强了。


user avatar   jsli 网友的相关建议: 
       柏林墙推倒以后东西德真的彻底融为一体了吗? - 邹博文的回答

不是经济学专业,对两德合并无力回答,但是有关两德统一的公法事实的错误有必要指出。

现在讨论两德统一的问题。事实上,从来没有过两德统一,只有东德灭亡。1990年6月,东德政府决定引入西德马克来拯救陷入崩溃边缘东德经济。在之后的几个月内,由于经济无法改善,愤怒的人民走上街头,有良知的东德领导人们不愿意向人民开枪,政府迫于高压,自行解散。此时,1990年9月20日,全世界再也没有东德政府这个名词了。政府解散后,旧有各州纷纷独立,并最终仿照60年代萨尔州的例子,加入联邦德国,西德议会一一批准,才有了今天统一的德国。世界历史提到10月3日两德统一的日子,其实是照顾东德人民的感情。这在当时是联邦德国和几个州之间的事,东德政府已经在半个月之前不复存在了。

这一段不符合史实。东德政府并不是自行解散,而是根据两德条约的法定步骤,这是柏林墙倒塌后一步一步地来的。

1989年11月28日,西德总理提出分阶段建立德国邦联(还不是联邦)的计划。

1990年2月13日,华约与北约成员国外长会议做出决议,规定东德大选后成立的新东德政府就可以开始统一谈判。

1990年3月18日,东德举行大选,西德基民盟支持的东德“德国联盟”获得胜利,成立了新的东德政府。此时的东德实际上已经不是彼时的东德了,“有良知的东德领导人们”的几句话无从说起。

1990年5月18日,两德政府签订了第一个国家条约,确定了货币、经济和社会的联盟。货币联盟于7月1日起生效。

1990年8月3日,两德政府签订在两个德国境内举行全德议会选举的准备与实施协议。这个协议又于8月28日得到修改。

1990年8月23日东德国会通过了东德各州以州的身份加入联邦德国的决议。根据这个决议,为了符合基本法的规定才按照德国传统上的划分恢复各州;早前的1952年,为了便于统治,东德的历史上的5个州被划分为13个专区。这也是形式上的,东德五州真正建立起民选政府是统一之后的事情了,各州纷纷独立的说法无从说起。直到统一后的1990年10月13号,东德五州才进行了第一次州选举。

1990年8月31号由两德签署第二个国家条约确认两德统一,这个条约确定了两德统一的具体形式是东德解体、以各州的名义分别加入联邦德国。(Vertrag zwischen der Bundesrepublik Deutschland und der Deutschen Demokratischen Republik über die Herstellung der Einheit Deutschlands;Treaty between the Federal Republic of Germany and the German Democratic Republic on the Establishment of German Unity)

然后两德同四个占领国进行谈判,并于1990年9月12日签订有关修改德国国际法地位的“二加四协议”。

总结:东德政府解散并不是崩溃式的,而是根据相关宪法性法律和国际条约进行的法律步骤。

参考资料:康拉德·黑塞,商务印书馆,《联邦德国宪法纲要》第68-74页。(Grundzüge des Verfassungsrechts der Bundesrepublik Deutschland, 20. Auflage, Heidelberg 1995 (Neudruck 1999),pp95-98)

德国自神圣罗马帝国崩溃后的统一问题,政治学和国际关系上被称为German Question。可以去Google Scholar查找。

手边有两本英书可以推荐。

Peter Alter的《The German Question and Europe:A History》和Dirk Verheyen的《The German Question:A Cultural, Historical and Geopolitical Exploration》

中文书可以参考玛丽·弗尔布鲁克的《德国史:1918-2008》

这几本书的最后几章都是讨论两德统一后的政治、经济与社会状况,写作的年代也比较新,都是2000年之后写成或者最新修订的。




  

相关话题

  一个浮点数到底是怎么被转换为字符串输出?一个浮点数不精确,那么其输出的值是怎么被确定的呢? 
  Linux的ls -l命令输出的第二列的数字代表什么? 
  熊猫烧香病毒的技术性有多高? 
  怎么解释「正定矩阵」? 
  编译器是如何实现C/C++中的const的功能? 
  非科班出身,如何成为程序员? 
  多核和分布式的编程环境促使产生了并发编程语言,那么它和传统的编程语言有什么本质的不同? 
  数据结构与算法中,树一般会应用在哪些方面?为什么? 
  学习编程必须要会英语吗? 
  我是不是应该放弃 C# 了? 

前一个讨论
父母因意外去世,自己大学还没毕业,如何妥善安置四个月的弟弟?
下一个讨论
量子计算机的工作原理如何解释?





© 2024-05-19 - tinynew.org. All Rights Reserved.
© 2024-05-19 - tinynew.org. 保留所有权利