Oop 任何语言都可以用在任何范例中进行编程吗?

Oop 任何语言都可以用在任何范例中进行编程吗?,oop,functional-programming,paradigms,Oop,Functional Programming,Paradigms,任何语言都可以用在任何范例中进行编程吗?例如,C没有类,但可以在OOP中编程。有一些语言(比如汇编语言)我看不到在中使用OOP。不,不是所有语言都可以用于任何范例中的编程。然而,更流行的Python、C++等都允许你选择你想要如何编程。甚至php也在添加OO支持。是的,这仅仅是因为您可以在宿主语言中为您喜欢的$paradigm实现一个解释器 实际上,这是不可行的、高效的或正确的。C++最终是程序集,您只有一个编译器,可以从更好的描述为您编写程序集。因此,请确保您可以在汇编中执行OOP,就像您可以

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

不,不是所有语言都可以用于任何范例中的编程。然而,更流行的Python、C++等都允许你选择你想要如何编程。甚至php也在添加OO支持。

是的,这仅仅是因为您可以在宿主语言中为您喜欢的$paradigm实现一个解释器


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

C++最终是程序集,您只有一个编译器,可以从更好的描述为您编写程序集。因此,请确保您可以在汇编中执行OOP,就像您可以在C中执行OOP一样;只是很多OO概念最终都是按照约定和编程规则来实现的,而不是被语言的结构所强迫,结果是大量的bug成为可能,而您的语言工具可能不会很好地帮助您找到这些bug

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

当您想要删除限制而不是添加限制时,可能会有点困难

在Haskell和Mul汞这样的纯强制语言中,你不能突然在任意纯代码的中间突然释放面向对象的封装的可变状态的包(至少不使用)所有的赌注都被关闭了。Haskell中的

unsafePerformIO
或Mercury中的
promise\u pure
等功能对编译器来说是谎言,在这一点上,您的程序可能完全无法工作,除非您能够围绕执行此操作的区域包装一个纯接口)。但是,您可以用这些语言以过程式或面向对象的方式编写整个程序,方法是永远不要离开它们用来执行IO的机制

同样,如果你认为在动态语言中使用鸭子打字是一个范例,在静态的语言中获得类似的语言是很痛苦的,但是你总能找到一种方法来表达你的动态类型作为数据。但你再次发现自己在做一些惯例和重新实现的事情,如果你真的使用duck打字语言,你会得到免费的


我敢肯定,很难找到一种语言(可用于编写通用程序),它不能适应以您喜欢的任何模式编写代码。这种调整可能不会产生非常高效的代码(尽管有时可以;将C或汇编语言调整到任何范式通常都可以变得非常高效,就像您有一种为该范式调优的语言一样),而且就程序员时间而言,它几乎肯定会非常低效。

如果该语言是图灵完全的,那么是的。如果不是,也许吧。但是你是用宿主语言编程,还是用你的新语言编程?在uni,我们用Haskell为命令式脚本语言编写了一个解释器;当我们编写代码提供给这个解释器时,我不会说我们是用Haskell编程的。我发现在编写Python代码时用C编程的建议非常可笑。OP的问题非常可笑。语义A在语义B中的合理嵌入对于所有语义ab来说都是非理性的。这并不是一个可笑的问题,而是一个直截了当的“不”。如果你相信这一点,那么为什么你要在对语言编程概念进行了相当大的扩展的基础上写一个“是”的答案呢?