선언적 프로그래밍과 절차 적 프로그래밍 패러다임의 차이점은 무엇입니까?
선언적 프로그래밍 패러다임 과 절차 적 프로그래밍 패러다임 의 차이점은 무엇입니까 ? 몇 가지 예를 들어 주시겠습니까?
다른 프로그래밍 패러다임은 무엇입니까?
피할 수 없는
절차 적 또는 객체 지향 프로그래밍 패러다임 과 같은 명령형 프로그래밍 패러다임에는 여러 하위 패러다임이 있습니다.
명령형 프로그래밍 패러다임에서는 다양한 추상화 수준에서 알고리즘을 단계별로 설명합니다.
절차 적 패러다임을 지원하는 프로그래밍 언어의 예 :
- C (및 대부분의 다른 레거시 언어)
- PHP, 대부분
- 어떤 의미에서 모든 주요 언어는
객체 지향
일반적으로 기본 유형에서 파생 유형으로 메서드와 상태를 모두 상속하는 유형 의 계층 구조 를 나타내는 언어를 나타내지 만 특이한 프로토 타입 기반 JavaScript도 포함합니다.
OO 패러다임을 지원하는 프로그래밍 언어의 예 :
- 자바
선언적
기능적 또는 논리 프로그래밍 패러다임과 같은 선언적 프로그래밍 패러다임에는 여러 하위 패러다임이 있습니다.
선언적 프로그래밍 패러다임에서는 결과 또는 목표를 설명하고 " 블랙 박스 " 를 통해 얻을 수 있습니다 . 명령 의 반대입니다 .
선언적 프로그래밍 패러다임을 지원하는 프로그래밍 언어의 예 :
- 야크
- 나무 꼭대기
- SQL
- 정규식
- 법률
- XSLT
- 마크 업, troff, CSS, VHDL
기능의
함수형 프로그래밍은 부작용이없고 변경 가능한 상태가없는 함수의 적용을 강조합니다. 위의 선언적 시스템은 함수형 프로그래밍의 특정 측면을 보여줍니다.
선언적 기능 패러다임을 지원하는 프로그래밍 언어의 예 :
- Haskell
- OCaml
- 계획
- 얼랑
- 에프#
- 스칼라
선언적 프로그래밍은 방법을 말할 필요없이 원하는 것을 말하는 곳입니다. 절차 적 프로그래밍에서는 결과를 얻기 위해 정확한 단계를 지정해야합니다.
예를 들어 SQL은 쿼리가 결과를 생성하는 단계를 지정하지 않기 때문에 절차 적보다 선언적입니다.
실제 예를 들어 보겠습니다. 차 한 잔이 필요합니다.
절차 :
- 주방으로 이동
- 설탕, 우유, 차를 마시고
- 그들을 섞고 불에 끓을 때까지 가열하십시오
- 컵에 담아서 가져와
선언적 :
- 차 한 잔주세요.
절차 적 언어에서는 전체 프로세스를 정의하고이를 수행하는 단계를 제공합니다. 주문을 제공하고 프로세스가 제공되는 방식을 정의하기 만하면됩니다.
선언적 언어에서는 명령 또는 순서를 설정하고 해당 순서를 완료하는 방법을 시스템에 표시합니다. 어떻게해야하는지 파헤 치지 않고 결과 만 있으면됩니다.
절차 적 프로그래밍 :
절차 적 프로그래밍에서 프로그램이 시작되면 일련의 명령을 따릅니다. 지침은 일부 파일 또는 메모리 콘텐츠에 따라 변경 될 수 있지만 전반적으로 크게 다르지 않습니다. 프로그램에 대한 입력은 일반적으로 실시간 사용자 입력이 아니라 미리 수집 된 데이터 세트에서 발생합니다.
선언적 프로그래밍 :
In Declarative Event driven programming centralizes around a body of data with optional actions the program can take on it. For example, each "event" in a word processor is any mouse or keyboard (or file) changes that affect the data, the document(s). They need not be performed in any order. Event driven programming takes the form of small programs (event handlers) that all work on a common set of data, so that each small program can use the same data, the document in this example.
In procedural approach you encode your instruction to achieve the result. In the declarative approach you define what needs to be solved as the knowledge of solving the problem. Have a look at Procedural or Declarative approach example I implemented in both approaches.
As you would see in the example, in declarative approach, you do not need to instruct HOW to solve the problem.
'developer tip' 카테고리의 다른 글
만드는 방법 (0) | 2020.09.09 |
---|---|
fs.writeFileSync를 사용하여 JSON 파일에 JSON 객체 쓰기 (0) | 2020.09.09 |
iOS 앱이 승인 된 후 iTunes Connect에서 스크린 샷 편집 (0) | 2020.09.09 |
테이블 잠금없이 거대한 MySQL 프로덕션 테이블에 인덱스 생성 (0) | 2020.09.09 |
django admin-모델의 일부가 아닌 사용자 정의 양식 필드 추가 (0) | 2020.09.09 |