用java写一个编译器(1)基本知识

   由于想研究一些底层的东西,就学习了编译原理。无意中在b站看到了coding迪斯尼老师的 java写编译器的课程,学完真让我收益匪浅。但学归学,终究还是要动手实操一下的。先走一遍知识脉络。详细的可看coding迪斯尼老师的博客(tyler_download

https://blog.csdn.net/tyler_download/article/details/50708807

1.概述:

       编译器就是将高级语言编译(翻译)成汇编语言的过程

2.词法分析在这个过程中干了些啥:============>给每个符号(单词)打上标签。这样计算机就能认识每个单词(能辨别那个是动词,那个是名词,那个是形容词,介词。。。。。)       

词法分析:                                                                             语法分析:

                                     

.3.语法分析:在词法分析的基础上(知道哪个是乘号,那个是加号,那个是左括号。。。),根据语法规则(先执行啥,后执行啥==========一个算法式子里:规定的语法就是先执行括号里面的,在执行乘除,然后加减)来解释并交给cpu去执行(计算)用户传来的文本(运算表达式)。计算结果是对的,就说明它正确读懂了这个句子。==============如上图:由词法分析计算机先知道了这个字符串里有数字1,2,3,有运算符+和*,由词法分析,计算机知道了:我要先给数字1,2,3分配内存(放到操作栈里面),再计算2*3的值,最好才执行加1的操作

猜你喜欢

转载自blog.csdn.net/qq_41063141/article/details/88905996