Language agnostic “什么是”呢;正交性;?

Language agnostic “什么是”呢;正交性;?,language-agnostic,terminology,lexicon,Language Agnostic,Terminology,Lexicon,当谈到编程语言时,“正交性”是什么意思 正交性的一些例子是什么?来自: 计算机科学 正交性是一种系统设计特性,有助于复杂设计的可行性和紧凑性。正交性保证了修改系统组件产生的技术效果既不会产生副作用,也不会将副作用传播到系统的其他组件。由组件组成的系统的紧急行为应严格由其逻辑的形式化定义控制,而不是由集成不良导致的副作用(即模块和接口的非正交设计)控制。正交性减少了测试和开发时间,因为它更容易验证既不会引起副作用也不会依赖副作用的设计 例如,汽车具有正交的部件和控制装置(例如,加速车辆不会影响其他

当谈到编程语言时,“正交性”是什么意思

正交性的一些例子是什么?

来自:

计算机科学

正交性是一种系统设计特性,有助于复杂设计的可行性和紧凑性。正交性保证了修改系统组件产生的技术效果既不会产生副作用,也不会将副作用传播到系统的其他组件。由组件组成的系统的紧急行为应严格由其逻辑的形式化定义控制,而不是由集成不良导致的副作用(即模块和接口的非正交设计)控制。正交性减少了测试和开发时间,因为它更容易验证既不会引起副作用也不会依赖副作用的设计

例如,汽车具有正交的部件和控制装置(例如,加速车辆不会影响其他任何东西,但只影响与加速功能相关的部件)。另一方面,非正交设计可能会影响转向系统及其制动系统(如电子稳定控制系统),或使其速度调整悬架。因此,这种用法被认为是从数学中的正交性的使用中衍生出来的:当且仅当基向量相互正交时,通过将向量分别投影到一组基向量的每个成员上并添加投影,可以将向量投影到子空间上

如果任何指令可以在任何寻址模式下使用任何寄存器,则称指令集为正交的。此术语是将指令视为向量的结果,其组件是指令字段。一个字段标识要操作的寄存器,另一个字段指定寻址模式。正交指令集对寄存器和寻址模式的所有组合进行唯一编码。

来自Eric S.Raymond

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

是表示“更改A不更改B”的属性。正交系统的一个例子是收音机,改变电台不会改变音量,反之亦然

非正交系统就像直升机,改变速度可以改变方向

在编程语言中,这意味着当您执行一条指令时,只会发生该指令(对于调试非常重要)


当提到它时,也有一个特定的含义。

想想它能够改变一件事,而不会对另一件事产生看不见的影响。

来自:

正交性是一种系统设计 房地产促进可行性和可持续性 复杂设计的紧凑性。 正交性保证 修改技术效果 由系统的一个组件产生 既不创造也不传播另一面 对系统其他组件的影响 系统。突然出现的行为 由组件组成的系统应 严格控制 其逻辑和非逻辑的定义 不良反应引起的副作用 积分,即非正交 模块和接口的设计。 正交性减少了测试和测试 开发时间,因为它更容易 验证两种设计都不会导致 副作用也不依赖于它们

例如,一辆汽车具有正交性 组件和控制装置(例如。 加速车辆时,不会发生故障 影响其他任何事情,除了 专门涉及 加速功能)。上 另一方面,非正交设计 可能会影响它的方向 制动(例如电子稳定性 控件),或调整其速度 暂停。[1]因此 用法被认为是从 正交法在数学中的应用:一 可以将向量投影到子空间上 通过将其投影到 一组独立的基向量,并且 当且仅当 基向量是相互关联的 正交的

一个指令集被称为 如果有任何指令可以使用 任何寻址模式下的任何寄存器。 这个术语源于 将指令视为向量 指令由谁组成 领域。一个字段标识 待操作的登记册,以及 另一个指定寻址模式。 唯一正交指令集 对寄存器的所有组合进行编码 和寻址模式


用最简单的术语来说,如果改变一件事对另一件事没有影响,那么两件事是正交的。

如果你有一组结构。如果一个语言允许程序员自由地混合这些结构,那么它就是正交的。例如,在C中不能返回数组(静态数组),在这种情况下,C被称为非正统的:

int[] fun(); // you can't return a static array.
// Of course you can return a pointer, but the langauge allows passing arrays.
// So, it is unorthognal in case.

广义上,正交性是两个事物之间的一种关系,使得它们对彼此的影响最小

这个术语来自数学,在数学中,如果两个向量以直角相交,则它们是正交的

考虑一个典型的二维笛卡尔空间(您可以使用具有X/Y轴的典型栅格)。绘制两条线:x=1和y=1。这两条线是正交的。您可以通过更改x来更改x=1,这对另一行没有影响,反之亦然


在软件中,这个术语可以恰当地用于系统的两个部分相互独立的情况。

在谈到编程语言的项目决策时,正交性可以被看作是您预测该系统的其他方面是多么容易
A Reg1, memory_cell
AR Reg1, Reg2
Reg1 ← contents(Reg1) + contents(memory_cell)
Reg1 ← contents(Reg1) + contents(Reg2)
ADDL operand_1, operand_2
operand_2 ← contents(operand_1) + contents(operand_2)
Example : non-orthogonality