본문 바로가기

공부/프로그래밍언어론

프로그래밍 언어의 세대론과 미래

프로그래밍 언어의 세대구분(견해에 따른 2가지 분류)

 - 첫번째 분류

  • 1세대: 어셈블리 언어
  • 2세대: 비구조형 고급 언어
    Fortran, Cobol, Basic 등: 비구조형 언어
  • 3세대: 구조형 고급 언어
    PL/1, Pascal, C 등: 프로시저 위주의 고급 언어
  • 4세대: 화일처리(SQL등)
  • 5세대: 초 고급 언어
    Prolog, SETL 등: 초 고급 언어

 - 두번째 분류

  • 1세대: 기계어
  • 2세대: 어셈블리 언어
  • 3세대: 고급 언어
  • 4세대: 화일처리(SQL등)
  • 5세대: 초 고급 언어

4세대 언어 특징

  • 소프트웨어의 위기 (software crisis)
  • 4세대 언어들은 데이터베이스 시스템을 위해 만들어진 명령어로 출발 에디터(editor)
    디버거
    (debugger), 서류작성기나 제어용 유틸리티와 같은 개발도구들과 함께 디자인
    환경에 포함
    대표적 예) SQL(Structured Query Language), Lotus, Delphi
  • 거대한 화일 처리 응용 프로그램을 몇 개 안 되는 코드로 신속하게 작성
  • 언어 설계 이론에 공헌한 바는 작지만 실용성 큼
  • 최근의 Visual Basic, Visual C++, Power Builder도 이 부류에 속함

명세 언어

  • 사용자가 원하는 바를 서술하면 시스템이 요구 사항을 구현해 주는 언어
  • 1979, Winograd의 명세 언어에 대한 견해

"고급 언어는 기계어 코드의 복잡함과 난해함을 탈피할 수있게하며, 고급언어시스템은 복잡한
시스템이나 구성 요소를 이해하여 다룰 수 있게 한다
.

이제는 알고리즘의 세부적인 명세로부터 떠나서 우리가 작성한 패키지나 객체의 성질을
기술하는데 집중시킬 필요가 있다
. , 새로운 세대의 프로그래밍 도구가 될 조건은 프로그래밍
시스템이 명령이 아닌 선언인데
, 즉 프로그램의 주작업이 알고리즘을 수행하는 명령문들의
나열보다는 계산과정과 계산이 수행되는 객체
(object)를 묘사하는 작업을 수행하는 방향으로
가게될 것이다."

  → 논리형 언어와 5세대 언어가 시도하는 바를 기술

이런 언어들은 모범안을 빠르게 기술하는 방법만을 제공

소프트웨어 위기(software crisis)의 극복

  • 언어적 기술보다는 조직적인 방법으로 해결
    • 기존 코드의 재사용 증대
    • 이식성 증대
    • 문법 위주의 에디터를 사용하여 프로그래머의 생산성 높임

언어 설계의 미래

  • 하드웨어와 컴퓨터 구조의 발달에 의해 영향 받음
  • 새로운 언어의 출현보다는 기존 언어들을 갈고 닦아, 언어 설계에 대한 이해를 점진적으로
    증가시키는 방향으로 예상됨