任何语言都可以用于任何范式的编程吗?例如,C没有类,但s可以在OOP中编程。有一些语言(如汇编)我看不到使用OOP in。

有帮助吗?

解决方案

是的,仅仅是因为你可以在宿主语言中为你最喜欢的paradigm范式实现一个解释器。

实际上,这是不可行的,有效的或正确的。

其他提示

C++最终是汇编,你只是有一个编译器从一个更好的描述为你编写程序集。所以肯定你可以在汇编中做OOP,就像你可以在C中做OOP一样;只是很多面向对象的概念最终都是通过约定和程序员的纪律来实现的,而不是被语言的结构所强迫,结果是大量的错误成为可能,你的语言工具可能不会很好地帮助你找到。

大多数范式/语言不匹配也有类似的论点。大量面向对象的程序 以这种方式用C编写,所以它甚至可以是一个有点实际的事情,而不仅仅是一个学术问题。

当你想要的是 移走 限制而不是添加它们。

在像Haskell和Mercury这样的纯强制语言中,你不能在任意纯代码的中间突然爆发出面向对象风格的封装可变状态包(至少在不使用"所有赌注都关闭"功能的情况下 unsafePerformIO 在Haskell或 promise_pure 为了欺骗编译器,在这一点上,你的程序可能完全无法工作,除非你可以在你这样做的区域周围包装一个纯粹的接口)。但是你可以写 整个 这些语言中的程序或面向对象风格的程序,永远不会离开它们用来执行IO的机制。

同样,如果你认为在动态语言中使用鸭子类型是一种范例,那么在静态类型的语言中获得类似的东西是非常痛苦的,但是你总是可以找到一种方法来表示你的动态类型为 数据资料.但是你再次发现自己正在做约定和重新实现的事情,如果你真的使用鸭子打字语言,你会免费获得。

我很确定很难找到一种语言(可用于编写通用程序) 不能 适应以任何你喜欢的范式编写代码。适应可能不会产生非常有效的代码(有时可以;将C或程序集适应任何范式通常可以使其效率与您为该范式调整的语言一样高),并且在程序员时间方面几乎肯定会非常低效。

不,并非所有语言都可以用于任何范式的编程。然而,比较流行的-python,c++等都允许你选择你想要的编程方式。甚至php也在添加OO支持。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top