프로그래밍 언어란
- 프로그래밍 언어는 계산 과정을 기계가 읽을 수 있고 사람이 읽을 수 있도록 기술하기 위한 일종의 표기법
- 기본 이론 : 구문법 (Syntax), 의미론 (Sementics), 타입 시스템(Type System) 등
프로그래밍 언어의 종류
- 명령형 프로그래밍(imperative programming) : 문제를 해결하는 절차를 기술 혹은 명령하는 방식의 프로그래밍 스타일.
명령어 들은 주로 프로그래밍 상태를 변경하는 역할을 함.
(ex. C, Pascal, Ada, Python)
- 함수형 프로그래밍(functional programming) : 프로그램의 계산 과정을 수학 함수의 수행으로 간주하는 프로그래밍 스타일.
(ex. Lisp, Scheme, ML, Haskell)
- 논리 프로그래밍(logic programming) : 논리 프로그래밍은 술어 논리(Predicate logic)을 기반으로 한 프로그래밍 스타일.
프로그램을 문제에 대한 사실 혹은 규칙을 표현하는 논리 문장들의 집합으로 구성.
(ex. Prolog)
- 객체지향 프로그래밍(object-oriented programming) : 실세계를 모의실험 하기 위한 언어로 고안.
객체는 속성과 그 속성에 대한 행동들을 포괄하는 개념.
프로그램 실행은 객체 사이의 상호작용에 의해 이루어짐.
(ex. C++, Java, Object-C, C#, Visual Basic)
추상화(abstraction)는 실제적이고 구체적인 개념들을 요약하여 보다 높은 개념을 유도하는 과정.
데이터 추상화(data abstraction)는 저수준의 데이터나 자료형들을 요약하고 추상화하여 보다 고차원의 새로운 자료형 또는 자료구조를 만드는 과정
제어 추상화(control abstraction)는 실행 흐름을 나타내는 저수준 명령어들을 요약하고 추상화하여 보다 고차원의 제어구조를 만드는 과정
추상 자료형(abstract data type)은 데이터와 과련된 연산들을 한데 묶어 캡슐화 하여 정리한 자료형
어휘구조(lexical structure)는 언어에서 사용하는 단어의 구조, 철자법 등을 의미
구문법(syntax)는 문장을 구성하는 방법을 의미
의미론(semantics)은 작성된 문장 혹은 프로그램의 의미를 정하는 것으로 프로그램의 의미를 자연어를 사용해 기술하거나 수학적으로 기술
인터프리터는 소스프로그램을 입력받아 구문법에 맞게 작성되었는지 검사하고 그 의미를 파악하여 그에 맞게 동작하도록 해석함
컴파일러는 소스프로그램을 입력받아 구문법에 맞게 작성되었는지 검사하고 그 의미를 파악하여 그에 맞게 동작하도록 기계어 명령어들로 변역
'프로그래밍 언어론' 카테고리의 다른 글
[프로그래밍 언어론] 자료형(data type) (0) | 2022.08.22 |
---|---|
[프로그래밍 언어론] 의미론(sementics) (0) | 2022.08.22 |
[프로그래밍 언어론] 변수, 유효 범위 (0) | 2022.08.21 |
[프로그래밍 언어론] 추상 구문 트리와 어휘 분석기 (0) | 2022.08.21 |
[프로그래밍 언어론] 구문법(Syntax) (0) | 2022.08.21 |