Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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
Julia(Julia lang)代码是否可以进行静态分析以避免运行时类型错误?_Julia - Fatal编程技术网

Julia(Julia lang)代码是否可以进行静态分析以避免运行时类型错误?

Julia(Julia lang)代码是否可以进行静态分析以避免运行时类型错误?,julia,Julia,我最近将我的一个模拟移植到了Julia,我只在运行时发现了几个类型错误。我希望静态分析我的Julia代码。MATLAB也有类似的问题,只在运行时发现许多错误 我发现的唯一工具()执行我期望从编译器得到的静态分析的一小部分 是否有用于Julia脚本的静态分析器,以便我可以避免许多现在的运行时错误 我是否可以使用LLVM JIT编译器?(我不太了解Julia编译是如何工作的,什么是可能的,什么是不可能的) 这可能是因为Julia的特性吗?我认为答案取决于您想要哪种运行时错误,因为Julia的编译时发

我最近将我的一个模拟移植到了Julia,我只在运行时发现了几个类型错误。我希望静态分析我的Julia代码。MATLAB也有类似的问题,只在运行时发现许多错误

我发现的唯一工具()执行我期望从编译器得到的静态分析的一小部分

是否有用于Julia脚本的静态分析器,以便我可以避免许多现在的运行时错误

我是否可以使用LLVM JIT编译器?(我不太了解Julia编译是如何工作的,什么是可能的,什么是不可能的)


这可能是因为Julia的特性吗?

我认为答案取决于您想要哪种运行时错误,因为Julia的编译时发生在大多数编译语言称为运行时的时间点上


如果您键入所有函数的输入,并且在所有函数中键入所有变量,您将能够在Julia的编译时获得大量类型错误。

因此,我的困惑是,文档建议不需要类型声明,但您(可能)会(有许多)类型声明运行时错误就像大多数动态类型语言一样。就像你说的,如果你声明了所有的类型,你可以得到编译时检查。对我来说,这是令人沮丧的,因为在这一点上,我不再需要多态性(我也可以使用Fortran)。你更喜欢的替代方案是什么?也许Julia会假设每个类型都来自一个知道转换的小类型族(因此,当它看到一个复数双向量时,它就知道可以将其转换为复数双矩阵)。在这种受限类型模式下,它可以优化所有内容,并在必须对特定转换进行大量猜测时向我发出警告。然后,根据这些假设,它可以进行大量静态分析。我希望静态类型的Julia的速度可以达到,而不必声明所有类型。因此,可能是一种类型族模式。我认为你应该在邮件列表中提出这个问题,特别是如果你认为你可以实现一个可以工作的演示。