对编译器理解到什么程度才能对编程有帮助!!!
我发现程序是一个相互关系的结合体,重要的地方很多,编译器对程序的理解和认识很重要,我现在的问题就是自己如何去认识编译器,并且根据编译器的习惯和要求去合适,并且合理的编写程序,实现效率和实践的高效~
比如:c语言的主要编译器厂商有那些?Turbo C应该算一个吧!而且现在的编译器好像也不是完全按照标准C进行动作的,有些编译器会理解一些C++的东西作为他们理解的C的扩展,比如Const,当然在标准C里面是没有这样的,只是编译器理解!
现在,我想请教各位如下几个问题:
1. 编译器是如何跟踪变量的读,写属性的,比如是如何设置某些变量是只读的,而有些是可读可写的哪?我知道他们里面好像会生成一个所有变量的属性表,作为对整个程序的变量的处理依据!是不是这样?
2. 他们对关键子的处理,比如registor,inline,volatile,static等等的处理方式是什么样子的?
3. 还有就是对同一个语言,C,我们有理由相信在同一个问题的处理方式和结果上,可能每一个编译器厂商提供的编译器是不同的,而且也有传说,C的标准的制定其实最后还是得靠编译器厂商得接受和在编译器里面支持才能通过得!市场决定了学术呀!不知道是不是这样得。
请教大侠们,小弟也在学习中,希望了解,学习编译器得相关知识,达到编程得合适和合理!谢谢指教!如果仅仅从编程应用得角度去学习编译器,应该学习那些东西?有什么资料参考嘛?
[解决办法]
turbo C都20年了
用新版本的gcc或者vs2005,或者最新版的bcb吧
至于如何处理的一般不需要知道,了解好C标准就可以了.
[解决办法]
如果你不做编译器,没有必要为了编出好程序而去学编译器,很多书可以指导你如何写高效的程序.
别走弯路,程序的效率固然重要,但是程序质量和维护性,扩展性才是应该作为重点的.
[解决办法]
网上找些有关笔译原来的资料,稍微浏览一下就可以了,编译器的实现太复杂了,每个厂商的实现都有些不同。
词法分析-语法分析-语义分析-代码优化-代码生成-链接
[解决办法]
从应用的角度来说
看编译器不如看链接器