百科问答小站 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年之后写成或者最新修订的。




  

相关话题

  嵌入式为什么不用 java 语言写? 
  毫无编程基础的小白准备学习C语言,用VC6还是VS2015? 
  从物理层面解释,为什么在键盘上输入 abc,电脑屏幕上就会显示 abc? 
  将编程语言中的英文替换成中文并将其完善为一门国人普遍接受的编程语言,需要哪些条件? 
  如何看待网传字节跳动或分拆 TikTok 为美国公司,面对「海外封杀」这会是一种有效的措施吗? 
  壁虎是如何吸附在光滑的墙壁上的? 
  在洛桑联邦理工学院(EPFL)就读是怎么样的体验? 
  C# 虽然在语言层面上更胜 Java 一筹,但是这对于占有率真的很重要吗? 
  为什么C#的.NET库不默认提供「优先队列」容器? 
  最数学的计算机科学方向有哪些? 

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





© 2024-11-22 - tinynew.org. All Rights Reserved.
© 2024-11-22 - tinynew.org. 保留所有权利