获得徽章 27
- #掘友年度报告#
-- 首先贴出我 2023的年度总结沸点链接:juejin.cn
-- 再然后总结下flag的完成情况:
1. 摆正心态,年末感到压力好大,突然感觉这两年一直也没有做什么自己真正热爱的事情,想去旅游想去看海想去很多地方但都因为懦弱没去,2023要勇敢做自己想做的事情,我要去看海!!!(不仅去看了海,还一个人跟着旅游团去了沙漠,草原,火山,总之比起去年来 )
2. 继续夯实基础,阅读java和基础技术书籍20本(主要的学习资料是极客时间,也完成了)
3. 生活不只有技术,2023希望丰富自己的内心世界,多去看些有意思的小说,引发深度思考和令人反省的书(这个还是没有做到,有时间总想去看看计算机的基础东西,控制不住自己,希望今年可以控制下)
4. 从毕业出来就有个梦想换个mac,明年必定要换,有了mac后可以专门用来敲代码(嘿嘿,这个是最开心的事情了,入了mac,敲代码都更有动力了)
5. 今年的晋升时间正好是我入职两年的时间点,如果可以我希望能够晋升,最主要还是因为钱,对比同事我钱太少了,我不甘啊【去年的晋升毫无意外还是g-,但是给我安排了一个新活,没想到又是个坑,好在今年绩效不错,不过也不打算继续待了 更多的还是成长方面的原因,感觉很难在作出成绩了】
--- 今年的回顾:
1. flomo上的大量投入:总感觉自己摄入太多,而输出太少。很多东西多问自己四次为什么就可以看出掌握程度,总之这是一款不错的关注 自省的工具。
2. 掘金创作:一篇文章蹭了热度很惊讶,其余的就很少发表了,不止一次的想过 文章发布到社区的目的是为了什么,至今没有好的答案,就存在自己个人的知识库里吧
3. 关于求职:今年年中 开始想跳槽,花费了不少时间在学习求职相关的东西,也花了不少时间总结了在公司做的有意义的事情,输出了一篇文章:面试半个月后的一些想法(juejin.cn),面试情况比较满意,但是只是想法,所以没有跳,今年可能会落实到行动上了。
写不下了,继续在下面写。。。。展开
等人赞过419 - 极客时间 编译原理之美
收获:针对java高级语言的语义分析,理解了以前书上看到的的“语义分析阶段是符号化的过程”这句话
笔记:
语义分析会扫描ast,识别出代码中自定义的class类型并集中放在一个集合中(class在这个阶段被当做一个scope提供出当前类可使用的变量方法等),这样是为了让代码中任意位置都可以使用这个类的地方方便做变量类型消解(比如a=new A()后续使用a.获取变量调用方法的时候需要知道这个A类是否满足这个调用)
这里使用的上下文有关语法是因为不同高级语言的修饰符,访问范围是不同的,因此这里需要大量的上下文(也就是这个ast中的其他节点)才能够识别展开等人赞过413 - 封装的语法特性通过在语义分析阶段对特定符号处理实现(访问非法变量,方法等提前至编译期抛出)
• 符号就是ast中的节点,单独一个节点无法提供其他信息因此需要解析节点获取相应的信息做处理。
• 语法分析阶段使用上下文无关语法产生ast,语义分析阶段通过生成的ast节点,使用上下文有关语法对其进行转换字节码(上下文有关意味着要预读取更多的节点并解析这些节点。
• 最经典的就是作用域的范围还有对变量的赋值操作检测类型是否符合,
• 还有最重要的就是对自定义类型消解,当声明自定义类型变量的时候,并不知道这个这个自定义类型有哪些成员,成员引用和方法调用是否正常引用
如class类ast节点,函数ast节点(栈帧作用域的概念解析ast生成对应class字节码的特定处理展开赞过评论3 - 语法阶段 文法规则匹配生成ast问题
此处的文法规则不是词法分析阶段的正则文法因为正则文法不能够表示复杂的ast,所以此处用的是上下文无关文法(和正则文法最大的区别是可以递归调用,比如加法乘法嵌套这种复杂语法就需要递归解析匹配)。上下文无关是因为预读取的token数量太少这个阶段只能够产出ast,由于token数量过少因此上下文信息也少所以也叫上下文无关文法。(对应的上下文有关是在语义分析阶段这个阶段会读取大量token信息也就是上下文信息,这个阶段主要是ast的优化因此有了更多的信息才能进行更多优化,ps:很类似虚拟机根据运行的性能信息进行编译为本地机器码的操作)
左递归问题:匹配加法文法时由于第二个文法的第一个条件也是加法文法因此只要第一个文法满足,再次匹配第二条文法节点时又会递归判断是否是加法文法,第二次也如次,由于是第二个文法的第一个条件所以也叫左递归。
解决:原因是第二条文法规则里面第一个条件和主文法重复第一个条件就是递归调用,因此陷入了死循环。破解就是在匹配文法时加上前置条件而不是一开始就是递归。将递归滞后加入前置判断就可以解决。(比如第二条文法结构匹配时只有第一个条件满足才会递归而不是无条件递归)
根源无条件递归,解决加入条件再递归。
由于加入了条件因此文法匹配规则发生变化,对于其他的规则匹配就会造成影响(比如ast顺序错乱等问题)展开评论点赞
,boss上没多少人回我,想在掘金试试![[看]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_97.39cdc9f.png)