Skip to content

Programming language

프로그래밍 언어는 컴퓨터 시스템을 구동시키는 소프트웨어를 작성하기 위한 언어이다. 고급 언어일수록 사람이 사용하는 언어에 가깝다.

일반적으로 말할 때에는 프로그래밍 언어를 지원하는 소프트웨어, 곧 소프트웨어를 작성하기 위한 소프트웨어를 가리키는 때가 많고, 이때에는 프로그래밍 언어와 소프트웨어를 구분하지 않고 소프트웨어를 프로그래밍 언어로 보기도 한다. 예를 들면, 델파이는 프로그래밍 언어인 오브젝트 파스칼을 지원하는 소프트웨어를 작성하기 위한 소프트웨어일 뿐이지만, 델파이를 별개의 프로그래밍 언어로 보는 때가 더 많다.

Category

저급언어 (Low-level programming language)

저급 프로그래밍 언어란 컴퓨터 내부에서 바로 처리가능한 프로그래밍 언어로, 일반적으로 기계어와 어셈블리어를 일컫는다. 강력하나 배우기 어려운 것이 단점으로, 현재는 특수한 경우가 아니면 사용되지 않는다. 저급언어와 반대되는 것으로 고급 프로그래밍 언어가 있다.

고급언어 (High-level programming language)

고급 프로그래밍 언어란 사람이 알기쉽도록 씌어진 프로그래밍 언어로서, 저급 프로그래밍 언어보다 가독성이 높고 다루기 간단하다는 장점이 있다. 컴파일러나 인터프리터에 의해 저급 프로그래밍 언어로 번역되어 실행된다. C 언어, 자바, 베이직 등 대부분의 프로그래밍 언어들은 고급언어에 속한다.

프로그래밍 언어의 사용방법 비교

언어

실행 모델

영향 받음

프로그래밍 패러다임

타입 시스템

등장시기

에이다

컴파일러

알골 (Ada 83), 파스칼, C++ (Ada 95), 스몰토크 (Ada 95), 자바 (Ada 2005)

동시성, 분산, 제네릭, 명령형, 객체지향

static, strong, safe, nominative

1983

알골

컴파일러

명령형

static, strong, safe

1958

알골 60

컴파일러

알골 58

명령형

static and dynamic typing, strong, safe

1960

알골 68

인터프리터 / 컴파일러 / JIT 컴파일러

알골 60

동시성, 명령형

static and dynamic typing, strong, safe, structural

1968

APL

대부분 인터프리터, 약간 컴파일러

배열지향

1964

B

인터프리터, 컴파일러

BCPL, Bon

명령형

1969

베이직

인터프리터, 컴파일러

1963

C

컴파일러

알골 68, B

명령형, flow-driven

static, weak, unsafe

1973

C++

컴파일러

C, 시뮬라, 알골 68

명령형, 객체지향, 제네릭, 다중 플랫폼

static, strong, unsafe, nominative

1985

C#

JIT 컴파일러

델파이, 자바, C++, 파이썬

명령형, 객체지향, 제네릭

static, strong, both safe and unsafe

2000

코볼

컴파일러

FLOW-MATIC, COMTRAN

명령형, 객체지향

weak/strong

1959

콜드퓨전

JIT 컴파일러

HTML

절차적, 함수형, 객체지향

dynamic (덕 타이핑), weak

1995

커먼 리스프

컴파일러

리스프, 스몰토크

명령형, 함수형, 객체지향

dynamic, strong, safe

1984

D

컴파일러

C , C++, 자바, C#

명령형, 객체지향, 제네릭

static, strong, unsafe, contracts

2000

Eiffel

컴파일러

에이다, 시뮬라

명령형, 객체지향, 제네릭

static, strong, safe, nominative, contracts

1985

얼랭

컴파일러 / 인터프리터 / JIT 컴파일러

프롤로그, Ericsson Pascal, CSP

함수형, 동시성, 분산, 다중 플랫폼

dynamic, weak

1987

F#

JIT 컴파일러

C#, 오브젝티브 Caml

함수형, 객체지향, 명령형, 제네릭

static, strong, safe, nominative, 타입 유추

2005

Forth

