Major in CS/Programming Language(프로그래밍 언어론)

Programming Language 정리(1)

SHJuan 2018. 9. 30. 14:18

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 LanguageFlexibility, Reliability를 가지고 있다.

ex) C++, smalltalk등이 해당


4. Logical Language

Rule-Based Language라고도 한다.

특정 조건이 만족되면 특정 동작을 실행

사실(fact), 규칙(rule), 명령(Query)로 이루어져 있다.

ex) Prolog 등이 해당


5. Hybrid Language

여러가지 Model들의 특성을 잘 조합한 언어

ex) Python 등이 해당