确定函数式语言的类型

时间:2013-12-31 12:00:49

标签: dimension typechecking syntax-checking systemdynamics

在小型程序中,用户插入多个类型公式并将它们连接在一起,以创建联立方程组。我想介绍运行时类型检查,以便在维度不匹配时报告错误

基本类型可以是任何类型,例如Persons, Money, Money/Period, m^2/s^2等,并在运行时作为字符串输入

我读到了关于欣德利 - 米尔纳式推理的内容,但认为这有点夸张。

我的想法是依赖两条规则:

首先标记,然后

If (a + b) or (a-b) the dimensions must match! [a] = [b]

如果a * b那么维度是“扩展”或“缩小”的,因为您可以跟踪各个维度的数量,例如

Person/Year * Money/Year * Money*Year^2 ===> Money(2) Person(1) Year(2) / Year(1)

然后减去个别计数,从而将Money(2) Person(1) Year(1)保留为final type

这可以实现为树木行走者,其中每个(+/-) - 节点测试尺寸约束 然后简化产生最终答案

这是解决此问题的好方法吗?

0 个答案:

没有答案