主题
编译原理
这些题与问题库里的是同一批,这里按各自主要考察的能力分组。
12 道问题
A · 专业解题与实现12
- 宏和代码生成经过多层展开后,编译错误只指向生成文件,使用者无法定位原始代码。你会怎样设计诊断信息?
- 增量编译很快,但改动共享头文件后偶尔没有重新编译所有依赖目标。你会怎样定位依赖追踪缺口?
- 编译器升级改变了结构体布局或调用约定,但部分插件仍按旧 ABI 构建。你会怎样管理兼容与迁移?
- 从你写下一行代码到 CPU 执行它,中间发生了什么?选一门你熟悉的语言,讲讲主要阶段。
- 实现一个深度相等函数,输入可能包含嵌套数组、共享引用和循环引用。请先定义相等语义,再说明如何避免无限递归与错误地混淆引用结构。
- 实现一个逐块接收 UTF-8 数据的增量日志解析器:输入块可能截断多字节字符、字段顺序变化,也可能包含多条记录或超长单行。请定义解析状态、错误恢复策略和内存上限,并实现可重复解析的核心逻辑。
- 编译器可能重排或消除代码。哪些程序行为允许优化器改变,哪些外部可观察行为必须保持?请用一个并发或 I/O 例子说明。
- 一台机器开始频繁发生 major page fault,同时磁盘 I/O 升高。你会怎样判断工作集变化、内存压力和应用访问模式各自的作用?
- 服务部署到多路CPU机器后,线程在NUMA节点间迁移,内存访问延迟出现波动。你会如何结合CPU亲和性、内存分配和调度行为设计验证?
- 服务完成证书轮换后,短连接正常,但部分客户端在长连接断开后重新连接或恢复会话时握手失败。你会怎样区分证书链、会话恢复、连接池和客户端缓存的影响?
- 移动网络从Wi-Fi切换到蜂窝网络时,部分HTTP/3请求失败但会话仍显示在线。你会如何检查路径迁移、超时和中间网络设备的影响?
- 程序先写入数据文件再更新索引,但断电恢复后索引指向不完整内容。你会如何分析写入顺序、刷盘语义和恢复协议?
当前目标在这里暂无匹配题。 ·