字节跳动测试开发4轮面试_洛丽塔的胡言乱语(一):字节跳动测试开发面试题目整理...

又是一年春招季,我的某位友人去字节跳动应聘测试开发岗位,却在面试中被问了许许多多跟测试开发关联不大的问题。这些问题中,有一些问题我能回答出来,但更多的问题却是似是而非。趁着今天休息,我整理了一些面试题目和答案,供日后翻阅。

笔者水平有限,如有错误或疏漏欢迎指出。

(PS:面试官的面试题目往往跟简历内容关系很大,因此某些问题里涉及的知识可能是你完全没有学过,又不会写进简历里的)请说一下你对编译器和编译过程的理解,如果你们学校开设过编译原理必修课,请介绍一下这个课程的实验体系。

主观性很强的问题。可以回答得很简单,也可以很深入。

编译器:将源代码“翻译”成目标代码(多为二进制机器码)的程序。

编译过程:词法分析、语法分析、语义分析与中间代码生成、代码优化、生成目标代码。

普通的学生党答到这里应该就可以了,但如果更深层次也可以在编译过程中回答诸如(以C/CPP举例)“确定标准库与头文件的位置”、“头文件预编译”、“确定源码文件之间的依赖关系”等等。词法分析和语法分析的输出是什么?

词法分析的输出:Token

语法分析的输出:语法树你对语法树的理解是什么?请描述一个条件语句的语法树。

又是一个很宽泛的问题。

语法树:一种表达式/语句的语法推导的中间表示形式,树形结构。

之后还可以说一说抽象语法树之类的。

条件语句的语法树:if(a>b) a=a+b编译过程中如何解决二义性问题?

通过人为添加语法规则外的约束,比如规定运算符优先级。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值