Computer Science/프로그래밍 언어론

01. 프로그래밍 언어와 역사

JuniTech 2023. 7. 19. 19:56
728x90

프로그래밍 언어란?

  • 계산 과정을 기계가 읽을 수 있고 사람이 읽을 수 있도록 기술하기 위한 일종의 표기법
    • 계산(Computation)
      • 데이터 조작
      • 텍스트 처리
      • 알고리즘
    • 기계 읽기(Machine readability)
      • 효율적인 번역 혹은 실행
    • 사람 읽기(Human readability)
      • 프로그래밍 편의성
      • 컴퓨터 연산들의 이해하기 쉬운 추상화

프로그래밍 언어 패러다임

명령형 프로그래밍(imperative programming)

  • 문제를 해결하는 절차(명령)을 기술하는 방식의 프로그래밍(명령어 순서대로!)
  • C, Pascal, Ada, Python

함수형 프로그래밍(functional programming)

  • 프로그램의 계산 과정을 수학 함수 형태로 프로그래밍
  • 프로그램은 함수 정의들로 구성됨.
  • Lisp, Scheme, ML, Haskell

논리 프로그래밍(logic programming)

  • 정형 논리(formal logic)를 기반으로 한 프로그래밍
  • 프로그램은 문제에 대한 사실/규칙을 표현하는 논리 문장으로 정의된다.
  • Prolog

객체지향 프로그래밍(object-oriented programming)

  • 객체 개념을 기반으로 하는 프로그래밍
  • 프로그램 실행은 객체 사이의 상호작용에 의해 이루어진다.
  • C++, Javca, C#, Objective-C, Swift
  • Python, Visual Basic

프로그래밍 언어 발전 과정

프로그래밍 언어의 역사

주요 프로그래밍 언어의 발전 과정

 

프로그래밍 언어 사용 현황

https://www.tiobe.com/

프로그래밍 언어의 발전 과정

  • 역사적 발전 과정
    • 최초의 컴퓨터(ENIAC)가 만들어지면서 프로그래밍 언어가 개발되기 시작했을 것이다.
  • 컴퓨터
    • 폰 노이만 모델 컴퓨터 → 적어도 공대생이면 알아야 할 지식 중 하나
  • 초창기 프로그램 ⇒ 컴퓨터에 명령하는 기계어 명령어들로 작성했다.

Von Neuman Model Computer

폰노이만 모델 컴퓨터 작동 원리

  • 프로그램 내장 방식 컴퓨터이다.
    • stored-program computer
    • 메모리에 프로그램(명령어와 데이터) 저장
  • 메모리에 저장된 명령어들을 순차 실행한다.
    • CPU sequentially execute instructions in memory
    • PC : 다음 실행할 명령어를 가리키는 레지스터
  • 명령어
    • 메모리에 저장된 값을 조작 혹은 연산
    • instructions operate on values stored in memory
  • CPU의 인출-해석-실행(fetch-decode-execute) 주기 반복
  • CPU는 메모리 내에 저장되어 있는 프로그램의 명령어를 한 번에 하나씩 가져와서 해석하고 실행한다.

명령형 언어(Imperative language)

  • 명령형 언어의 발전
    • Imperative programming languages began by imitating and abstracting the operations of von Neuman model computer
    • Fortran, C, Basic, …
  • 폰 노이만 모델 컴퓨터의 특징을 많이 갖고 있음!
    • 순차적 명령어 실행
    • 메모리 위치를 나타내는 변수 사용
    • 대입문을 사용한 변수 값 변경
    • 사람의 필요보다는 컴퓨터 모델을 기반으로 한 언어
  •