Java正交吗?

mbc*_*mbc 11 java theory definition orthogonal

我想知道Java是否正交,如果是,那么它的哪些特性使它正交.如何判断语言是否正交?例如,我在某些网站上发现C++不是正交的,但没有解释,为什么不.还有哪些其他语言正交?请帮助我,因为互联网上几乎没有关于这个主题的信息.

谢谢

bak*_*kal 25

UNIX编程的艺术,第4章.模块化,正交性,第89页:

正交

正交性是最重要的特性之一,可以帮助使复杂的设计紧凑.在纯粹的正交设计中,操作没有副作用; 每个动作(无论是API调用,宏调用还是语言操作)只改变一件事而不影响其他动作.有一种方法可以改变您控制的任何系统的每个属性.

编程语言语用学,第6章,第228页:

正交性意味着可以以任何组合使用特征,组合都有意义,并且给定特征的含义是一致的,而不管其组合的其他特征.

关于Lisp,5.2正交性:

正交语言是指通过以多种不同方式组合少量运算符来表达大量语言的语言.


我认为正交编程语言是每个特征都具有最小副作用或没有副作用的语言,因此可以在不考虑该使用将如何影响其他特征的情况下使用它们.我从正交API的定义中借用了它.

在Java中,您必须评估,例如,当在标识符上同时使用时,是否存在可能相互影响的关键字/构造的组合.例如,当应用publicstatic方法时,它们不会相互干扰,因此这两者是正交的(除了关键字的意图之外没有任何副作用)

你必须这样做才能证明正交性.这是一种方法.在这个问题上,我认为不存在明确正交的问题.


Jos*_*jos 2

正交性是独立于语言的设计特征。当然,某些语言可以让您更轻松地为系统进行正交设计,但您不应该专注于特定语言来保持系统设计尽可能正交。