a=5 编译与内存

g
gooog
楼主 (北美华人网)
请懂行的sheld some lights
在编译a = 5 这个赋值语句的时候,怎么新创建一个变量和开辟一块内存,并且把5这个值赋给它?
还有一个问题。当你编写一个自己的语言的时候,比如python。 当里面的函数个数比较多的时候,比如sin,cos,print,等等这些程序自保留函数。
怎么能搜索的快一点? 用switch case好吗?
t
ted.hanks
a = 5 大概率不分配内存。 有可能直接就用inline 5 或者在栈上内存, 或者分配了寄存器。
第二个问题没有看懂。
g
gooog
a = 5 大概率不分配内存。 有可能直接就用inline 5 或者在栈上内存, 或者分配了寄存器。
第二个问题没有看懂。

ted.hanks 发表于 2022-08-24 10:58

第二个问题就是当你写了无数个函数,sin,cos,print,。。。。。。等等。

你如何能快速的判断用户的代码里面是哪个函数?假设用户的代码是 print("hello world"); 怎么能快速判断出这个函数是print?
n
nitride
第二个问题可以用hashmap
n
nickbear
建议楼主系统学习编译原理,零碎的问问题不成体系
w
wdong
这些知识对赚钱没帮助,还不如去研究写网页。
g
gooog
第二个问题可以用hashmap
nitride 发表于 2022-08-24 11:52

多谢!
s
supercleanclear
“编写一个自己的语言”? 楼主上过编译原理之后,大概率不会提这个问题
5
50cents
弄明白这两个问题就可以拿50万大包啦,马公赚钱真容易
g
gooog
弄明白这两个问题就可以拿50万大包啦,马公赚钱真容易
50cents 发表于 2022-08-24 16:42

不会吧。自定义函数,你怎么编译呢?
h
helloterran3
请懂行的sheld some lights
在编译a = 5 这个赋值语句的时候,怎么新创建一个变量和开辟一块内存,并且把5这个值赋给它?
还有一个问题。当你编写一个自己的语言的时候,比如python。 当里面的函数个数比较多的时候,比如sin,cos,print,等等这些程序自保留函数。
怎么能搜索的快一点? 用switch case好吗?
gooog 发表于 2022-08-24 10:48

自己去学编译原理把。至少知道什么是语法树,什么是ssa表达
几个常识:
编译以后没有变量,只有寄存器和地址
a=5会用constant folding去除,以一个立即数代替
第二个问题没看懂。谁搜索什么东西?