RascalMPL 中输入错误导致翻译失败

问题描述 投票:0回答:1

我目前正在使用 TypePal 进行 DSL 的静态类型处理。关于如何连接代码生成脚本的良好做法是什么,这样如果检查器发现错误,它应该无法继续生成代码?

rascal
1个回答
0
投票
  • 如果你可以为程序的 90% 生成正确的代码,并且你必须跳过或生成最后 10% 的
    throw
    ,那么人们将能够运行代码并进行游戏,即使它不是 100% 正确。这种循序渐进的实验能力往往受到 DSL 用户的赞赏
  • 如果您必须保证生成的代码的安全性、稳定性或鲁棒性,那么您必须确保类型检查器是代码生成的质量门。
  • 或者,如果您可以保证在代码未被证明正确运行的情况下抛出异常,那么您可以将两者结合起来。
  • 某些 DSL 编译器具有以下模式:在“调试”模式下,您执行第一个选项,而在“运行”(部署)模式下,您坚持所有错误均已修复。
  • 您还可以玩弄“警告”、“错误”和“信息”之间的区别。出现警告时,您仍然可以生成工作代码,而出现错误时,一切都将失败,您必须生成
    throw
    或停止编译器。
© www.soinside.com 2019 - 2024. All rights reserved.