免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 54522 | 回复: 62

[其他] 程序员有必要学习程序编译原理吗,不服来辩! [复制链接]

论坛徽章:
19
处女座
日期:2014-07-18 14:50:5415-16赛季CBA联赛之北京
日期:2019-09-16 15:39:1415-16赛季CBA联赛之上海
日期:2019-09-15 15:29:0415-16赛季CBA联赛之山西
日期:2017-03-09 10:58:232017金鸡报晓
日期:2017-02-08 10:33:212017金鸡报晓
日期:2017-01-10 15:13:2915-16赛季CBA联赛之深圳
日期:2016-12-15 17:55:53C
日期:2016-10-25 16:00:1515-16赛季CBA联赛之新疆
日期:2016-07-21 14:02:0415-16赛季CBA联赛之江苏
日期:2016-06-30 12:15:04shanzhi
日期:2016-06-17 17:59:31平安夜徽章
日期:2015-12-26 00:06:30
发表于 2015-07-07 14:26 来自手机 |显示全部楼层
获奖名单已公布:http://bbs.chinaunix.net/thread-4184553-1-1.html

话题背景

程序员是否应该学习编译原理,这是一个老生常谈的话题。我是一个非科班出身的程序员,深感很多同是电子相关专业出身的程序员在这方面的不足,例如通信、控制、电气等专业,往往只知道使用IDE或者Tool进行编程,但是却很不了解这些工具的本质。有些时候甚至很难习惯在没有IDE的环境下编程,也不清楚如何写出高性能的程序。只关注程序的编译结果,不关心编译的本质,导致很多时候只知其然不知其所以然。

程序员是否有必要学习程序编译原理,欢迎大家畅所欲言。




讨论话题
1、程序员应该学习编译原理吗?有什么作用,说出你的观点。
2、你是否研究过自己所使用的编译器?
3、是否清楚程序编译的整个过程?
4、分享一个自己处理过的棘手的编译错误。
5、分享自己学习程序编译相关技术的收获。
6、分享学习程序编译相关的原理对自己写程序的帮助。



讨论时间
2015年07月08日--2015年07月31日



活动奖励
活动结束后将选取4名讨论精彩的童鞋,每人赠送图书《高级C/C++编译技术》一本作为奖励



奖品简介
zcover.jpg
原书名:Advanced C and C++ Compiling
作者: (美)米兰·斯特瓦诺维奇(Milan Stevanovic)   
译者: 卢誉声
丛书名: C/C++技术丛书
出版社:机械工业出版社
出版日期:2015 年4月
开本:16开
页码:266
版次:1-1



内容简介

米兰·斯特瓦诺维奇编著的这本《高级C\C 编译技术》从多个角度全面、系统地讲解多任务操作系统中编译、链接、装载与库的内幕和技术细节,为深入理解和掌握系统底层技术提供详实参考和实践指南。与纯粹讲解理论与技术细节的书不同。本书一方面对基本的理论进行了阐述,另一方面则聚焦于C/C 使用静态库和动态库的一些注意事项,并举例说明如何解决实际的链接与装载问题。此外,本书尽量使用通俗易懂的语言来阐述这些知识,并补充了大量示例,避免让读者整天纠结于枯燥的理论。




样章试读
高级C和C 编译技术 迷你书.pdf (6.29 MB, 下载次数: 1732)

论坛徽章:
301
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
发表于 2015-07-07 14:32 |显示全部楼层
那还不如学汇编,更管用

论坛徽章:
0
发表于 2015-07-07 14:36 |显示全部楼层

了解一些会有帮助。特别是语法树AST相关的一些概念,能帮助程序员更好的理解语法。

论坛徽章:
36
子鼠
日期:2013-08-28 22:23:29黄金圣斗士
日期:2015-12-01 11:37:51程序设计版块每日发帖之星
日期:2015-12-14 06:20:00CU十四周年纪念徽章
日期:2015-12-22 16:50:40IT运维版块每日发帖之星
日期:2016-01-25 06:20:0015-16赛季CBA联赛之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之福建
日期:2016-04-07 11:25:2215-16赛季CBA联赛之青岛
日期:2016-04-29 18:02:5915-16赛季CBA联赛之北控
日期:2016-06-20 17:38:50技术图书徽章
日期:2016-07-19 13:54:03程序设计版块每日发帖之星
日期:2016-08-21 06:20:00
发表于 2015-07-07 14:39 |显示全部楼层
看干什么吧,做底层的了解多些好,做web前端,不是虐人心吗。。

