일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- php
- 자격증
- 개발
- bootcamp
- 개발공부
- React
- knockon
- 개인서버
- CSS
- 홈서버
- 매크로
- windows
- 정보처리기능사
- 외부접속
- git
- 프로그래밍언어론
- 220821
- cording
- WPF
- 프로그래밍 언어론
- Developer
- study
- CodeIgniter
- html
- 방화벽
- Java
- plan
- Mac
- C
- 오답풀이
- Today
- Total
bunta의 보조기억장치
[프로그래밍 언어론] 2-3 프로그래밍 언어의 평가 기준 본문
프로그래밍 언어의 요구사항 및 설계 원칙
- 요구사항
표현 풍부성(expressiveness)
→ 프로그래머의 아이디어를 표현할 수 있어야 함
유지 보수성(maintainability)
→ 변화에 쉽게 대처할 수 있어야 함
실행 가능성(executability)
→ 컴퓨터에서 실행할 수 있어야 함
- 설계 원칙
규칙성(regularity)
→ 언어의 기능이 잘 조합될 수 있어야 함
* 일반성, 직교성, 일관성
* 일반성: 3 > 1의 크기 비교는 가능하지만 a=3, b=1일 때 a > b 의 크기 비교가 가능한지의 여부
즉 숫자 이외에 데이터를 저장하고 있는 구조체에 대해서도 같은 기능을 사용이 가능하면 일반성이 좋다고 표현
추상화 지원(support of abstraction)
→ 실세계의 대상을 추상화하여 나타낼 수 있고 이를 대상으로 어떤 연산을 수행할 수 있어야 함
* 데이터 추상화, 제어 추상화, 추상 데이터 타입 정의 등이 지원되어야 함
복잡도 제어(complexity control)
→ 복잡한 대상 및 처리 방법을 제어할 수 있어야 함
* 캡슐화, 모듈화 기능이 지원되어야 함
프로그래밍 언어의 평가 기준
작성력
→ 프로그램 수식이나 문장, 기능을 쉽게 표현할 수 있는가
가독성
→ 작성된 프로그램을 보고 쉽게 이해할 수 있도록 하는가
신뢰성
→ 작성된 프로그램이 오류에 빠지는 가능성을 줄이는가
직교성
→ 언어 기능이 서로 간섭하지 않고 자유롭게 조합될 수 있는가
→ 예를 들어 '+'가 옆에 어떤 정수나 실수 등이 오더라도 더하기 연산을 수행한다면 직교성이 좋음
상황에 따라 더하기 연산을 수행하지 못하거나 오류가 발생한다면 직교성이 나쁨
일관성
→ 유사한 기능을 같은 형태로 나타낼 수 있는가
→ C++ 경우 클래스를 생성할 때 중괄호 뒤에 세미콜론을 붙이는 반면, 함수를 생성할 때는 중괄호 뒤에 세미콜론을 붙이지 않음
이런 경우 일관성이 나쁘다고 볼 수 있음
확장성
→ 사용자가 원하는 새로운 기능을 추가할 수 있는가
효율성
→ 작성된 프로그램이 효율적으로 수행될 수 있도록 하는가
유연성
→ 프로그래머가 표현하고 싶은 내용을 유연하게 수용하는가
이식성
→ 프로그램을 다른 실행 환경으로 이전할 수 있는가
→ 이식성이 좋은 대표적인 언어에는 'Java'가 있음
JVM만 설치한다면 어떤 실행환경이라도 프로그램을 실행할 수 있음
평가기준 \ 요구사항 | 표현 풍부성 | 유지 보수성 | 실행 가능성 |
작성력 | O | O | |
가독성 | O | ||
신뢰성 | O | O | |
직교성 | O | O | |
일관성 | O | O | |
확장성 | O | O | |
효율성 | O | O | |
유연성 | O | O | |
이식성 | O | O |
프로그래밍 언어의 평가 기준 사이의 절충
프로그램 사용자 측면 | 프로그램 개발자 측면 | ||||
검사 비용을 줄여야 함 |
효율성 | ↔ | 신뢰성 | 더 많이 검사해야 함 | |
간단한 기능이 이해하기 쉬움 |
가독성 | ↔ | 작성력 | 복잡하더라도 많은 기능이 지원되어야 함 |
|
안전을 위해 더 많은 제약을 함 |
신뢰성 | ↔ | 유연성 | 프로그램 작성 시 제약이 적어야 함 |
프로그래밍 언어의 선택 기준
- 해당 프로그래밍 언어를 사용하는 커뮤니티가 활발하고 호의적인 언어
→ 해당 언어에 대한 정보를 얻기 쉬움
- 특정 응용 분야가 존재하는 프로그래밍 언어
- 접해 보지 못한 프로그래밍 패러다임을 지원할 수 있는 프로그래밍 언어
즉, 본인의 상황과 취향에 맞추어 언어를 선택하는 것이 바람직함
한국방송통신대학 [프로그래밍 언어론] 강의 필기입니다.
'Study > 필기' 카테고리의 다른 글
[프로그래밍 언어론] 3-3 여러 패러다임의 프로그램 예 (0) | 2022.10.05 |
---|---|
[프로그래밍 언어론] 3-2 프로그래밍 언어의 패러다임 (0) | 2022.10.05 |
[프로그래밍 언어론] 3-1 프로그래밍 패러다임 (0) | 2022.10.04 |
[프로그래밍 언어론] 2-2 프로그램 동작 원리 (0) | 2022.10.04 |
[프로그래밍 언어론] 2-1 프로그래밍 언어의 발전 (1) | 2022.10.04 |