导航:首页 > 源码编译 > 编译后程序块过大不适合

编译后程序块过大不适合

发布时间:2024-11-26 04:49:54

㈠ 本科独立用C语言完成没有优化的C语言编译器属于什么水平

我觉得水平还是很高的,但意义恐怕不大。编译器技术是非常成熟的领域,而且由于应用场景的限
制实时,复杂的算法已经自动出局了,你可选的东西是有限的。编译器可能有很多实现的形
式,虚拟机/解释器/静态编译器 等,也有成熟的开源实现。作为本科生,而非专门研究该分支的学生,应该合理分配自己学习的时间,如果做这个编译器就干
掉了大半年,那计网和OS这些课程该咋办? 

我知道很多人会认为没有做编译器优化特指中段优化,不考虑机器码上的优化比较划水。但编
译器优化是一个很复杂的东西:首先它和你用的IR表示有关而且是强烈耦合,SSA IR基本还
好,有开源代码和文献记载,你想要的都能在网上挖到但这怎么体现你的水平是吧。你
要考虑编译器的性能,尽管编译器的后端优化基本上可以纳入到某种PEabstract interpretation的
范畴中。

要不然你可以通过编写插件的方式白嫖例如visual studio code这类软
件的强大编辑功能,如果你写的不是c compiler,你也可以尽量把语法设计得很像c,这样你又能进一步
白嫖其强大的intellisense code,当然仍然有不少人或者应该说团队达到了这一步,到这里,应该卷死
了99.99%的同行应该毫无问题。

㈡ keil编译后code的大小问题

这个很简单,首先先说最后一条,你涉及到了小数,也就是浮点数的计算,在所有的单片机中,有的带有浮点数计算,比如高级的ARM,有些不带,凡是不带浮点数硬件计算模块的,都要通过语言来处理,浮点数的计算是非常复杂的,所以,最后一个代码最大,当然,结果也最精确。
再说第一个,为什么会最小,因为单片机会先计算 625/10000,你认为结果是多少?0.0625?
错,如果你的res是浮点型的,那么,计算的结果可能是 0.0625,如果你的res是整形的,那么,计算的结果是0,而这里,我敢肯定,你的res是整形的,相当于再计算 tem = res*0,结果是0,也就是说,你第一条是个错误的,得到的结果恒0
而第2条语句,先是计算 res*625,再去计算除法,这样,不会出现常数结果,所以耗时比第一条语句大。
如果你的结果要求比较准确,我建议你用第三条语句,虽然费时间。
另外,你完全可以用查表法来完成,而不必要用浮点数计算,毕竟51单片机的能力比较差。

㈢ 用keil编译51程序时,下面的Program Size: data=47.0 xdata=0 code=3092,是什么意思各个值允许最大是多少

data=47.0 编译器编译后,程序总共需要占用47字节的片内RAM空间。注意这个大小仅仅是累加而已,并未考虑各个块之间的空隙,也就是说实际占用的RAM空间可能多于此数值。
xdata=0 程序未使用片外RAM(映射)空间
code=3092 编译器编译出的各个代码块总共大小为3092字节。与前面的data一样,由于各个块之间可能存在空隙,因此实际生成的代码大小可能多于此数值。

阅读全文

与编译后程序块过大不适合相关的资料

热点内容
nb1111y压缩机性能数据 浏览:548
下一代编译器 浏览:130
用什么app可以查产品批号 浏览:435
python自动补齐 浏览:903
苹果wifi安卓怎么连接不上 浏览:933
为什么有的app只能用苹果支付 浏览:174
手游云顶文件夹 浏览:936
msvc和mingw都是编译器吗 浏览:424
数控机床编程解析 浏览:385
新老鸟虚拟资源网解压码 浏览:558
如何用域用户登录ftp服务器 浏览:22
如何将读书郎平板升级安卓系统 浏览:339
XC16编译器有免费的吗 浏览:499
编译和程序编辑 浏览:848
androidv4和v7 浏览:714
iphoneapp怎么从文件夹安装 浏览:22
去掉加密平板电脑 浏览:378
二叉树用什么编译器写 浏览:325
手机除了主板还有什么app 浏览:183
如何还原在服务器上删除的文件 浏览:852