首页 > 解决方案 > 是否有一种类型定义语言旨在翻译语言之间的类型?

问题描述

我正在寻找一种工具,它允许我使用某种语言或标记(yaml、json 或类似)定义我的类型,然后使用另一种工具将类型导出/翻译为目标语言 - 确保类型与目标语言中的等效类型。

这种“类型特定”的语言是否存在?

标签: typesprogramming-languages

解决方案


考虑将 Ada 类型定义正确转换为等效的 C 类型可能存在的困难。

type Angle is mod 360;

Ada 类型定义了一个无符号整数,其最小有效值为 0,最大有效值为 359。该类型在有效值限制处表现出环绕行为。换句话说,从 0 中减去 1 会得到 359,将 1 加到 359 会得到 0。

C 没有等效类型。无符号字节不能保存最大值。无符号字不能将最大值限制为 359。虽然环绕语义内置于 Ada 类型定义中,但 C 程序员必须手动编写专门的算术函数来实现相应的环绕语义。除了简单地在 C 中声明一个类型以生成与 Ada 类型声明中定义的类型真正等效的类型之外,还必须做很多工作。


推荐阅读