프로그래밍 언어는 개발 편의성에 따라 저급 언어와, 고급 언어로, 실행하는 방식에 따라 명령형, 함수형, 논리형, 객체지향형 언어로 구현 기법에 따라 컴파일 방식의 언어, 인터프리터 방식의 언어, 혼합형 언어로 분류할 수 있다.
종류 | 설명 |
---|---|
저급언어 | 기계가 이해할 수 있도록 만들어진 언어 ex) 기계어, 어셈블리어 |
고급언어 | 개발자가 소스 코드를 작성할 때 쉽게 이해할 수 있도록 작성된 언어 ex) C, C++, 자바, 파이썬 |
종류 | 설명 |
---|---|
명령형 언어 | - 컴퓨터에 저장된 명령어들이 순차적으로 실행되는 프로그래밍 방식 - 절차형 언어라고도 불림 ex) FORTRAN, COBOL, PASCAL, C |
객체지향 언어 | 객체 간의 메시지 통신을 이용하여 프로그래밍 하는 방식 ex) 자바, C++ |
함수형 언어 | 수학적 수식과 같은 함수들로 프로그램을 구성하여 호출하는 방식 ex) LISP |
논리형 언어 | 논리 문장을 이용하여 프로그램을 표현하고 계산을 수행하는 개념에 기반한 프로그래밍 방식 ex) 프롤로그 |
종류 | 설명 |
---|---|
컴파일 방식의 언어 | - 고급 언어를 기계어로 번역하는 방식의 언어 - 컴파일러에 의해 실행에 필요한 정보가 미리 계산되어 실행 속도가 높음 ex) FORTRAN, PASCAL, C, C++ |
인터프리터 방식의 언어 | - 고급 언어 명령문을 하나씩 번역하고 실행하는 방식의 언어 - 프로그램 실행과 동시에 동작 ex) BASIC, 프롤로그, LISP |
혼합형 방식의 언어 | 고급 언어를 컴파일하여 중간 언어로 변환한 후, 인터프리터에 의해 번역을 실행하는 방식의 언어 ex) 자바 |
종류 | 설명 |
---|---|
알골(ALGOL) | - 알고리즘의 연구개발에 이용하기 위한 목적으로 생성 - 절차형 언어로는 최초로 재귀 호출이 가능 - 이후 언어의 발전에 큰 영향을 미침 |
C언어 | - 유닉스 운영 체제에서 사용하기 위해 개발한 프로그래밍 언어 - 모든 컴퓨터 시스템에서 사용할 수 있도록 설계된 프로그래밍 언어 |
베이직(BASIC) | - 교육용으로 개발되어 언어의 문법이 쉬움 - 다양한 종류의 베이직이 존재 - 서로 다른 종류 사이의 소스 코드는 호환되지 않음 |
포트란(FORTRAN) | - 과학계산에서 필수적인 벡터, 행렬 계산 기능 등이 내장된 과학 기술 전문 언어 - 산술 기호, 삼각함수, 지수함수, 대수 함수 등과 같은 수학 함수들 사용 가능 |
종류 | 설명 |
---|---|
C++ | - C++는 C문법에 객체지향 프로그램이 개념과 일반화 프로그래밍을 위한 템플릿 기능이 추가 - C++ 개발자는 원하는 많은 작업을 성능 하락이 없는 형태로 개발이 가능 - 직접 신경 써야 하는 것들(메모리 관리)이 많은 언어이기 때문에 개발이 어려움 |
C# | - 마이크로소프트에서 개발한 객체지향 프로그래밍 언어 - C++과 자바의 문법과 비슷한 문법을 가지고 있음 - C#은 자바와 달리 불완전 코드(Unsafe Code)와 같은 기술을 통하여 플랫폼 간 상호 운용성 확보 |
자바(JAVA) | - 자바는 썬 마이크로 시스템즈(Oralce 합병됨)가 개발한 객체지향적 프로그래밍 언어 - 현재 웹 애플리케이션 개발에 가장 많이 사용하는 언어 - 자바 컴파일러는 자바 언어로 작성된 프로그램을 바이트 코드라는 특수한 바이너리 형태로 변환 |
델파이(Delphi) | - 기본적인 문법은 파스칼 문법에 여러 기능이 추가되어 존재 - 델파이는 윈도즈(Windows) 아래에서 모든 부분을 프로그래밍 할 수 있는 언어 - 높은 생산성과 간결한 코드가 대표적인 장점이고, C++와 비슷한 수준의 저수준 시스템 프로그래밍도 가능 |
종류 | 설명 |
---|---|
PHP | - 동적 웹 페이지를 만들기 위해 설계됨 - PHP로 작성된 코드를 HTML에 입력 시 웹 서버에서 해당 코드를 인식하여 작성자가 원하는 웹 페이지를 생성 - 인터페이스 방식의 자체 인터프리터를 제공 |
펄(Perl) | - 인터프리터 방식의 프로그래밍 언어 - 실용성을 모토로 하고 있어 C, 쉘 스크립트(sh) 등 다른 프로그래밍 언어에서 뛰어난 기능을 많이 도입 - 불특정한 데이터 길이의 제약 없이 강력한 문자열 처리 기능을 제공 |
파이썬(Python) | - 다양한 플랫폼에서 쓸 수 있고, 라이브러리(모듈)가 풍부 - 유니코드 문자열을 지원하여 다양한 언어의 문자 처리 - 들여쓰기를 사용하여 블록을 구분하는 문법 채용 - 다른 언어로 쓰인 모듈들을 연결하는 언어 |
자바스크립트(Javascript) | - 객체 기반의 스크립트 프로그래밍 언어 - 웹 브라우저 내에서 주로 사용하며, 다른 응용 프로그램의 내장 객체에도 접근할 수 있는 기능이 존재 - 자바스크립트는 브라우저마다 지원되는 버전이 상이 |
종류 | 설명 |
---|---|
하스켈(Haskell) | - 함수형 언어 - 패턴 맞춤, 커링, 조건제시법, 가드, 연산자 정의 등의 기능이 존재 - 재귀함수나 대수적 자료형도 지원 |
리스프(LISP) | - 함수형 언어 - 수학 표기법을 나타내기 위한 목적으로 생성 - 트리 자료구조, 가비지 컬렉션, 동적 자료형과 인터프리터와 같은 개념 제시 - 함수 호출 시 함수 이름 혹은 연산자가 첫 번째로 위치하여 피연산자가 이어 위치 |
프롤로그(Prolog) | - 논리형 언어 - 논리식을 기반으로 객체 간의 관계에 관한 문제를 해결하기 위해 사용 - 인공지능이나 계산 언어학 분야, 자연언어 처리 분야에서 사용 |
SQL | - 특수분야 언어 - 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어 - 데이터베이스 관련 프로그램들이 SQL을 표준으로 채택 |