본문 바로가기

CS

명령형 프로그래밍과 선언형 프로그래밍

안녕하세요 남갯입니다

 

오늘은 명령형 프로그래밍과 함수형 프로그래밍에 대한 정리를 해보려고 합니다.

 

일단 명령형 프로그래밍과 대비되는 단어는 선언형 프로그래밍입니다

 

선언형 프로그래밍이란?

선언형 프로그래밍은 모든 동작에 대한 기능들을 전부 선언해두고 사용하는것입니다.

예를들어 예전에 제가 컴포즈를 설명할때 소개했었던 내용인데, 컴퓨터는 선언된 함수들을 가지고

무엇을 할지를 만드는 프로그래밍이다. (What?)

 

선언형 프로그래밍에는 

논리적 프로그래밍과 함수형 프로그래밍이 속해있다.

 

 

논리적 프로그래밍이란? 

논리형 프로그래밍(영어: Logic programming)은 논리 문장을 이용하여 프로그램을 표현하고 계산을 수행하는 개념에 기반을 둔다.[1] 논리형 프로그래밍에서 볼 수 있는 일종의 논리 문장들은 (반드시 그런 것은 아니지만) 절대 문절 형태로 되어 있다:G if G1 and … and Gn

 

위 위키백과의 설명처럼 논리형 프로그래밍 말 그대로 수학적이나 어떤 논리적인 개념에 대한것을 계산을 수행하는것이다.

ko.wikipedia.org/wiki/%EB%85%BC%EB%A6%AC%ED%98%95_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D

 

함수형 프로그래밍이란?

2020.06.11 - [IT/코틀린으로 배우는 함수형 프로그래밍] - [코틀린으로 배우는 함수형 프로그래밍] 1장 함수형 프로그래밍이란?

 

여기서 정리한 내용이 있습니다.

 

 

 

명령형 프로그래밍 이란?

선언형 프로그래밍과는 조금 다르게 프로그래밍의 상태와 상태를 변경시키는 관점에서 명령법을 통해 어떤 동작을 할지에 대한 수행명령들을 순서대로 작성해둔것이다.

즉 간단하게 말하자면 동작을 어떻게 할지를 만드는 프로그래밍이다. (how?)

 

명령형 프로그래밍에서는 절차지향프로그래밍과 객체지향프로그래밍 두가지가 있다.

 

 

 

절차지향 프로그래밍이란?

절차지향적 프로그래밍은 프로그램의 절차적인 실행에 초점을 둔 프로그래밍입니다. 즉 순차적으로 위에서 아래로

진행되듯 수행되는 프로그래밍을 말하며

대표적으로 우리가 알고있는 언어는 C언어가 있습니다.

 

 

 

객체지향 프로그래밍이란?

객체를 실제 하나의 의인화시켜 각각의 객체를 독립적인 객체로 바라보는 프로그래밍을 말합니다.

객체들은 각자의 책임과 역할과 행동을 가지고 독립된 객체들끼리 협력을 통해 서로서로 필요한 데이터에 대해

메세지 전송&수신을 통해 메소드를 실행시킵니다. 상속 다형성 등 재사용성을 위한 코드작성에 용이한 장점을 갖고있고 대표적으로 알고있는 언어는 JAVA가 있습니다.