프로그래밍 언어의 발전

컴퓨터 시스템의 발전

  • 아이디어 시대
    • 계산 자동화를 위한 상상 속의 기계 설계(튜링기계)

  • 전자식 컴퓨터 등장
    • 전자 신호를 통한 계산 기계(애니악, 클로서스)

  • 프로그램 저장 방식의 컴퓨터
    • 프로그램과 처리를 분리(에드박)

운영체제의 발전

  • 일괄처리 운영체제
    • 관리자(operator)를 대신할 프로그램 등장

  • 시분할 운영체제
    • 한 컴퓨터를 여러 사람이 사용

  • DOS
    • IBM 컴퓨터, Apple 등 개인용 컴퓨터(PC) 등장

  • PC 환경 운영체제 발전
    • GUI 운영체제와 Linux의 발전

1950년대 : 초기 프로그래밍 언어

  • Fortran : 수식과 문장, 제어문의 등장
    • IBM의 존 배커스에 의해 개발됨
    • 과학 계산용 언어

  • Algol : 구조화 프로그래밍의 발전
    • 본래 이름 : IAL(Internation Algebraic Language)
    • 국제 위원회 ACM-GAMM을 통해 설계된 언어
    • 알고리즘 기술 언어

  • LISP : 초기 함수형 언어
    • MIT의 존 매카시가 설계함
    • 최초의 함수형 언어

1960년대 : 프로그래밍 언어의 발전

  • Cobol : 레코드 타입의 소개
    • 미 해군에서 그레이스 호퍼가 이끄는 팀에 의해 개발됨
    • 사무용 언어

  • PL/I : 너무 복잡한 언어
    • 모든 언어를 합쳐 보았으나 결과적으로 너무 복잡해짐

  • BASIC : 교육용 언어

  • Simula : 객체지향의 등장
    • 시뮬레이션 언어

1970년대 : 프로그래밍 언어의 단순화

  • Pascal : 차세대 교육용 언어
    • 구조화 프로그래밍 지원

  • C : 진정한 시스템 프로그래밍 언어
    • Unix 개발용 시스템 프로그래밍 언어
    • Objective-C, C++, Java, C# 등 다양한 언어에 지대한 영향을 끼침

  • Prolog : 선언적 논리 언어
    • 최초의 논리 언어

  • Smalltalk : 객체지향 언어의 발전
    • 최초로 GUI, 마우스 등을 도입

  • Ada : 안전성을 위한 대장정
    • 미 국방성(DoD) 공모
    • 매우 복잡한 언어로 1983년에 첫 컴파일러 등장

  • ML : 타입 시스템을 갖춘 현대 프로그래밍 언어
    • 강력한 정적 타입 검사, 타입 추론, 패턴 검사, 예외 처리 등

  • Scheme : 간결한 LISP
    • MIT 학생들의 기초 프로그래밍

  • Common Lisp : 방대한 LISP의 통합
    • 함수형 언어 패러다임과 객체지향 패러다임을 동시에 지원

  • Objective-C : C의 탈을 쓴 Smalltalk
    • C를 기초로 한 객체지향 언어의 신호탄
    • Apple의 애플리케이션 작성 언어로 발전

  • C++ : 객체지향으로 변신한 C
    • 클래스 개념을 C에 도입

  • Perl : 문자열 처리를 위한 언어
    • 정규식을 바탕으로 한 강력한 패턴 매칭 기능 포함

1990년대 : 프로그래밍 언어의 대중화

  • Java : 단순한 객체지향 언어
    • 원래 목적은 임베디드 컴퓨팅 분야였으나 웹 브라우저에 탑재되면서 인기
    • JVM (Java Virtual Machine)

  • JavaScript : 웹 프로그래밍 언어
    • Netscape
    • Elm, TypeScript 등 다양한 변종 언어로 발전

  • Python : 빠른 프로토타이핑 언어
    • 스크립트 언어
    • 동적 언어를 추구
    • 다중 패러다임 언어

  • Haskell : 순수 함수형 언어
    • 모나드(monad)가 탑재되면서 점차 인기
    • Scala에 영향을 줌

Updated: