想当年C语言一代宗师
@薛非大战水货程序员
@林建入时,正杀的天昏地暗,不想
@林建入忽使出绝招Tokenizer!
@薛非中计落荒而逃。
不好啦!闹大啦!程序员约架啦!!场面太血腥了!!!
从此见人杀人见佛见佛的Tokenizer大法开始在江湖暗中流传。
几载之后,历史终于重现,
@winter大战PLT界巨擘
@王垠,正杀的你死我活,忽然一道金光!一声惊雷
—— 别废话了咱俩比赛写tokenizer!
就这样倒在了血泊之中。
可见Tokenizer就是程序员界的降龙十八掌
........
@王垠:喂导演这剧情怎么设定的,我压根没跟他开打呢啊,难道刚才一阵风就是他的Tokenizer大法吗?
词法/语法分析,尽管是编译原理的基础知识,但如果能灵活运用到工作中,那可不能说没水平,水平很高了好不好?
我是做前端的,你看有几个前端能在工作中运用编译原理解决工程问题的?以我的见闻,这个比例肯定不到1%——你要是比99%的同行都厉害,这还叫没水平?
要做到这一点有两个要素:第一是你《编译原理》的前半部分(后半部分真的不是绝大多数工程师该操心的)得学到能上手做,对原理有一定理解;第二是你得能识别出工程中有什么问题,适合用编译原理解决,并且敢于“上大招”把它搞定。
要做到这两点,难么?挺难的。
就说前端吧,我前几年一直有种感觉——很多国内的前端技术产品(包括大厂出品),之所以不够优雅,很大程度上是因为开发团队不愿意动用编译技术,让它变得更优雅。
比如graphQL,实际上它的思想并非全新,但是为啥它一出现就让人觉得make sense?因为它靠一门轻巧的DSL把表达能力提上去了,你看了这东西就觉得它有无限可能性。很多大公司内部秉承类似思想的产品,也能解决业务问题,但是不具备扩展性,这不是功能问题,而是接口设计的时候就没往“声明-解释-执行”这条路上想,把扩展性限制住了,所以就没有影响力。
再比如现在很火的低代码产品,前两年出来的产品,普遍没有设计面向前端model的查询语言,没有已经被Excel证明非常有用的公式能力,一言不合就内嵌js。但你看微软的Power Platform,人家一上场就敢说,低代码不仅是少写代码,而且是代码本身应该是“低”的,于是设计了Power Fx这样一门低代码语言。
Power Fx看起来长这样:
你说写这么个语言的解释器,难吗?不难吧?那么把前端应用抽象成数据驱动UI的模型,难吗?也没那么难吧?
但这两者的结合,绝大多数团队都没搞出来。不得不说,有时候创新就像一层窗户纸,有些人不知道窗户纸能捅(缺设计能力),有些人肌无力捅不动(缺技术能力),两者都有一点,你就已经很强了。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有