我该去做编译器的语义分析吗?

zaixiankaifa 2016-05-09 08:08:40
今早去面试一家公司,老板说是做一个开发工具,这个工具就是用来做编译器的语义分析(大概意思是这样,具体没接触过没参与过我还真的不清楚),那个编译器是一个老外十几年前写的,源码是十万行,没文档没注释;试用期3个月,但老板希望我一个月左右看懂源码。然后我就有个顾虑,编译器的职位在市面上都很少,即使这个东西学会了(以我的资质估计不敢说完全学会,最多学会一点吧,龙书看不懂),对以后就业会不会有局限性或者工作机会很少?



...全文
326 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lm_whales 2016-05-10
  • 打赏
  • 举报
回复
你能够稍微修改一点,或者整理出点东西,或者能够给出点评价 估计老板就觉得你还行了,那么老板就应该不会放你走了 真正做起来,别说一个月,三个月只怕也不够,但是你可以一步一步来,只要不抓瞎 让老板看出希望,你就可以继续下去了 痛苦吗,这应该少不了,毕竟编译器不是玩的
ri_aje 2016-05-10
  • 打赏
  • 举报
回复
维护老代码很痛苦。 维护老编译器更痛苦。
用户 昵称 2016-05-10
  • 打赏
  • 举报
回复
会了的话不会影响你未来工作的局限性,你会发现你会写出更好的代码。
zaixiankaifa 2016-05-10
  • 打赏
  • 举报
回复
引用 6 楼 ri_aje 的回复:
换个角度想,这么难/重要的活,这老板就找一新手,只给一个月的时间上手,还没有老手带,老手都去哪了?老板对这活还有干技术工作的什么态度?
这个编译器是用C语言写的,当初写这个编译器的老外不在咯。。。。。我这一新手连龙书都没看过也没弄过编译器,不知道老板咋想的,唉
ri_aje 2016-05-10
  • 打赏
  • 举报
回复
换个角度想,这么难/重要的活,这老板就找一新手,只给一个月的时间上手,还没有老手带,老手都去哪了?老板对这活还有干技术工作的什么态度?
bsnry 2016-05-10
  • 打赏
  • 举报
回复
引用 6 楼 ri_aje 的回复:
换个角度想,这么难/重要的活,这老板就找一新手,只给一个月的时间上手,还没有老手带,老手都去哪了?老板对这活还有干技术工作的什么态度?
++ 我修改过 某开源库源码,蛋疼很大,后来我没搞定,导致离职, 老板说,这种东西,只有几个晚上就搞定, 他也是做研发的, 当然是吹牛逼!!!!!!! 接这种活,慎重。 这些东西可不是百度查个api就搞定的
yshuise 2016-05-10
  • 打赏
  • 举报
回复
果断拒绝
mLee79 2016-05-10
  • 打赏
  • 举报
回复
一般的编译器也不麻烦... 会编译原理的程序员看问题的高度就不一样... 可以一试, 一个月差不多够入门了..
赵4老师 2016-05-10
  • 打赏
  • 举报
回复
参考Tiny C Compiler源代码。 如果我说 参考g++源代码。 或者说 LEX+YACC FLEX+BISON 啥的,那就也有慷他人之慨,和炫他人之技的嫌疑了。
赵4老师 2016-05-10
  • 打赏
  • 举报
回复
我觉得1楼是来炫技的。
灌水号 2016-05-09
  • 打赏
  • 举报
回复
一个月够呛。
lqbk1 2016-05-09
  • 打赏
  • 举报
回复
学得会的话会非常抢手 不过没有自信学会又没有人带的话,劝楼主三思
小灸舞 2016-05-09
  • 打赏
  • 举报
回复
通过了解编译器,你可以很清晰地知道哪些优化是编译器可以优化的,和哪些是编译器不能进行优化的,无论他们看起来是多么的合理和简单。你将会学到哪类代码通常会建造最佳代码块,为什么会这样和这些代码做了什么。你会知道为什么一些代码可以拥有更好的性能,比如使用一半寄存器组缓存滤波系数一半寄存器组缓存样本的FIR滤波器,它和使用普通优化器实现的不一样。你和你喜欢的编译器是一个能创建快速代码的团队,你可以使用它高效地工作,或者使用提前优化等无意义的技巧来修改它。
华中科技大学 编译原理 面向过程的C语言的编译器设计 功能包括:词法分析和语法分析、语义分析、中间代码生成的 源码 题目:c--语言编译器设计与实现(请为自己的编译器命名) 源语言定义:或采用教材中Decaf语言,或采用C语言(或C++语言或C#语言或JAVA语言)部分关键语法规则。源语言要求至少包含的语言成分如下: 数据类型至少包括char类型、int类型和float类型 基本运算至少包括算术运算、比较运算、自增自减运算和复合赋值运算 控制语句至少包括if语句和while语句 实验内容:完整可运行的自定义语言编译器 实验一:词法语法分析器的设计与实现:建议使用词法语法生成工具如:LEX/FLEX ,YACC/BISON等专业工具完成。 实验二:符号表的设计与属性计算:设计符号表数据结构和关键管理功能。动态展现符号表变化过程。无论语法分析使用工具还是自己设计,都必须对符号表进行设计和管理,属性计算可以语义子程序实现。 实验三:语义分析和中间代码生成:生成抽象语法树,进行语义分析,实现类型检查和控制语句目标地址计算,生成中间代码。中间代码的形式可以采用不同形式,但实验中要求定义自己的中间形式。 实验四:目标代码生成:在前三个实验的基础上实现目标代码生成。也可以使用工具如LLVM来生成目标代码。

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