littlebot
Published on 2025-04-07 / 0 Visits
0

【源码】基于C语言的小型C解释器及哈希计算工具

项目简介

本项目包含两部分重要内容。其一为 PicoC,这是一个小型的 C 解释器,最初用于无人机机载飞行系统的脚本语言,也适用于其他机器人、嵌入式和非嵌入式应用。其核心 C 源代码约 3500 行,并非 ISO C 的完整实现,但具备基本要素,编译后占用代码和数据空间少,能在小型嵌入式设备中良好运行,且易于移植到新目标平台。其二是一个 C 语言编写的哈希计算程序,主要使用 CRC32 算法,可计算并打印全局变量的 CRC32 哈希值,用于验证代码执行过程中变量值的变化,是测试或验证程序正确性的工具。

项目的主要特性和功能

PicoC 部分

  • 体积小巧:核心代码量少,编译后占用空间小,适合小型嵌入式设备。
  • 功能基本:虽非完整的 ISO C 实现,但具备 C 语言基本要素。
  • 易于移植:已在多种处理器上测试,修改相关文件可方便移植到新目标平台。
  • 功能冻结:为保持小巧,不再添加更多主要功能。

哈希计算部分

  • CRC32 算法:使用 CRC32 算法计算给定数据的哈希值。
  • 状态跟踪:在特定语句执行前后计算和打印哈希值,跟踪程序执行过程中的状态变化。
  • 验证工具:可用于验证代码执行过程中变量值的变化,辅助测试和验证程序正确性。

安装使用步骤

PicoC 编译与测试

  1. 在 UNIX/Linux/POSIX 主机上编译 PicoC,在项目根目录下输入 make 命令。
  2. 运行测试套件,在项目根目录下输入 make test 命令。

PicoC 移植步骤

  1. platform.h 中选择平台类型并指定平台所需的包含文件等,该文件默认设置为 UNIX_HOST,需根据目标平台指定自己的主机设置。
  2. platform_XXX.c 中编写一些 I/O 例程,以便编译器能在目标平台上工作,如如何向控制台写入字符等。
  3. platform_library.c 中放入希望提供给用户程序的函数库。
  4. 根据需求修改 picoc.c 中的主程序,以将程序加载到系统中。

哈希计算程序使用

直接编译运行 .\tests\csmith\rand99.c 文件,程序将按逻辑计算并打印全局变量的 CRC32 哈希值,辅助验证程序执行过程中变量值的变化。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】