인터프리터 / 컴파일러

RPN, 어셈블리어

명령형, 스택지향

typeless

1977

포트란

컴파일러

APL (포트란 90), 알골 68 (포트란 90), C (포트란 2003)

명령형, 절차적, 객체지향

static, strong, safe, nominative

1957

하스켈

인터프리터 / 컴파일러

미란다, ML, λ-calculus

함수형, 제네릭, lazy evaluation

static, strong, 타입 유추

1990

아이오

인터프리터

스몰토크, 셀프, 루아, NewtonScript, Act1

명령형, 객체지향

dynamic

2002

자바

인터프리터 / JIT 컴파일러

C++, 오브젝티브-C, C#

명령형, 객체지향, 다중 플랫폼, 제네릭

static, strong

1994

자바스크립트

인터프리터,JIT 컴파일

C, 셀프, awk, Perl

명령형, 객체지향, 함수형

dynamic

1995

Joy

인터프리터

RPN, Forth, 포스트스크립트

함수형, 스택지향

typeless

2005

리스프

인터프리터, 컴파일러

λ-calculus

함수형

dynamic, strong

1958

루아

인터프리터, JIT 컴파일러

파이썬, 아이콘, 리스프, 스킴

절차적, 명령형, 반영

dynamic, strong, safe

1993

Mathematica

인터프리터

리스프, APL

함수형, 절차적

dynamic, strong

1986

오브젝티브-C

컴파일러

C, 스몰토크

명령형, 객체지향

static/dynamic hybrid, strong

1986

오브젝티브 Caml

인터프리터 / 컴파일러

ML, 리스프

객체지향, 함수형, 명령형, 제네릭

static, safe, structural, 타입 유추

1996

오브젝트 파스칼 (델파이)

컴파일러

파스칼

명령형, 객체지향, 다중 플랫폼

static, strong, safe (but unsafe allowed), nominative

1985

오즈

컴파일러 / 인터프리터

프롤로그

논리형,함수형, 명령형, 객체지향, 동시

1991

파스칼

컴파일러

알골 60

명령형

static, strong, safe

1970

Perl

인터프리터

C, 셸, awk, sed, 리스프

함수형, 객체지향, 절차적

dynamic

1987

PHP

인터프리터

Perl, C, C++, 자바

명령형, 객체지향

dynamic, weak

1995

프롤로그

컴파일러 (WAM)

논리형-oriented

dynamic, strong

1972

파이썬

인터프리터 / JIT 컴파일러

ABC, 알골 68, C, Perl, 모듈라-3

명령형, 객체지향, 함수형, 애스펙트지향

dynamic (덕 타이핑), strong

1991

루비

인터프리터

스몰토크, Perl, 파이썬, 리스프

명령형, 객체지향, 함수형, 애스펙트지향

dynamic (덕 타이핑), strong

1995

스칼라

인터프리터 / 컴파일러

자바

객체지향, 함수형, 제네릭

static, strong, 일부 타입 유추

2003

스킴

인터프리터 / 컴파일러

리스프, 알골 60

함수형

latent

1975

본 셸

인터프리터

알골 68

명령형

weak

1977

스몰토크

JIT 컴파일러

Sketchpad, 시뮬라, 리스프

객체지향, 함수형, 동시, 이벤트 처리, 명령형, 선언형

dynamic, strong, safe, 덕 타이핑

1971

Tcl

인터프리터 / JIT 컴파일러

C, 리스프, 셸, awk, sed

함수형, 객체지향, 명령형, 절차적, 이벤트 처리

dynamic

1988

비주얼 베이직

컴파일러

퀵베이직

컴포넌트 지향, 이벤트 처리

static/dynamic hybrid, weak/strong hybrid, safe, nominative

1991

비주얼 베이직 닷넷

JIT 컴파일러

비주얼 베이직

객체지향, 이벤트 처리

static, strong

2001

비주얼 프롤로그

컴파일러

프롤로그, C++, C#, 하스켈, SML

논리형, 객체지향, 함수형, 이벤트 처리, 명령형, 선언형

static, strong, safe, nominative/structural

1985

Favorite site

References


  1. Hyperpolyglot.org.zip