Language: 사람 사이에 의사소통하기 위한 도구
Programming Language: 사람과 컴퓨터 사이에 의사소통하기 위한 도구
Formal Language: 주어진 alphabet(symbol)에 대해, 그 symbol로 만들 수 있는 string의 유한집합.
Attribute of Good Programming Language
1. Orthogonality(직교성)
다양한 언어 구성요소들이 각각의 의미를 유지하여 결합할 수 있음.
2. Support for abstraction(추상화)
추상적인 개념을 구현하기 쉽다.
3. Natural for various application
여러 분야에서 자연스럽게 적용할 수 있다.
4. Easy of program verifying and debugging
프로그램을 확인하고, 오류를 찾아내기 쉽다.
5. Portability and Translation
이식, 번역이 쉽다.
6. 개발환경
좋은 IDE가 제공되어 개발하기 쉽고 좋은 성능을 내준다.
7. 개념의 명확성
좋은 가독성
8. 사용 비용
실행 시간, 공간 비용 등
9. 명확한 문법과 의미
문법-언어의 형식이 명확하고 잘 구성, 조합이 용이
의미-의미의 해석이 용이(구현의 용이성)
Models of Programming Languages
1. Imperative Language
연속적인 명령들로 구성
각 명령을 interpreter가 해석하여 system status를 바꾼다.
ex) C, Fortran, Algol, PASCAL 등이 해당
2. Functional Language
Applicative Language라고도 한다.
자료 처리를 수학적 함수의 계산으로 취급한다.
함수의 도출 결과를 또다른 함수의 인자로서 사용할 수 있다.
ex) LISP, ML등이 해당
3. Object Based Language
객체 지향언어.
복잡한 객체(Object)는 더 간단한 객체를 확장해서 구현
Imperative Language의 효율성을 가지고 있다.
Functional Language의 Flexibility, Reliability를 가지고 있다.
ex) C++, smalltalk등이 해당
4. Logical Language
Rule-Based Language라고도 한다.
특정 조건이 만족되면 특정 동작을 실행
사실(fact), 규칙(rule), 명령(Query)로 이루어져 있다.
ex) Prolog 등이 해당
5. Hybrid Language
여러가지 Model들의 특성을 잘 조합한 언어
ex) Python 등이 해당
'Major in CS > Programming Language(프로그래밍 언어론)' 카테고리의 다른 글
Programming Language 정리(2) (0) | 2018.09.30 |
---|