#저급언어 #고급언어 #컴파일러
저급언어
저급 언어는 기계 중심의 언어라고 말할 수 있다.
기계가 직접 알아들을 수 있는 말로 '프로그램 코드를 작성한다'고 말할 수 있다. 컴퓨터는 전기로 동작한다.
즉, 전기 신호인 켜졌다(on)과 꺼졌다(off) 2가지 상태 값을 동작한다고 말할 수 있다.
보통 숫자로 표현하면 켜졌다는 1, 꺼졌다는 0을 의미한다. 0과 1로 표현되는 숫자를 2진수라고 말한다.
2진수로 이뤄진 값으로 작성하는 프로그래밍 언어를 기계어(Machine Language)라고 말한다.
숫자로만 되어 있기 때문에 유지보수도 굉장히 어렵고, 사용도 굉장히 어렵다.
그래서 이 숫자로 된 문장과 1:1로 대응하는 기호를 만들고, 그 기호를 가지고 프로그래밍을 한다.
단 기호로 작성된 프로그램은 기계가 바로 알아들을 수 없기 대문에 기호로 작성된 문장들을 원래의 숫자로 바꿔야하는 과정이 필요하다. 이러한 과정에서 사용되는 도구를 컴파일러(Compiler)라고 말하며,
이러한 기호로 작성된 언어를 어셈블리어(Assembly Language)라고 말한다.
현재는 아주 특수한 경우를 제외하고는 기계어와 어셈블리어로 프로그램을 개발하는 경우는 거의 없다.
그만큼 프로그래밍이 어렵고 유지보수가 어렵기 때문이다.
고급언어
고급 언어는 사람 중심의 언어라고 말할 수 있다.
사람이 좀 더 이해하기 쉬운 문법으로 프로그래밍을 할 수 있다.
이런 일이 가능하기 위해서는 작성된 소스코드를 번역하는 과정이 필요한데, 이를 컴파일한다고 말하며,
이러한 일을 수행하는 것을 Compiler라고 말한다. (어셈블리어도 기계어로 컴파일 된다.)
컴퓨터 성능이 좋아지고, 컴파일러와 관련된 기술이 발전하면서 사람 중심의 언어로 프로그래밍할 수 있다고 생각하면 된다. 이러한 고급 언어로는 아래와 같은 언어들이 있다.
- FORTRAN
- 최초의 고급언어 중 하나
- 과학 계산용으로 주로 사용됨, 현재에도 공대에서 많이 사용
- COBOL
- FORTRAN과 더불어 역사가 오래된 언어
- 일반 업무에서 사용할 목적으로 만들어짐, 현재 은행 등에서 사용됨
- PROLOG
- 논리형 프로그래밍 언어
- 논리식을 토대로 객체와 객체 간의 관계에 관한 문제를 해결하기 위해 사용
- C
- 1972년 미국 벨 연구소의 데니스 리치에 의해 개발된 고급언어
- 시스템 프로그래밍에 가장 적합하다고 평가 받는 언어
- Erlang
- 스웨덴의 에릭슨이 개발한 함수형 병행성 프로그래밍 언어
- 통신 인프라를 위한 언어
- Lisp
- List Processor의 약자로 대표적인 함수형 언어
- 프로그래밍 언어의 역사를 말할 때, 고급 언어 중 가장 오래된 것이 포트란이고 두 번째가 리스프
- Swift
- 2014년 WWDC에서 공개한 프로그래밍 언어
- 최근에 만들어진 언어로 현대 프로그램 언어의 발전을 대다수 계승한 모던 프로그래밍 언어
- Kotlin
- IntelliJ IDEA의 개발사 JetBrains에서 2011년에 개발한 프로그래밍 언어
- JVM 기반의 언어이며 Java와의 상호 운영이 100% 지원됨
- Swift와 마찬가지로 현대 프로그래밍 언어의 발전을 대다수 계승한 모던 프로그래밍 언어
- Clojure
- 리치 히키가 만든 리스프 프로그래밍 언어의 방언
- 범용 함수형 언어
- Python
- 프로그래밍 입문자가 읽기 쉽고 적은 코드를 사용하여 프로그램을 개발할 수 있도록 하는 언어
- 많은 사람들에게 추천되는 언어이며, 데이터 과학에서도 자주 사용됨
- 웹사이트 개발에서도 많이 사용되며, 최근 Python은 ML(machine learning)에서 많이 사용됨
- JAVA
- 1995년 썬 마이크로 시스템즈에서 개발한 객체지향 프로그래밍 언어
- 엔터프라이즈 소프트웨어 환경에 잘 맞는 언어로 큰 규모의 소프트웨어 개발에 많이 사용된다.
- 거의 매년 세계에서 가장 많이 사용되는 인기 언어