所以目前正在阅读关于绑定......基于我可以想到的示例以及在网络上找到的示例,似乎动态绑定主要发生在解释语言中而不是在编译语言中发生。 Java中也会出现一些问题,但java不是一种“纯粹”的编译语言。我读过 - http://en.wikipedia.org/wiki/Dynamic_binding_(computing)。
我的问题是 - 对于类,方法和对象,动态绑定首先在对象级别发生,然后跟踪到方法,类等吗?此外,是否存在以编译语言在对象级别进行动态绑定的实例?
答案 0 :(得分:1)
不,动态绑定可以在编译语言中发生,比如C ++:
https://en.wikipedia.org/wiki/Dynamic_binding_%28computing%29
请注意,Java也会编译为字节码,然后由JVM解释。有时,解释语言和编译语言之间的区别可能会变得模糊(例如使用动态调度的C ++)。
答案 1 :(得分:1)
您的问题有一系列定义问题。对于动态绑定,您可以考虑:
对于编译与解释,您可以考虑:
通常,很少有语言被编译为机器代码,并且大多数语言没有动态名称查找或对象继承。编译了许多语言(但不是机器代码),其中许多语言具有动态名称查找,具有类或对象继承。
所以答案是,这取决于。
答案 2 :(得分:1)
编译语言和解释语言是一种错误的二分法,会在编程语言社区引起很多混乱。许多现代语言实现平台包括解释器和编译器。即使语言的原始和长期实现是编译器,但这并不意味着某人以后可以为它编写解释器。那里有不止一个C解释器以及十几个Lisp编译器。