Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Programming languages 已获取类型推断,是否要添加类继承_Programming Languages_Language Design - Fatal编程技术网

Programming languages 已获取类型推断,是否要添加类继承

Programming languages 已获取类型推断,是否要添加类继承,programming-languages,language-design,Programming Languages,Language Design,如果我设计了一种具有类型推断、没有显式类型和类继承支持的新语言,然后想要添加继承,那么在添加功能时,编译器需要多少额外提示来解决类型歧义 需要类名吗 编辑 在整个程序中,包括函数之间,通过赋值跟踪类型污染 好的,在起始语言中,您可以从以下内容中获得类名称,如MyTypeName1: myVariable1 = New(MyTypeName1) myVariable2 = New(MyTypeName2) 分别为myVariable1和myVariable2推断类型MyTypeName1和myV

如果我设计了一种具有类型推断、没有显式类型和类继承支持的新语言,然后想要添加继承,那么在添加功能时,编译器需要多少额外提示来解决类型歧义

需要类名吗

编辑

在整个程序中,包括函数之间,通过赋值跟踪类型污染

好的,在起始语言中,您可以从以下内容中获得类名称,如
MyTypeName1

myVariable1 = New(MyTypeName1)
myVariable2 = New(MyTypeName2)
分别为
myVariable1
myVariable2
推断类型
MyTypeName1
myVariable2
。但是,如果我们想加强语言支持:

MyVariable3 = myVariable1
MyVariable3 = myVariable2
可以通过代码进行跟踪(myVariable3现在可以包含两种类型,它们可能位于层次结构中)

编辑

MyTypeName1和MyTypeName2的成员由以下语句推断:

myVariable1.name="Fred"
myVariable2.name="JX3009"
如果
MyTypeName1
MyTypeName2
中的
name
成员不在公共基类中,该怎么办?如果我们希望在
MyTypeName1
MyTypeName2
中有不同的name属性,而在基类中没有该属性,该怎么办?有没有一种优雅的方式告诉编译器该做什么/如何处理?(类型推断的想法是减少类型而不是增加类型…?)


或者我们需要显式地指定层次结构吗?

这个字段加载了不可判定的结果,但我已经忘记了它们。如果您愿意将继承与子类型混为一谈,那么您就没有问题了。如果你想要更雄心勃勃的东西(听起来好像你想要),我会看看

  • 本杰明·皮尔斯(Benjamin Pierce)的教科书将涵盖宽度和深度子类型的基本结果,以及它们如何很好地处理类型推断。(我想自己看看,但我的副本还在工作。)

  • 弗朗索瓦·波蒂埃博士论文

另一个要检查的名字是Joe Wells,他负责类型系统和编程语言中的许多不可判定结果

编译器解决类型歧义所需的最小额外提示是什么


如果这个问题有一个独特的答案,我会非常惊讶。我认为这很可能是一个语言设计问题,其中有一系列的解决方案,就最小值和注释而言,这些解决方案是完全不可比的。

这个字段加载了不可判定的结果,但我已经忘记了所有这些结果。如果您愿意将继承与子类型混为一谈,那么您就没有问题了。如果你想要更雄心勃勃的东西(听起来好像你想要),我会看看

  • 本杰明·皮尔斯(Benjamin Pierce)的教科书将涵盖宽度和深度子类型的基本结果,以及它们如何很好地处理类型推断。(我想自己看看,但我的副本还在工作。)

  • 弗朗索瓦·波蒂埃博士论文

另一个要检查的名字是Joe Wells,他负责类型系统和编程语言中的许多不可判定结果

编译器解决类型歧义所需的最小额外提示是什么


如果这个问题有一个独特的答案,我会非常惊讶。我认为这很可能是语言设计中的一个问题,其中有一系列的解决方案,就最低限度和注释而言,是绝对无法比拟的。

Jim:如果是的话,我很高兴这不是我的家庭作业,因为我真的很难弄明白他在说什么:)很高兴能难倒你们所以我想我想了解的是:类型推断是如何实现的?什么样的继承支持?当没有显式类型时,如何继承?添加继承不意味着您将获得显式类型吗?或者你是在暗示什么?我认为上面提到的问题没有足够的上下文来得到有意义的答案。吉姆:如果是的话,我很高兴这不是我的家庭作业,因为我真的很难弄明白他在说什么:)先生们,我很高兴能难倒你们所以我想我想了解的是:类型推断是如何实现的?什么样的继承支持?当没有显式类型时,如何继承?添加继承不意味着您将获得显式类型吗?或者你是在暗示别的什么?我认为上面提到的问题没有足够的上下文来得到有意义的答案。