효율(Efficiency)
- 최적화 용이성(Optimizability) = 언어가 얼마나 최적화되어 있는가
- 실행 효율
- 프로그램이 실행될 때의 효율성을 높이는 것 목표
- 빠르고 적은 자원을 사용하는 것이 바람직
- 번역 효율
- 코드가 컴파일러나 인터프리터에 의해 빠르게 번역될 수 있어야 함
- 신뢰성과의 상충
- 최적화를 위해 성능을 지나치게 중시할 경우, 프로그램의 신뢰성이 떨어질 수 있음
- 실행 효율
- 구현 용이성(Implementability) = 언어 구현의 효율성 / 번역기를 작성할 때 얼마나 효율적으로 구성할 수 있는가
- 작성 용이성(Writability) = 프로그래밍 언어로 코드를 작성할 때 효율성
- 표현력(Expressiveness) = 특정한 목표나 기능을 얼마나 간단하고 명확하게 표현할 수 있는가
- 판독성(Readability) : 코드가 쉽게 이해될 수 있는가
- 코드의 구조나 구문이 직관적이어야 함
- 신뢰성(Reliability) = 언어의 설계가 오류를 줄이고, 예측 가능한 동작을 보장하는가
- 유지 보수 용이성(Maintainability) = 코드의 유지 및 보수가 얼마나 쉬운가. 유지보수가 쉬우면 코드 수명주기가 길어짐
규칙성(Regularity)
- 통합 정도 = 언어의 기능이 얼마나 조화롭게 통합되어 있는가
- 특정 구문 사용에 대한 제약 최소화 : 특정 구문에 불필요한 제약이 적고 유연하게 사용할 수 있음
- 구문 간 상호작용 최소화 : 구문 간 불필요한 상호작용을 줄여 예측 가능한 결과를 얻을 수 있어야 함
- 일반성(Generality) = 특정 구문을 사용할 때 특별한 경우를 피하고, 관련된 구문을 하나의 일반적인 구조로 통합
- 직교성(Orthogonality) = 언어의 구문 요소들이 조합되었을 때 의미 있는 형태를 갖도록 / 데이터 타입과 연산자가 직교적으로 설계되면 다양한 조합이 가능 > 유연성 증
- 일률성(Uniformity) = 비슷한 구문 구조는 비슷한 의미를, 다른 구조는 다른 의미를 가지도록 설계 > 코드의 일관성과 가독성을 높일 수 있음
- 단순성(Simplicity) = 아인슈타인의 "모든 것은 가능한 한 단순하게 만들어야 하지만 지나치게 단순하게 만들어서는 안 된다." > 지나친 단순화는 오히려 표현력과 작성 용이성 저하 우려
- 표현력(Expressiveness) = 간결하게 코드를 표현할 수 있는 능력 / 지나치게 높은 표현력은 판독성 저하 우려
- 예시: C 언어의 while (*s++ = *t++); 구문은 한 줄로 간단하게 표현 / 해석은 복잡할 가능성
- 확장성(Extensibility) = 사용자가 언어에 새로운 기능을 추가할 수 있도록 유연한 확장 메커니즘을 제공하는 것 중요
- 언어의 발전 가능성을 높이고, 다양한 요구에 대응 가능해야함
'[ Computer Science ]' 카테고리의 다른 글
[Programming Language] 6. 구문 (4) | 2024.11.01 |
---|---|
[Programming Language] 4. 프로그래밍 언어 개발의 역사 (6) | 2024.10.31 |
[Programming Language] 3. 전체에 대한 개관 (6) | 2024.10.31 |
[Programming Language] 2. 추상화 (2) | 2024.10.31 |
[Programming Language] 1. 프로그래밍 언어론 개요 (0) | 2024.10.31 |