Floating-Point Functions Dataset
收藏arXiv2025-09-05 更新2025-11-24 收录
下载链接:
https://zenodo.org/records/17055623
下载链接
链接失效反馈官方服务:
资源简介:
本数据集为首个大规模实证研究,专注于静态类型语言中浮点运算的使用情况,数据来源于公共GitHub仓库。研究采用了包括随机抽样和基于代码内在属性过滤在内的先进挖掘技术,以避免偏差。数据集通过在源代码中搜索关键词和分析代码结构来识别浮点运算的使用。该数据集为10百万个真实世界的浮点函数,为构建新基准和评估浮点分析技术奠定了基础,具有高度的代表性,能够为浮点运算自动化推理技术的开发与评估提供支持。
This dataset is the first large-scale empirical study focusing on the usage of floating-point operations in statically typed languages. The data is sourced from public GitHub repositories. The study adopts advanced mining techniques including random sampling and filtering based on inherent code properties to mitigate bias. It identifies the usage of floating-point operations by searching for keywords in source code and analyzing code structures. Comprising 10 million real-world floating-point functions, this dataset lays a solid foundation for establishing new benchmarks and evaluating floating-point analysis technologies, featuring high representativeness that supports both the development and assessment of automated reasoning techniques for floating-point operations.
提供机构:
乌普萨拉大学(瑞典)
创建时间:
2025-09-05
搜集汇总
数据集介绍

构建方式
该数据集构建采用多阶段流水线方法,从GitHub公共仓库中系统性地挖掘静态类型语言的浮点运算代码。通过随机抽样获取初始仓库ID,结合元数据过滤剔除代码量低于50行、项目存续时间不足两个月或无主要语言的仓库。随后基于文件扩展名识别静态类型语言文件,运用正则表达式匹配浮点类型、超越函数及相关关键字,并通过语法解析提取函数结构。为消除偏差,采用词袋模型进行文件级去重,最终从45万余个仓库中筛选出约1010万个浮点函数。
特点
数据集涵盖C、C++、Java等六种主流静态类型语言,呈现真实场景中浮点代码的模块化特征。函数规模普遍精简,参数中位数不超过3个,代码长度集中于数十词范围。控制流结构分析显示条件语句出现频率显著高于循环结构,且二者常形成嵌套组合。超越函数调用比例较低,而特殊值如NaN的引用较为罕见。与FPBench基准相比,本数据集更充分体现了实际代码中条件分支与函数调用的复杂性。
使用方法
研究者可通过解析后的函数元数据开展多维度分析,包括代码规模、控制流深度及关键字分布统计。该数据集支持基于特定结构特征(如循环与条件语句组合)的样本筛选,为浮点分析工具提供评估基准。用户可参照语言分类对比不同编程范式下的浮点运算模式,或结合GSL函数调用数据验证库函数使用频率。数据集配套的配置框架允许自定义关键词集合与文件类型,适应异构研究场景的需求。
背景与挑战
背景概述
浮点函数数据集由瑞典乌普萨拉大学的研究团队于2025年创建,旨在填补对现实世界浮点代码特征认知的空白。该研究通过分析GitHub上45万余个静态类型语言项目,首次大规模实证揭示了浮点运算在嵌入式系统、科学计算等领域的实际应用模式。数据集包含超过1000万个函数样本,其规模与代表性为浮点程序分析技术提供了新的评估基准,推动了自动化推理工具向实际需求靠拢。
当前挑战
该数据集核心挑战在于解决浮点程序自动化推理的泛化性问题。现有技术如静态误差分析受限于小型基准程序,难以处理真实代码中广泛存在的条件分支与循环结构。构建过程中需克服大规模代码采样的偏差风险,通过随机抽样与去重策略消除代码克隆干扰。同时,跨语言关键字检测需平衡覆盖度与精确性,避免注释和字符串文本导致的误判,这对动态类型语言的扩展分析提出了更高要求。
常用场景
经典使用场景
在数值软件工程领域,Floating-Point Functions Dataset为浮点运算分析提供了前所未有的实证基础。该数据集通过系统挖掘GitHub上静态类型语言项目,构建了包含1000万真实世界浮点函数的语料库。研究者可基于此数据集分析浮点代码的结构特征、操作模式和使用频率,为浮点程序分析技术的评估提供具有统计显著性的基准。
实际应用
在工业实践层面,该数据集为开发可靠的数值软件提供了重要参考。嵌入式系统、科学计算和机器学习等领域的开发者可利用此数据集理解常见浮点使用模式,优化数值算法实现。工具开发者则可基于数据集中真实函数的特征分布,设计更具实用价值的浮点误差分析、程序修复和测试生成技术,提升数值软件在安全攸关场景下的可靠性。
衍生相关工作
该数据集已催生多项重要的后续研究。基于其揭示的浮点代码特征,研究者开发了支持条件语句和循环的模块化误差分析技术,如PRECiSA 4.0和Hugo框架。数据集提供的函数级元数据(控制流复杂度、函数调用深度等)为构建具有代表性的基准套件奠定了基础,推动了面向真实使用场景的浮点程序验证、测试和优化方法的革新。
以上内容由遇见数据集搜集并总结生成



