编程中的探索与子程序相关知识解析
1. 探索与研究方向
1.1 编译器动态语义检查成本实验
若能使用提供可选动态语义检查(如数组越界下标、不恰当记录变体使用、悬空或未初始化指针)的编译器,可进行以下实验:
- 测试这些检查为大量进行检查访问的程序执行时间增加了多少开销。
- 尝试不同的优化级别,观察其对检查开销的影响。
1.2 集合管理库包编写
编写一个库包,用于管理从大型基类型(如整数)中抽取元素的集合。需支持成员测试、并集、交集和差集操作。同时思考该包是否从堆中分配内存,若分配,编译器要采取何种措施确保不再使用的空间被回收。
1.3 SETL 语言研究
了解基于集合的编程语言 SETL,列出其内置的集合操作机制,并与其他编程语言的集合功能进行比较。思考 SETL 实现可能使用的数据结构来表示程序中的集合。
1.4 垃圾回收算法研究与实现
- 研究 HotSpot Java 编译器和虚拟机实现的一系列垃圾回收器,包括传统分代回收器、老年代压缩回收器、新生代低暂停时间并行回收器、老年代高吞吐量并行回收器和与主程序并行运行的“大部分并发”老年代回收器。明确每种回收器的使用场景和原因。
- 用 Ada 实现喜欢的垃圾回收算法,或者在 C++ 中实现简化版的 shared_ptr 类(其存储采用垃圾回收),使用模板(泛型)使类能为任意指向类型实例化。
- 实验喜欢的语言实现中垃圾回收的成本,确定使用的回收器类型,尝试创建让其性能表现特别好或特别差的人工程序。
超级会员免费看
订阅专栏 解锁全文

339

被折叠的 条评论
为什么被折叠?



