Merlin Asked:2020-10-06 19:40:05 +0000 UTC2020-10-06 19:40:05 +0000 UTC 2020-10-06 19:40:05 +0000 UTC 将动态类型语言转换为静态类型语言需要什么?[关闭] 772 需要重做多少?简而言之,请告诉我们为此需要哪些步骤。例如,我真的很喜欢 Julia 语言,但那里的静态类型较差。 компилятор 1 个回答 Voted Best Answer Axenow 2020-10-06T22:38:10Z2020-10-06T22:38:10Z 实际上,为此您需要添加和实现几个功能: 将有关该变量类型的信息添加到描述每个变量的结构中。它可以是原语,也可以是对象、接口等。 添加将一种类型的变量转换为另一种类型的能力。Java的一个例子: 长 l = 100000; int i = (int)l; 在编译阶段,检查数据类型,如果不匹配或者不能被类型树转换,则报错。 如果语言支持 OOP,您还必须存储类树。这是必要的,以便子类可以用作参数,反之亦然。Java的一个小例子 public class Animal { public void eat() { // ... } } public class Cat extends Animal { public void eat() { // ... } public void meow() { // ... } } Cat cat = new Cat(); Animal animal = cat; animal = (Animal) cat;
实际上,为此您需要添加和实现几个功能:
添加将一种类型的变量转换为另一种类型的能力。Java的一个例子:
长 l = 100000; int i = (int)l;
在编译阶段,检查数据类型,如果不匹配或者不能被类型树转换,则报错。
如果语言支持 OOP,您还必须存储类树。这是必要的,以便子类可以用作参数,反之亦然。Java的一个小例子