程序员的自我修养——编译,装载与库读书笔记

周末读了一本同学推荐的好书,上午抽空整理了下读书笔记,简单分享下,后续不断更

学习编译原理的好处

编译原理是一门介绍程序设计语言和编译器的基本原理和技术的课程。学习编译原理可以帮助我们更好的了解代码是如何被转换为可执行文件的,以及可执行文件是如何被操作系统加载和运行的。这样可以让我们更好地掌握编译器、链接器和操作系统的功能和限制,优化代码性能和资源利用,解决一些复杂的编译、链接和运行时错误。

多数人都会觉得编译原理这门课很枯燥,很难,在实际场景用处少。通常都会觉得我只是想用一门语言来写一些程序,解决一些问题,这让人不禁发问,为什么要去了解编译器是怎么工作的?有必要去关心不同平台和语言之间的差异么?为什么要去学习一些抽象的概念和方法呢?

对于以上,这里先提几个问题:

1、为什么在Windows上编译的程序不能直接在Linux上运行?

2、在C语言中使用指针会比在 Java语言中使用引用更容易出错?

3、为什么有时候写出来的代码和执行起来的结果不一样?

答案在文末

学习好了编译原理,可以轻易知晓如何配合编译器写出高效易读的代码。能够使用和改进现有的编程语言,编译原理让我们了解不同语言的特点和优缺点,以及如何根据不同的场景选择合适的语言。同时,我们也可以对现有的语言进行扩展或优化,例如添加新的特性或提高性能。能够理解和利用编译器的优化技术,编译原理让我们知道编译器是如何对代码进行各种局部优化和全局优化的,例如常量折叠、循环展开、死代码消除等。我们可以根据这些技术来配合编译器写出高效易读的代码。

一、线程调度

二、程序的编译与链接

三、目标文件中有什么

回答:1、因为它们使用了不同的文件格式和动态链接机制。如果你学习了编译原理,你就可以了解这些差异,并且知道如何进行跨平台开发。2、因为它们涉及了不同的内存管理和垃圾回收机制。如果你学习了编译原理,你就可以了解这些机制,并且知道如何避免内存泄漏和野指针等问题。3、因为编译器会对代码进行优化,有时候会改变代码的执行顺序或者删除一些看似无用的代码。

#牛客创作充电计划##读书笔记##程序员的自我修养#
全部评论
程序员的自我修养就是在不断的修改bug
点赞 回复 分享
发布于 2023-03-27 21:21 云南
追更大佬!
点赞 回复 分享
发布于 2023-03-27 18:42 广东

相关推荐

2025-12-12 19:01
南京航空航天大学 C++
秋招没咋投,准备 wxg 转正之后摆烂了。结果不堪字节 HR 的骚扰还是面了一下字节。之前想去字节的时候怎么面都挂。现在想着随便面一下结果三面技术面都意外顺利还有加面。十月中旬字节发了意向,wxg 转正结果无响应。十月底字节拉了保温群,wxg 口头通过,系统显示考核中。十一月初和字节 ld 交流之后得知 base 居然能选海外,甚至能小 wlb 一下,wxg 无响应无人联系。十一月中旬把字节 base 转到了海外,wxg 流程灰了,一问超时忘处理了,过两天又变考核中了。十一月下旬字节换了海外 HR 对接,问了期望薪资,wxg 考核终于显示通过,无 HR 保温,无其他保温。十一月底给字节报了个天价,想吓吓他们,同时告诉微信字节要开了,微信无响应。同样十一月底字节 HR 告诉我确实给不到那么高,但是能拿期权补上,问能不能接受。微信无响应。同样十一月底字节 HR 告知了具体方案,符合预期。 微信无响应。十二月上旬催 wxg 不开我就盲拒了,wxg HR 火急火燎的打电话问情况,问期望。我给了一个不算夸张的总包数字,因为今年市场在涨,过了三天还不联系我,我再催,约时间下午打电话,非得在我给出的数字上压下去几万,微信又不差这点,为什么不能满足我,让我没有拒绝的理由呢?一番纠结抗争,求稳还是追求挑战,最终选择接受迎接新的挑战,因为堂吉诃德永远不会停下脚步!回想起来,在 wxg 谈薪的阶段,我认为并没有给予我一定的重视,即使 HR 表示我在实习期间的表现和之前的面评都很靠前。也没有感觉到想要争取我,虽然我表示拒了 offer 之后要给我加面委定 t6 再涨,但我三个月没面试让我面面委那就是白给,还是算了。有缘再见了我亲爱的 wxg,再见了曾经的梦中情厂,再见亲爱的 mt,再见亲爱的朋友们。也再见,北京的一切。我想润了。秋招结束,卸载牛客,下一个三年,下一个五年,下一个十年后再来看看。
面试中的大熊猫爱吃薯...:我嫉妒得狗眼通红
点赞 评论 收藏
分享
评论
2
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务