직교성(프로그래밍)

Orthogonality (programming)

컴퓨터 프로그래밍에서, 정형성은 운영이 다른 사람들에게 영향을 주지 않고 단지 한 가지만 바꾼다는 것을 의미한다.[1] 이 용어는 조립 지침 집합과 관련하여 직교 지침 집합으로 가장 자주 사용된다.

프로그래밍 언어의 정형성은 언어의 제어와 데이터 구조를 구축하기 위한 비교적 작은 수의 방법으로 원시 구성의 집합이 결합될 수 있다는 것을 의미한다.[2] 이는 단순성과 관련이 있으며, 설계가 직교할수록 예외가 적다. 이것은 프로그래밍 언어로 프로그램을 배우고, 읽고, 쓰는 것을 더 쉽게 만든다. 직교 형상의 의미는 문맥과 무관하며, 주요 매개변수는 대칭성과 일관성이다(예를 들어 포인터는 직교 개념이다).

IBM 메인프레임과 VAX의 예는 이 개념을 강조한다. IBM 메인프레임에는 레지스터의 내용을 메모리 셀(또는 다른 레지스터)에 추가하기 위한 두 가지 다른 지침이 있다. 이러한 문장은 다음과 같다.

A Reg1, memory_cell AR Reg1, Reg2 

첫 번째 경우, 의 내용 Reg1 메모리 셀의 내용에 추가되고, 그 결과는 에 저장된다. Reg1. 두 번째의 경우, 의 내용 Reg1 다른 레지스터의 내용에 추가됨(Reg2) 및 결과는 에 저장된다. Reg1.

위의 문장 집합과 대조적으로, VAX에는 추가에 대한 문장이 하나만 있다.

ADDL 피연산자1, 피연산자2 

이 경우 두 피연산자는 (operand1 그리고 operand2)는 레지스터, 메모리 셀 또는 둘의 조합이 될 수 있다. 명령어는 다음 내용을 추가한다. operand1 의 내용까지 operand2, 결과를 에 저장 operand1.

추가에 대한 VAX의 지침은 IBM이 제공하는 지침보다 직교하기 때문에 프로그래머가 VAX에서 제공하는 지침을 기억하고 사용하는 것이 더 쉽다.

C 언어의 설계는 정형성의 관점에서 검토할 수 있다. C언어는 개념과 언어구조에 대한 처우에서 다소 일관성이 없어 사용자가 언어를 익히(사용)하기 어렵다. 예외의 예는 다음과 같다.

  • 구조물(배열이 아님)은 함수에서 반환할 수 있다.
  • 배열은 구조물 내부에 있을 경우 반환될 수 있다.
  • 구조물의 구성원은 어떤 데이터 유형(빈 공간 또는 동일한 유형의 구조 제외)이 될 수 있다.
  • 배열 요소는 모든 데이터 유형일 수 있다(공극 제외). 모든 것은 가치에 의해 전달된다(배열을 제외).

비록 이 개념이 프로그래밍 언어에 처음 적용되었지만, 정형성은 그 이후 API와 심지어 사용자 인터페이스의 설계에서 중요한 특징으로 인식되었다. 거기에서도 놀랄 만한 교차 링크 없이 구성 가능한 소규모의 원시적 연산을 갖는 것은 설명하기 쉽고 사용하기에 좌절감이 덜한 시스템으로 이어지기 때문에 가치가 있다.

참고 항목

참조

  1. ^ "Compactness and Orthogonality". www.catb.org. Retrieved 2018-04-06.
  2. ^ Sebesta, Robert W. (2010). Concepts of programming languages (9th ed.). Boston: Addison-Wesley. p. 10. ISBN 9780136073475. OCLC 268788303.

추가 읽기

  • 실용적 프로그래머: 앤드류 헌트와 데이비드 토머스의 트레드맨에서 마스터로. 애디슨 웨슬리 2000. ISBN 978-0-201-61622-4.

외부 링크