언어 평가를 하는데에 4가지 평가요소가 있다.
- Readability : 얼마나 쉽게 읽을 수 있는지
- Writability : 얼마나 쉽게 언어를 쓸 수 있는지
- Reliability : 얼마나 신뢰할 수 있는지
- Cost : 얼마만큼의 비용이 드는지
언어의 한 특성이 Readability에 영향을 미치면 그 특성은 자연스럽게 Writability에 영향을 주고, Writability에 영향을 주는 특성은 Reliability에 영향을 준다.
읽기 쉬운 언어는 당연히 쓰기도 쉬워지고, 그만큼 신뢰도도 높기 때문에 당연한 현상이라고 생각하면 된다.
그럼 각 요소에 영향을 미치는 특성에 대해 알아보도록 하자!
- Readability
1. Simplicity
: 단순하면 할수록 읽기 쉬운 것은 당연하다. 최대한 단순하고, 중복되는 operator가 적어야한다.
2. Orthogonality
: 모든 구성 요소들을 임의로 조합해서 사용할 수 있고, 예외가 적어야 한다.
3. Control statements
: structure langauge에서 특히 적당한 control 언어가 필요하다.
4. Data types and structures
: 데이터의 타입과 구조를 나타낼 수 있어야한다.
5. Syntax considerations
: 변수이름 적당하게 구성이 가능해야하고, 지정어에 대한 제약이 있어야 하며, 지정어를 보면 그 의미를 바로 알 수 있어야 한다.
- Writability
1. Simplicity and Orthogonality
: Readability와 마찬가지로, 간단하고 모든 구성 요소들을 임의로 조합해서 사용할 수 있으며, 예외가 적어야한다.
2. Support for abstraction
: 추상화를 지원해주어야 한다. 추상화는 코드의 재사용성, 코드의 가독성, 일관된 방향성에 도움을 준다.
3. Expressivity
: 특정 기능에 대해 적절하게 여러 방법으로 표현이 가능해야 한다.
- Reliability
1. Type checking
: 프로그램에서 가장 중요한 부분으로, type이 올바른지 확인할 수 있어야한다. (뒷부분에서 type checking 다룸!)
2. Exception handling
: error가 발생했을 때, 죽지 않고 오류를 적절하게 처리할 수 있어야한다.
3. Aliasing
: 별칭이란 뜻으로, 하나의 값이 2개 이상의 이름으로 표현이 되는 것. 즉, 하나의 값에 2개 이상 참조하는 것이다.
이를 최소화 해야한다.
4. Readability & Writability
- Cost
1. 프로그래머 교육시간
2. Writing programs : 프로그램 개발 비용
3. Compiling programs : 프로그램 compile 비용
4. Executing programs
: 수행시간 cost. compliation cost와 trade-off 관계.
5. Language implementation system: 언어 비용. ex) python은 무료
6. Reliability
: Reliability가 높은 언어는 오류 적음, 반면 reliability가 낮은 언어는 오류로 인해 관리 비용 증가한다.
7. Maintaining programs
: 프로그램 유지관리 비용.
- Others
- Portability : 다른 HW에서 잘 돌아가는가? 이는 표준화를 통해 해결 가능하다.
- Generality : 많은 곳에서 사용이 되는가?
- Well-definedness : 언어 정의가 잘 되어있는가?
'프로그래밍언어구조론' 카테고리의 다른 글
2. Influence on Language Design (0) | 2021.10.23 |
---|