没啥编译错误印象深刻的有个别人的运行bug记忆犹新,大概原因是

.c里  char xxx[2][3];
.h里 extern char xxx[3][3];

几个人围着找了两三天

论坛徽章:
6
2015年辞旧岁徽章
日期:2015-03-05 16:13:092015年迎新春徽章
日期:2015-03-05 16:13:092015小元宵徽章
日期:2015-03-06 15:58:1815-16赛季CBA联赛之浙江
日期:2016-11-05 14:38:4115-16赛季CBA联赛之新疆
日期:2016-11-11 18:38:06
发表于 2015-07-07 21:15 |显示全部楼层
想学的就是缘份到了,不想学就是缘份没到。

论坛徽章:
36
子鼠
日期:2013-08-28 22:23:29黄金圣斗士
日期:2015-12-01 11:37:51程序设计版块每日发帖之星
日期:2015-12-14 06:20:00CU十四周年纪念徽章
日期:2015-12-22 16:50:40IT运维版块每日发帖之星
日期:2016-01-25 06:20:0015-16赛季CBA联赛之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之福建
日期:2016-04-07 11:25:2215-16赛季CBA联赛之青岛
日期:2016-04-29 18:02:5915-16赛季CBA联赛之北控
日期:2016-06-20 17:38:50技术图书徽章
日期:2016-07-19 13:54:03程序设计版块每日发帖之星
日期:2016-08-21 06:20:00
发表于 2015-07-07 21:53 |显示全部楼层
回复 5# 爻易


    确实!

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
发表于 2015-07-08 09:11 |显示全部楼层
这个要看是哪种语言的程序员,底层的语言,特别是c语言,肯定要学编译原理,否则就是知识有缺陷,遇到性能问题,或者其他莫名奇妙的问题,就会无从下手。实际上不仅编译原理,汇编也要懂一些,很多底层的编程中就夹杂着汇编语言。
像php、perl、vb之类的高级语言,编译原理帮助应该不是太大。

论坛徽章:
40
水瓶座
日期:2013-08-15 11:26:422015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之乌兹别克斯坦
日期:2015-03-27 14:01:172015年亚洲杯之约旦
日期:2015-03-31 15:06:442015亚冠之首尔
日期:2015-06-16 23:24:37IT运维版块每日发帖之星
日期:2015-07-01 22:20:002015亚冠之德黑兰石油
日期:2015-07-08 09:32:07IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-10-10 06:20:00IT运维版块每日发帖之星
日期:2015-10-11 06:20:00IT运维版块每日发帖之星
日期:2015-11-10 06:20:00
发表于 2015-07-08 09:30 |显示全部楼层
嗯 赞同

高层编程语言比如PHP这样的 的确没啥帮助

lsstarboy 发表于 2015-07-08 09:11
这个要看是哪种语言的程序员,底层的语言,特别是c语言,肯定要学编译原理,否则就是知识有缺陷,遇到性能问 ...

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:48:31平安夜徽章
日期:2015-12-26 00:06:30C
日期:2016-10-25 16:26:25
发表于 2015-07-08 09:35 |显示全部楼层
学好php、android、ios,走遍天下都不怕。编译原理忘的只剩点理论了。

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
发表于 2015-07-08 09:47 |显示全部楼层
java跟编译原理关系密切吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2021中国系统架构师大会

【数字转型 架构重塑】2021年5月20日-22日第十三届中国系统架构师大会将在云端进行网络直播。

大会为期3天的议程,涉及20+专场,近120个主题,完整迁移到线上进行网络直播对会议组织来说绝非易事;但考虑到云端会议的直播形式可以实现全国各地技术爱好者的参与,也使ITPUB作为技术共享交流平台得到更好的普及,我们决定迎难而上。
http://sacc.it168.com/


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP