a = 5 大概率不分配内存。 有可能直接就用inline 5 或者在栈上内存, 或者分配了寄存器。 第二个问题没有看懂。 ted.hanks 发表于 2022-08-24 10:58
第二个问题可以用hashmap nitride 发表于 2022-08-24 11:52
弄明白这两个问题就可以拿50万大包啦,马公赚钱真容易 50cents 发表于 2022-08-24 16:42
请懂行的sheld some lights 在编译a = 5 这个赋值语句的时候,怎么新创建一个变量和开辟一块内存,并且把5这个值赋给它? 还有一个问题。当你编写一个自己的语言的时候,比如python。 当里面的函数个数比较多的时候,比如sin,cos,print,等等这些程序自保留函数。 怎么能搜索的快一点? 用switch case好吗? gooog 发表于 2022-08-24 10:48
在编译a = 5 这个赋值语句的时候,怎么新创建一个变量和开辟一块内存,并且把5这个值赋给它?
还有一个问题。当你编写一个自己的语言的时候,比如python。 当里面的函数个数比较多的时候,比如sin,cos,print,等等这些程序自保留函数。
怎么能搜索的快一点? 用switch case好吗?
第二个问题没有看懂。
第二个问题就是当你写了无数个函数,sin,cos,print,。。。。。。等等。
你如何能快速的判断用户的代码里面是哪个函数?假设用户的代码是 print("hello world"); 怎么能快速判断出这个函数是print?
多谢!
不会吧。自定义函数,你怎么编译呢?
自己去学编译原理把。至少知道什么是语法树,什么是ssa表达
几个常识:
编译以后没有变量,只有寄存器和地址
a=5会用constant folding去除,以一个立即数代替
第二个问题没看懂。谁搜索什么东西?