[프로그래밍언어론] 개요
Programming language에 대해서
[프로그래밍언어론] 개요
Machine Language Assembly language High Level Language
✏️ Programming Language Paradigm
1. 절차적(Procedural) 패러다임:
- 프로그램을 순차적인 명령어 집합으로 구성 예: C, Pascal, Python (부분적으로).
2. 객체지향(Object-Oriented) 패러다임:
- 데이터와 데이터를 처리하는 방법(메서드)을 객체로 묶어 프로그램을 구성
- 상속, 다형성, 캡슐화, 추상화와 같은 개념을 사용한다. 예: Java, C++, Python, Ruby.
3. 함수형(Functional) 패러다임:
- 프로그램을 수학적 함수로 구성하고, 상태 변경과 부수 효과(side-effect)를 최소화 예: Haskell, Lisp, Scala, Elixir.
4. 논리형(Logic) 패러다임:
- 프로그램을 논리적인 명제와 규칙으로 구성하며, 논리 추론을 통해 문제를 해결
- 주로 선언적인 접근을 사용하여 원하는 결과를 명시하고, 그 결과를 도출하는 방법은 언어의 런타임이 결정 예: Prolog.
5. 선언적(Declarative) 패러다임:
- “무엇을” 해야 하는지를 기술하며, “어떻게” 해야 하는지는 명시하지 않습니다.
- 프로그래머는 목표나 결과를 선언하고, 실행 방법은 언어가 알아서 처리 예: SQL, HTML, CSS, 일부 함수형 프로그래밍 언어들
✏️ Syntax & Semantic
Syntax는 “어떻게 코드가 작성되어야 하는가?”에 대한 문제를 다루고, Semantic은 “코드가 무엇을 의미하고 어떤 동작을 수행하는가?”에 대한 문제를 다룬다.
■ Syntax (구문)
Syntax(구문)는 프로그래밍 언어에서 코드가 어떻게 작성되어야 하는지를 정의하는 규칙과 구조이다. 이는 언어의 문법과도 같으며, 코드가 특정한 형태를 갖추도록 규정한다.
- 예를 들어, 변수 선언, 함수 정의, 조건문, 반복문 등이 특정한 구조로 작성되어야 합니다.
1
2
3
4
5
6
7
8
# Python에서 올바른 구문:
if x > 10:
print("x is greater than 10")
# 잘못된 구문:
if x > 10
print("x is greater than 10")
# 위의 잘못된 구문 예제에서는 if 문 뒤에 :가 없기 때문에 구문 오류(Syntax Error)가 발생합니다. 이 오류는 Python이 요구하는 구문 규칙을 따르지 않았기 때문에 발생합니다.
■ 2. Semantic (의미)
Semantic(의미)는 프로그램이 실제로 수행하는 동작을 정의한다. 구문이 문법이라면, 의미는 그 문법을 해석한 후 실제로 수행되는 내용이다.
- 코드가 어떤 작업을 수행하며, 각 구문이 어떤 영향을 미치는지를 설명한다.
1
2
3
4
x = "5"
y = x + 10 # 의미 오류 발생
# 위 코드에서는 구문상으로는 문제가 없지만, x가 문자열 "5"이고,
# y에 x와 숫자 10을 더하려고 하면서 의미 오류가 발생합니다.
This post is licensed under
CC BY 4.0
by the author.