gpt4 book ai didi

fortran - Fortran 是多调度编程语言吗?

转载 作者:行者123 更新时间:2023-12-05 01:23:11 29 4
gpt4 key购买 nike

Fortran 中的INTERFACE 语句是否使其成为正式实现multiple dispatch 的编程语言? ? (我问是因为所链接的维基百科文章在其看似全面的支持相关范式的示例编程语言列表中并未包含 Fortran)。

最佳答案

接口(interface) block (由 interface 关键字引入)通常用于通用接口(interface)。它们像 C++ 泛型一样工作,没有动态调度。您必须区分静态调度和动态调度。 Fortran 和 C++ 都只有通过使用类和继承/重载的多态性的单一动态调度。

但是接口(interface) block 本身在 Fortran 中有几种独立的用法,只有一些处理某种重载。它们通常就像 C++ 头文件中的函数声明一样工作。

https://www.geeksforgeeks.org/function-overloading-c/为例:

void add(int a, int b)
{
cout << "sum = " << (a + b);
}

void add(double a, double b)
{
cout << endl << "sum = " << (a + b);
}

在 Fortran 中,你可以做同样的事情,但不是直接声明两个具有相同名称的子程序,而是定义两个具有不同名称的特定子程序,并为它们创建一个通用接口(interface)

interface add
procedure add_ints
procedure add_doubles
end interface

...

subroutine add_ints(a, b)
integer :: a, b
print *, "sum = ", (a + b)
end subroutine

subroutine add_doubles(a, b)
double precision :: a, b
print *, "sum = ", (a + b)
end subroutine

这是很好的旧静态调度。

关于fortran - Fortran 是多调度编程语言吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72756262/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com