Computer Science/Programming :: 프로그래밍언어론

프로그래밍언어론 강의 3화 :: 프로그래밍 패러다임

HJPlumtree 2021. 9. 7. 08:54

프로그래밍언어론 3화를 듣고 배운내용

 

프로그래밍 패러다임

프로그램을 작성하는 전형적인 방식

특정 언어에 종속적 X

프로그래머가 추구하는 프로그램 작성 방식

 

프로그래밍 패러다임 변화

  1. 명령형 프로그래밍 패러다임: 연산을 순서로 결정
  2. 절차형 프로그래밍 패러다임: 데이터 처리 방식 자체를 잘 정리(컴포넌트 방식인가?)
  3. 함수형 프로그래밍 패러다임: 값만 집중하자. 값을 넣고, 값만 받고
  4. 논리 프로그래밍 패러다임: 조건이 참 or 거짓, 규칙을 보자. 크게 보면 선언적 프로그래밍이다.
  5. 객체지향 프로그래밍 패러다임: 같은 데이터에 다른 처리 절차를 여러개 명시

프로그래밍 패러다임의 양립성

=> 언어들에서 프로그래밍 패러다임은 양립할 수 있다.

 

 

변화의 배경

응용 도메인의 변화

요구사항의 변화

계산 분야 => 다양한 응용 분야

 

구성방식의 변화

명령어 나열 => 존재하는 모듈의 조합

 

계산 모델의 변화

튜링기계 모델 => 새로운 방식의 계산 모델

 

 

명령형 프로그래밍

프로그램: 일련의 명령어 나열

장점: 프로그램을 쉽게 이해 가능

단점: 프로그램이 복잡한 경우 효과적 X

명령형은 순서대로 가다가 점프 시키는 명령어로 점프시킨다

예) BASIC의 GOTO

 

 

절차형 프로그래밍

프로그램: 서브루틴이라는 절차의 집합

장점: 재귀호출을 사용해 프로시저를 간단히 정의

 

 

구조화 프로그래밍

  • goto 없이 프로그램을 작성
  • 블록과 서브루틴 이용
  • 구조화된 제어문 사용

 

 

객체지향 프로그래밍

프로그램: 서로 통신할 수 있는 객체(object)의 집합

GUI 개발에 큰 획

프로그램 재사용 편의로 S/W 생산성에 크게 기여

 

객체의 개념

  • 상태를 유지하며 외부의 요청에 반응하는 데이터
  • 상태 - 필드(멤버 변수), 반응 - 메소드(멤버 함수)
  • 상태는 외부에 숨기고 메소드는 외부에 공개

 

 

함수형 프로그래밍

  • 데이터는 값으로, 명령어는 함수로 취급
    => 명령어가 데이터를 바꿀 수 없다
  • 대입문과 반복문 없다
  • 함수 자체도 값으로 취급 가능

 

 

프로그래밍 패러다임 특징

객체지향: 객체사이 통신을 통해 계산 표현

함수형: 함수의 적용을 통해 계산 표현

논리: 논리식의 진위를 증명하는 과정으로 계산 표현