티스토리 뷰

프로그래밍 언어의 품질(직교성, 일반성, 획일성)

프로그래밍 언어의 품질은 여러 가지 요소에 의해 결정됩니다. 그 중에서도 직교성, 일반성, 획일성은 중요한 개념입니다. 직교성은 언어의 구성 요소들이 문맥에 따라 일관된 동작을 하는 것을 의미하며, 일반성은 언어가 다양한 상황에서 일반적으로 적용될 수 있는 기능을 제공하는 것을 말합니다. 획일성은 언어 구조와 문법이 일관되고 조화를 이루는 것을 의미합니다. 이제 각각의 개념에 대해 구체적인 예를 살펴보겠습니다.




일반성

Pascal에서는 프로시저 선언과 프로시저를 매개변수로 전달하는 기능이 있지만, 프로시저형 변수를 제공하지 않아서 일반성이 부족합니다. 프로시저형 변수를 지원하면 프로시저를 자료형처럼 선언하고 변수로 사용할 수 있어 일반성을 높일 수 있습니다.
Pascal에는 가변 배열이 없어 일반성이 제한됩니다. 반면에 C나 Ada는 가변 배열을 제공하여 다양한 상황에서 활용할 수 있습니다.
매개변수 전달 방식의 일반성은 값 전달, 참조 전달, 주고받을 수 있는 세 가지 방식을 제공해야합니다. Fortran은 참조 전달 기법만을 허용하여 일반성이 부족합니다. Algol 68, C, Java는 참조와 포인터를 통해 일반성을 확보하였고, Ada는 세 가지 전달 방식을 모두 제공하여 일반성을 갖습니다.
Fortran에는 상수 이름이 존재하지 않아 일반성이 부족합니다.

직교성

Pascal에서는 함수의 반환값으로 스킬라 형이나 포인터 형만 허용하고 구조형은 허용하지 않아 직교성이 부족합니다. 또한 파일 형태도 특별한 상태를 가지고 있어 비직교성을 보여줍니다.
Modula 2에서는 문자열을 더 큰 길이의 문자열 배열에 할당할 수 있어 크기가 다른 객체에 대한 할당이 가능하므로 직교성을 갖습니다.
C 언어의 매개변수 전달 방식은 배열만이 참조 전달 방식을 사용하고 나머지는 값 전달 방식을 사용하여 직교성을


획일성

획일성은 언어의 구조와 문법이 일관되고 조화를 이루는 것을 의미합니다. 예를 들어, if 문은 어디에서나 if 문의 형식과 동작을 일관되게 수행해야 합니다.
Pascal에서는 repeat 문장이 begin-end 없이 자신의 문장 블록을 가지고 있지만, while 문이나 if 문은 begin-end 쌍을 필요로 하므로 획일성이 깨집니다.
Pascal의 가변 레코드에서 case 문장은 case 제어 문장과 다른 구문을 가지고 있어 획일성을 어길 수 있습니다.
Pascal의 함수에서 반환값을 보내는 방법은 배정문과 유사한 구조를 가지고 있어 획일성을 해치는 요소입니다.
Modula-2와 Pascal에서 세미콜론은 문자 구분자와 종료 표기로 사용되는데, 이러한 다중 용도의 사용은 획일성을 저해할 수 있습니다.


프로그래밍 언어의 품질은 직교성, 일반성, 획일성과 같은 요소에 의해 좌우됩니다. 직교성은 구성 요소들이 문맥에 따라 일관된 동작을 하는 것을 의미하며, 일반성은 다양한 상황에서 적용될 수 있는 기능을 제공하는 것입니다. 또한 획일성은 언어 구조와 문법이 일관되고 조화를 이루는 것을 의미합니다. 이러한 요소들을 고려하여 언어를 설계하고 개발함으로써 더 효율적이고 사용자 친화적인 프로그래밍 경험을 제공할 수 있습니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/09   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함