首页> 外文会议>Objects, models, components, patterns. >Supporting Compile-Time Debugging and Precise Error Reporting in Meta-programs
【24h】

Supporting Compile-Time Debugging and Precise Error Reporting in Meta-programs

机译:在元程序中支持编译时调试和精确的错误报告

获取原文
获取原文并翻译 | 示例

摘要

Compile-time meta-programming is an advanced language feature enabling to mix programs with definitions that are executed at compile-time and may generate source code to be put in their place. Such definitions are called meta-programs and their actual evaluation constitutes a compilation stage. As meta-programs are also programs, programmers should be supported in handling compile-time and runtime errors, something introducing challenges to the entire tool chain along two lines. Firstly, the source point of a compile error may well be the outcome of a series of compilation stages, thus never appearing within the original program. Effectively, the latter requires a compiler to track down the error chain across all involved stages so as to provide a meaningful, descriptive and precise error report. Secondly, every compilation stage is instantiated by the execution of the respective staged program. Thus, typical full-fledged source-level debugging for any particular stage should be facilitated during the compilation process. Existing implementations suffer in both terms, overall providing poor error messages, while lacking the required support to debug meta-programs of any staging depth. In this paper we firstly outline an implementation of a meta-programming system offering all mentioned facilities. Then, we detail the required amendments to the compilation process. Finally, we discuss the necessary interoperation points between the compiler and the tool-chain (IDE).
机译:编译时元编程是一种高级语言功能,它可以将程序与在编译时执行的定义混合在一起,并可以生成要放置在其位置的源代码。这样的定义称为元程序,它们的实际评估构成一个编译阶段。由于元程序也是程序,因此应该支持程序员处理编译时和运行时错误,这在两方面给整个工具链带来了挑战。首先,编译错误的源头很可能是一系列编译阶段的结果,因此永远不会出现在原始程序中。实际上,后者需要编译器在所有涉及的阶段中跟踪错误链,从而提供有意义的,描述性的和精确的错误报告。其次,每个编译阶段都通过执行相应的分级程序来实例化。因此,在编译过程中应促进针对任何特定阶段的典型的成熟源代码级调试。现有的实现在这两个方面都受到影响,总体上提供了较差的错误消息,同时缺乏调试任何暂存深度的元程序所需的支持。在本文中,我们首先概述了提供所有上述功能的元编程系统的实现。然后,我们详细介绍了对编译过程的必要修改。最后,我们讨论了编译器与工具链(IDE)之间的必要互操作点。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号