언어 분류 — 절차·객체지향·함수형·선언형
저급(기계어·어셈블리) vs 고급(절차·객체지향·함수형·선언형) + 논리형(Prolog).
"언어-분류 짝짓기" 단답이 매회 필기에 출제된다. 주의: Lisp를 함수형, HTML을 선언형, Prolog를 논리형(엄밀) 또는 선언형(시험 교재)으로 분류. 교재별 표현 차이를 알아야 함정 선지를 피한다.
프로그래밍 언어는 추상화 수준과 패러다임으로 분류한다. 저급은 기계 중심(빠르지만 어려움), 고급은 사람 중심(쉽지만 번역 필요). 고급은 다시 "어떻게 실행할지" 기준으로 절차적·객체지향·함수형·선언형·논리형 등으로 나뉜다.
| 분류 | 핵심 특징 | 대표 언어 |
|---|---|---|
| 저급 | 기계·CPU 중심 | 기계어, 어셈블리 |
| 절차적(Procedural) | 순차 실행, 함수 호출 | C, Pascal, Fortran |
| 객체지향(OOP) | 클래스·객체·상속 | Java, C++, Python, C# |
| 함수형(Functional) | 불변성, 순수 함수 | Haskell, Lisp, Scala, Erlang |
| 선언형(Declarative) | "무엇을"만 기술 | SQL, HTML, CSS |
| 논리형(Logic) | 규칙·사실 기반 | Prolog |
절차형 vs 선언형 — 절차형은 HOW(어떻게), 선언형은 WHAT(무엇을)에 집중. `for (i=0; i<10; i++) sum+=arr[i];`(절차) vs `SELECT SUM(v) FROM t;`(선언).
교재별 표현 차이 주의 - HTML: 엄밀히는 "마크업 언어"이지만 정보처리기사 교재는 "선언형의 예시"로 제시. - Prolog: 엄밀히는 "논리형(Logic)" 독립 범주이지만 시험에서는 "선언형"에 포함시키기도 한다. - Python: 멀티패러다임이지만 시험은 객체지향 대표로 출제.
컴파일 vs 인터프리트 vs 하이브리드 — 컴파일은 전체를 한 번에 번역(C·C++). 인터프리트는 한 줄씩 실행(Python·JavaScript). 하이브리드는 중간 바이트코드 + VM 실행(Java·C#의 .NET).
SQL, HTML은 어떤 언어 분류에 속하는가?
Lisp는 ( ㉠ )형의 원조 언어이고, Prolog는 엄밀히 ( ㉡ )형으로 분류된다.
Java와 C#은 인터프리트 언어로 분류된다.
전체 소스를 한 번에 번역하여 실행 파일을 만드는 방식의 언어 구현을 무엇이라 하는가?