README(学生版)

CS:APP Data Lab

给学生的指导

你的目标是修改你的 bits.c 副本,以便它通过 btest 中的所有测试,并且不违反任何代码准则。

0. 文件

文件名

说明

Makefile

构建 btest、fshow 和 ishow

README

本文件

bits.c

你将要修改和提交的文件

bits.h

头文件

btest.c

btest 主程序

btest.h

用于构建 btest

decl.c

用于构建 btest

tests.c

用于构建 btest

tests-header.c

用于构建 btest

dlc*

规则检查编译器的二进制文件(data lab 编译器)

driver.pl*

使用 btest 和 dlc 来为 bits.c 自动评分的驱动程序

Driverhdrs.pm

头文件,用于可选的“击败教授”比赛

fshow.c

实用代码,用于检查浮点表示

ishow.c

实用代码,用于检查整数表示

1. 修改 bits.c 并检查它是否符合 dlc 的要求

重要:在你开始之前,请仔细阅读 bits.c 文件中的说明。说明中给出了代码规则,如果你想获得全部分数,你需要遵守它们。

使用 dlc 编译器(./dlc)自动检查 bits.c 版本是否符合编码准则:

如果代码没有问题,dlc 将以静默方式返回。否则,它会打印消息,标记出问题。使用 -e 参数运行 dlc:

可让 dlc 打印每个函数使用的运算符数目。

一旦有了合法解答,你就可以使用 ./btest 程序测试它的正确性。

2. 使用 btest 测试

此目录中的 Makefile 使用附加代码编译 bits.c 版本,以创建名为 btest 的程序(或测试工具)。

要编译并运行 btest 程序,请键入:

每次更改 bits.c 程序时,都需要重新编译 btest。当从一个平台迁移到另一个平台时,你会想删除旧版本 btest 并生成一个新版本。使用以下命令:

Btest 通过在每个函数上运行数百万个测试用例来测试代码的正确性。它测试了大范围的边缘用例,比如整数谜题的 Tmin(最小有符号数) 和 0,浮点谜题的 0,无限大(inf),以及非规范化和规范化数字之间的边界。当 btest 检测到某个函数中的错误时,它会打印出失败的测试、不正确的结果和预期的结果,然后终止对该函数的测试。

以下是 btest 的命令行选项:

样例:

测试所有功能的正确性并打印出错误消息:

以紧凑的形式测试所有函数,不含错误消息:

测试函数 foo 的正确性:

使用特定参数测试函数 foo 的正确性:

btest 不会检查你的代码是否符合代码准则,需使用 dlc。

3. 帮助程序

我们提供了 ishow 和 fshow 程序,分别帮助你破译整数和浮点表示。每个都以一个十进制或十六进制数作为参数。要构建它们,请键入:

用法样例:

最后更新于