【问题标题】:How can a language be statically typed and interpreted?如何对语言进行静态类型和解释?
【发布时间】:2018-08-20 18:46:05
【问题描述】:

如果解释型语言在运行时翻译其源代码,而静态类型语言在编译时分配其类型,那么一种语言怎么可能两者兼有?

从这个问题我知道这是可能的:Which languages are dynamically typed and compiled (and which are statically typed and interpreted)?

这个页面很好地解释了静态类型语言和动态类型语言之间的区别:https://hackernoon.com/i-finally-understand-static-vs-dynamic-typing-and-you-will-too-ad0c2bd0acc7

我只是不明白一种语言如何既可以静态类型又可以解释?

谢谢

【问题讨论】:

  • BASIC 是动态解释的并且是静态类型的。

标签: types


【解决方案1】:

解释并不意味着源代码的每一行都在该行执行之前被解析。通常有一个初始化步骤,解释器在开始执行之前解析整个程序。此时,解释器可以应用类型检查。

作为一个实际示例,mypy 是一个 Python 解释器,它使用 Python type annotations 在开始执行之前进行类型检查。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-20
    • 2016-09-26
    • 2011-02-11
    • 1970-01-01
    • 2016-04-07
    • 2011-02-09
    相关资源
    最近更新 更多