# 다중 패러다임 프로그래밍 언어

### 위키백과 ― 우리 모두의 백과사전.

다중 패러다임 프로그래밍 언어(multiparadigm programming language)는 하나 이상의 프로그래밍 패러다임을 지원하는 프로그래밍 언어이다. 이것은 비야네 스트롭스트룹이 설명하는, "하나 이상의 프로그래밍 스타일을 따르는 프로그램"을 허용한다. 이런 언어들의 설계 목표는 모든 문제를 가장 쉽고 효율적으로 풀 수 있는 하나의 패러다임은 없다는 것을 인정하고, 프로그래머가 자신의 일에 가장 적합한 것을 사용할 수 있게 하는 것이다.

가장 야심찬 예는 오즈인데, 오즈는 논리형 프로그래밍, 함수형 프로그래밍, 객체지향 프로그래밍, 자료흐름 병행 프로그래밍 등의 프로그래밍 패러다임을 지원한다. 오즈는 십년 이상의 기간을 들여 다른 프로그래밍 패러다임들과 전통적으로 연관되어 있던 개념들을 조화로운 방법으로 결합시키려 하였다.

## [편집] 다중 패러다임 언어의 예

지원하는 패러다임의 수와 형태로 묶을 수 있다.

### [편집] 두가지 패러다임

- 자료흐름, 비주얼
  - 랩뷰(LabVIEW)
- 함수형, 명령형
  - APL
- 함수형, 논리형
  - ALF
- 함수형, 객체지향 (클래스 기반)
  - 커먼 리스프
  - 딜런
  - Sather
- 함수형, 비주얼
  - 스프레드시트
- 명령형, 객체지향 (클래스기반)
  - PHP
  - 시뮬라
- 객체지향 (클래스기반), 비주얼
  - 라바 (프로그래밍 언어)

### [편집] 세가지 패러다임

- 병행, 자료흐름, 함수형
  - SISAL
- 병행, 함수형, distributed
  - 얼랑 (프로그래밍 언어)
- 병행, 함수형, 논리형
  - Curry
- 병행, imperative, 객체지향 (클래스기반)
  - ChucK
- 자료흐름, 객체지향 (클래스기반), 비주얼
  - Prograph
- 함수형, imperative, logic
  - Poplog
- 함수형, 명령형, 객체지향 (클래스기반)
  - BETA
  - J
  - 펄
  - Pliant
  - 파이썬
  - Tcl (클래스기반에 xotcl이나 itcl을 확장, 프로토타입기반에 snit을 확장)
- 함수형, 명령형, 객체지향 (프로토타입기반)
  - ECMA스크립트
    - 액션스크립트
    - DMDScript
    - E4X
    - 자바스크립트
    - J스크립트
  - 루아
  - Tcl (snit 확장)
- 제네릭 (템플릿 메타프로그래밍), 명령형, 객체지향 (클래스기반)
  - C++
  - D

### [편집] 네가지 패러다임

- 함수형, 제네릭 (템플릿 메타프로그래밍), 명령형, 객체지향 (클래스기반)
  - Objective Caml
- 함수형, 명령형, 병행 (Actor model), 객체지향 (프로토타입기반)
  - 아이오
- 함수형, 명령형, 병행, 객체지향 (클래스기반)
  - 루비
- 함수형, 명령형, 논리형, 객체지향 (클래스기반)
  - 레다
- 명령형, 논리형, 객체지향 (클래스기반), 규칙기반
  - ROOP
- 함수형, 명령형, 객체지향 (프로토타입기반), 사투리 (프로그래밍)
  - REBOL

### [편집] 다섯가지 패러다임

- 병행 (rendezvous 기반), 분산, 제네릭, 명령형, 객체지향 (클래스기반)
  - 에이다

### [편집] 여덟가지 패러다임

- 병행, 제한, 자료흐름, 분산, 함수형 (evaluation: eager, lazy), 명령형, 논리형, 객체지향 (클래스기반)
  - 오즈
    - 모차르트 프로그래밍 시스템 - 오즈의 다중 플랫폼

## [편집] 같이 보기

- 프로그래밍 패러다임
- 프로그래밍 언어의 종류별 목록

## [편집] 참고자료

- ((영어)) Multiparadigm Design for C++, by Jim Coplien, 1998.
- ((영어)) Concepts, Techniques, and Models of Computer Programming, by Peter Van Roy and Seif Haridi, 2004.

## [편집] 외부 링크

- ((영어)) MultiParadigmProgrammingLanguage on the C2 wiki
- ((영어)) Open Directory: Programming: Languages: Multiparadigm

원본 주소 ‘http://ko.wikipedia.org../../../%EB%8B%A4/%EC%A4%91/_/%EB%8B%A4%EC%A4%91_%ED%8C%A8%EB%9F%AC%EB%8B%A4%EC%9E%84_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D_%EC%96%B8%EC%96%B4.html’

분류: 프로그래밍 언어

##### Views

- 문서
- 토론
- 현재 버전

##### 찾기

##### 다른 언어

- English
- Español
- 日本語
- Nederlands
- Русский