세대별 언어(Generation Propramming Language)
세대별 언어로는 현재까지는 5세대까지로 나뉘어져 있다.
- 1세대 언어 : 기계어
- 2세대 언어 : 어셈블리어
- 3세대 언어 : 절차적 언어(procedural Language)
- 4세대 언어 : 비절차적 언어(Non-procedural Language)
- 5세대 언어 : 미래 언어
1세대 언어(1GL) : 기계어
프로그래밍을 할때의 최초의 언어. 기계어이다. 0과 1로만 이루어져 있어 속도가 매우 빠르나 해석도 힘들고 만들기도 힘들다.
특정 장치에만 사용하는 코드들이 거의 대부분이라 호환성이 전무하다.
2세대 언어(2GL) : 어셈블리어
속도를 제외하고 모든게 어렵고 불편한 기계어를 쉽고 편하게 만든기 위해 만들어진 언어 어셈블리어이다.
0과 1으로 이루어진 프로그래밍을 간단한 영어 단어로 할 수 있게 만들어 가독성과 프로그래밍을
주석을 달 수 있게 되어 다른 프로그래머가 이해하기 쉬워졌다.
명령어들을 0과 1로 변환하기 위해 어셈블러라는 프로그램이 필요하다.
조금 범용적으로 변하면서 약간의 호환성이 생겼다.
3세대 언어(3GL) : 절차적 언어(Procedural Language)
어셈블리어가 기계어 개선을 통해 편해졌다고 하지만 아직도 많은 불편함과 높은 문턱으로 개발이 힘들었다.
이런 문제들을 해결하기 위해 문법 구조를 이용하여 더 쉽고 빠르게 프로그래밍 하는 절차적 언어(Procedural Language)를 만들었다.
문법구조로 인해 전세대 언어(저급 언어 - Low Language) 대비 엄청난 가독성을 자랑하며 문턱이 많이 낮아졌다.
3세대 언어를 순차적 언어라고 불리기도 하며 3세대 이후부터 고급언어(High Language)라 불린다.
특정 기계와 상관없이 프로그램을 만들수 있다.
모듈화와 구조화를 할 수 있어 코드 재사용성이 늘어났다.
문법 구조인 언어이기 때문에 해석하기 위한 컴파일러, 인터프리터등이 필요하다.
4세대 언어(4GL) : 비절차적 언어(Non-procedural Language)
컴퓨터의 발전과 사용성 증대로 다양한 종류의 프로그램이 필요했다.
3세대 언어로는 따라가기 힘들어 생산성과 다양한 기능을 추가하며 순차적인 언어를 벗어난 언어를 만들어 냈다.
이 언어들을 비절차적 언어(Non-procedural Language)라 불린다.
문법 구조에서 문장 구조를 이용하며 과정을 보다는 결과를 도출하는 방식으로 빠르게 프로그램을 작성가능하다.
전 세대의 언어들보다 프로그램이 느려졌으며 덩치가 커졌다.(컴퓨터의 발전으로 어느정도 커버가능)
생산성이 매우 높아졌기 때문에 사용자들이 요구하는 서비스를 대응하기 쉬워졌다.
현재까지 개발된 언어들이 대부분 4세대 언어라 할 수 있다.
5세대 언어(4GL) : 미래 언어
여기서부터는 아직 개발 된것이 없고 다가올 5세대 언어에 대한 주장도 제각각이다.
추측을 해보자면 자연어 그대로 받아 들여 컴퓨터가 해석하여 만들어지는 프로그램,
사용자가 서비스를 요청하면 자동으로 만들어 주는 프로그램을 이용해 개발하지 않을까 싶다.
이쯤이면 언어로 보기엔 무리고 인공지능이라 봐야 될 것 같다.