컴퓨터 언어
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
컴퓨터 언어는 컴퓨터가 수행할 작업을 정의하고, 정보를 표현하기 위해 사용되는 형식화된 언어이다. 컴퓨터 언어는 인간이 읽을 수 있는 언어와 기계가 읽을 수 있는 언어로 분류되며, 프로그래밍 언어, 스크립팅 언어, 마크업 언어, 쿼리 언어 등 다양한 종류가 존재한다. 이러한 언어들은 프로그래밍, 데이터베이스 질의, 웹 페이지 작성, 하드웨어 설계 등 다양한 분야에서 활용된다.
더 읽어볼만한 페이지
| 컴퓨터 언어 | |
|---|---|
| 개요 | |
| 종류 | 프로그래밍 언어 |
| 패러다임 | 명령형 프로그래밍, 객체 지향 프로그래밍, 함수형 프로그래밍, 선언형 프로그래밍 등 |
| 역사 | |
| 최초의 고급 프로그래밍 언어 | 플란칼큘 (1940년대, 콘라트 추제) |
| 초기 프로그래밍 언어 | 포트란 (1957) 리스프 (1958) 코볼 (1959) 알골 60 (1960) 베이직 (1964) |
| 분류 | |
| 구현 방법 | 컴파일러 언어 인터프리터 언어 어셈블리어 |
| 추상화 수준 | 저급 프로그래밍 언어 고급 프로그래밍 언어 |
| 프로그래밍 패러다임 | 명령형 프로그래밍 객체 지향 프로그래밍 함수형 프로그래밍 선언형 프로그래밍 |
| 용도 | 시스템 프로그래밍 언어 응용 프로그래밍 언어 스크립트 언어 마크업 언어 정형 명세 언어 |
| 설계 요소 | |
| 구문 | 구문, 의미론 |
| 자료형 | 자료형, 자료 구조 |
| 제어 구조 | 조건문, 반복문 |
| 추상화 메커니즘 | 함수, 객체, 모듈 |
| 관련 개념 | |
| 프로그래밍 | 알고리즘 소프트웨어 개발 프로그래밍 패러다임 |
| 컴파일러 | 파서 의미 분석기 코드 생성기 |
| 인터프리터 | 가상 머신 JIT 컴파일러 |
2. 컴퓨터 언어의 특성
컴퓨터 언어는 '인간이 읽을 수 있는 언어'와 '인간이 읽을 수 없는 언어'로 크게 분류할 수 있다.
2. 1. 인간 가독성
인간이 읽을 수 있는 언어는 직접 인간이 사용하는 것을 상정하여 설계되었으며, 인간이 읽을 수 없는 언어는 '인간의 가독성'을 희생하여 더 작고 컴퓨터가 처리하기 쉬운 형식으로 설계되었다(부분적으로는 인간이 읽을 수 있는 경우도 있다).2. 2. 기계 가독성
컴퓨터 언어는 기계 가독성(기계 가독)이라는 관점도 있다.3. 컴퓨터 언어의 종류
컴퓨터 언어는 그 용도와 특징에 따라 다양하게 분류할 수 있다.
- 프로그래밍 언어: C++, 어셈블리 프로그래밍 언어 등 컴퓨터 프로그램을 작성하는 데 사용된다.
- 스크립팅 언어: 응용 소프트웨어를 제어하거나 특정 작업을 자동화하는 데 사용된다.
- 스페시피케이션 언어: 시스템의 동작이나 구조를 명확하게 기술하는 데 사용된다.
- 기계어: CPU가 직접 이해하고 실행할 수 있는 언어이다. 보통 다른 언어로부터 변환되며, 때로는 온 더 플라이 방식으로 변환되기도 한다.
- 바이트코드: 가상 기계에서 실행되는 중간 언어이다.
- 쿼리 언어: SQL, XQuery 등 데이터베이스에서 정보를 검색하고 조작하는 데 사용된다.
- 마크업 언어: HTML과 같이 문서의 구조나 형식을 표현하는 데 사용되며, 주로 문서 작성에 활용된다.
- 변환 언어: XSLT와 같이 데이터를 한 형식에서 다른 형식으로 변환하는 데 사용된다.
- 틀 처리 언어: 템플릿을 사용하여 반복적인 작업을 자동화하는 데 사용된다.
- 제4 세대 프로그래밍 언어 (4GL): 특정 업무 영역에 특화된 고급 프로그래밍 언어이다.
- 하드웨어 디스크립션 언어 (HDL): 디지털 회로를 설계하고 기술하는 데 사용된다.
- 설정 파일 포맷: INI 파일과 같이 프로그램의 설정을 저장하는 데 사용된다.
- 데이터 직렬화 포맷: 데이터를 저장하거나 전송하기 위한 형식이다.
3. 1. 프로그래밍 언어
프로그래밍 언어는 컴퓨터 프로그램을 기술하기 위한 언어이다. 프로그래밍 언어에는 C++, 어셈블리 프로그래밍 언어 등이 있다.많은 프로그래밍 언어는 텍스트 소스 코드로 프로그램이 기술되지만, 비주얼 프로그래밍 언어는 프로그램 요소를 시각적으로 표현하고 조작하여 프로그램을 구축한다. 컴퓨터가 실제로 실행하는 명령은 기계어로 나타난다. 이는 일반적으로 인간이 읽을 수 없는 이진 형식의 컴퓨터 언어이며, CPU의 명령 집합에 대응한다. 고급 언어의 소스 코드는 컴파일러에 의해 기계어로 변환된다.
자바와 같이, 프로그래밍 언어에 따라서는 바이트코드와 같이 컴퓨터 아키텍처와 독립적인 이식성이 높은 중간 언어를 사용하는 경우가 있다. 이러한 시스템에서는 바이트코드를 기계어로 변환하는 컴파일러도 있거나, 바이트코드를 가상 머신 또는 바이트코드 인터프리터로 실행한다.
3. 1. 1. 주요 프로그래밍 언어
프로그래밍 언어는 컴퓨터 프로그램을 기술하기 위한 컴퓨터 언어이다. 최근 사용 빈도가 높은 프로그래밍 언어로는 파이썬, 자바, C 언어, C++ 등이 있다. 베이직, 코볼, 포트란, 어셈블리 언어와 같이 최근에는 잘 사용되지 않는 프로그래밍 언어도 있다. 컴퓨터 프로그램을 기술하는 것을 프로그래밍이라고 하며, 컴퓨터 프로그램을 기술하는 사람을 프로그래머라고 한다.스크립트 언어는 '쉽게 사용할 수 있는 프로그래밍 언어'를 가리키는 대략적인 분류이다. 어떤 언어를 스크립트 언어라고 부르는지는 감각적인 것이며, 정확하게 정의할 수 있는 것은 아니지만, 일반적으로 스크립트 언어는 다음과 같은 특징을 갖는 경우가 많다.
- 처리계의 구현이 인터프리터에 가깝다.
- 문자열 처리가 쉽다.
- 코드 작성 및 수정이 쉽다. (경량 프로그래밍 언어 참조)
- 특정 영역의 문제에 특화되어 있다. (도메인 특화 언어 참조)
- 응용 소프트웨어에 내장되어 있다. (매크로 언어 참조)
- 여러 응용 소프트웨어의 동작을 협조시킬 수 있다. (글루 언어 참조)
액션스크립트, 애플스크립트, AWK, 배시, Emacs Lisp, 구글 앱스 스크립트, Groovy, 자바스크립트, Lua, Perl, PHP, 파이썬, REXX, 루비, PowerShell, SKILL, Tcl, TypeScript, VBScript 등이 스크립트 언어에 속한다.
많은 프로그래밍 언어는 텍스트 소스 코드로 프로그램이 기술되지만, 비주얼 프로그래밍 언어는 프로그램 요소를 시각적으로 표현하고 조작하여 프로그램을 구축한다. 컴퓨터가 실제로 실행하는 명령은 기계어로 나타난다. 기계어는 일반적으로 인간이 읽을 수 없는(읽지 않는) 이진 형식의 컴퓨터 언어이며, CPU의 명령 집합에 대응한다. 고급 언어의 소스 코드는 컴파일러에 의해 기계어로 변환된다.
자바와 같이, 프로그래밍 언어에 따라서는 바이트코드와 같이 컴퓨터 아키텍처와 독립적인 이식성이 높은 중간 언어를 사용하는 경우가 있다. 이러한 시스템에서는 바이트코드를 기계어로 변환하는 컴파일러도 있거나, 바이트코드를 가상 머신 또는 바이트코드 인터프리터로 실행한다.
3. 1. 2. 스크립트 언어
스크립트 언어는 '쉽게 사용할 수 있는 프로그래밍 언어'를 가리키는 대략적인 분류이다. 어떤 언어를 스크립트 언어라고 부르는지는 감각적인 것이며, 정확하게 정의할 수 있는 것은 아니지만, 일반적으로 스크립트 언어는 다음과 같은 특징을 갖는 경우가 많다.- 처리계의 구현이 인터프리터에 가깝다.
- 문자열 처리가 쉽다.
- 코드의 작성 및 수정이 쉽다. (경량 프로그래밍 언어도 참조.)
- 특정 영역의 문제에 특화되어 있다. (도메인 특화 언어도 참조.)
- 응용 소프트웨어에 내장되어 있다. (매크로 언어도 참조.)
- 여러 응용 소프트웨어의 동작을 협조시킬 수 있다. (글루 언어도 참조.)
스크립트 언어에는 액션스크립트, 애플스크립트, AWK, 배시, Emacs Lisp, 구글 앱스 스크립트, Groovy, 자바스크립트, Lua, Perl, PHP, 파이썬, REXX, 루비, PowerShell, SKILL, Tcl, TypeScript, VBScript 등이 있다.
3. 1. 3. 기타 프로그래밍 언어
- 스크립팅 언어
- 스페시피케이션 언어
- 기계어 (다른 언어로부터 변환됨, 간혹 온 더 플라이로 변환됨.)
- 바이트코드 (특히 “가상 기계” 코드 - 가상 기계에서 수행된다.)
- 쿼리 언어 (예: SQL, XQuery)
- 마크업 언어 (예: HTML - 일반적으로 문서 생산에 사용된다.)
- 변환 언어 (예: XSLT)
- 틀 처리 언어
- 제4 세대 프로그래밍 언어 ("4GL")
- 하드웨어 디스크립션 언어 ("HDL")
- 설정 파일 포맷들 (예: INI 파일)
- :분류:데이터 직렬화 포맷
3. 2. 정보를 표현하는 컴퓨터 언어
컴퓨터 언어는 정보를 표현하기 위해 다양한 형태로 사용된다. 주요 컴퓨터 언어에는 다음이 있다.- 프로그래밍 언어: C++, 어셈블리 프로그래밍 언어 등
- 스크립팅 언어
- 스페시피케이션 언어
- 기계어: 다른 언어로부터 변환되며, 간혹 온 더 플라이로 변환되기도 한다.
- 바이트코드: 특히 "가상 기계" 코드라고 불리며, 가상 기계에서 수행된다.
- 제4 세대 프로그래밍 언어 (4GL)
- 하드웨어 디스크립션 언어 (HDL)
- 설정 파일 포맷: INI 파일 등
- 템플릿 처리 언어
- 정규 표현식
3. 2. 1. 질의 언어
질의 언어에는 SQL, XQuery 등이 있다. 데이터베이스 언어에는 데이터 조작 언어, 데이터 정의 언어, 데이터 제어 언어가 있다.3. 2. 2. 데이터 기술 언어
데이터 기술 언어는 데이터를 표현하고 기술하는 데 사용되는 컴퓨터 언어이다. 주요 데이터 기술 언어에는 다음이 있다.- 마크업 언어 (HTML 등): 일반적으로 문서 작성에 사용된다.
- :Category:데이터 직렬화 형식
3. 2. 3. 변환 언어
모델 변환 언어 (XSLT 등)3. 2. 4. 기타
컴퓨터 언어는 다음을 포함한다.- 프로그래밍 언어 (예: C++, 어셈블리 프로그래밍 언어)
- 스크립팅 언어
- 스페시피케이션 언어
- 기계어 (다른 언어로부터 변환됨, 간혹 온 더 플라이로 변환됨.)
- 바이트코드 (특히 “가상 기계” 코드 - 가상 기계에서 수행된다.)
- 쿼리 언어 (예: SQL, XQuery)
- 마크업 언어 (예: HTML - 일반적으로 문서 생산에 사용된다.)
- 변환 언어 (예: XSLT)
- 제4 세대 프로그래밍 언어 ("4GL")
- 하드웨어 디스크립션 언어 ("HDL")
- 설정 파일 포맷 (예: INI 파일)
- :분류:데이터 직렬화 포맷
- 데이터 기술 언어
- 데이터베이스 언어 - 데이터 조작 언어, 데이터 정의 언어, 데이터 제어 언어
- 모델 변환 언어
- 정규 표현식
3. 3. 소프트웨어 동작 설정을 위한 컴퓨터 언어
컴퓨터 언어에는 다음과 같은 종류가 있다.| 종류 | 설명 | 예시 |
|---|---|---|
| 프로그래밍 언어 | C++, 어셈블리 프로그래밍 언어 | |
| 스크립팅 언어 | ||
| 스페시피케이션 언어 | ||
| 기계어 | 다른 언어로부터 변환되며, 간혹 온 더 플라이로 변환되기도 한다. | |
| 바이트코드 | 가상 기계에서 수행되는 “가상 기계” 코드이다. | |
| 쿼리 언어 | SQL, XQuery | |
| 마크업 언어 | 일반적으로 문서 생산에 사용된다. | HTML |
| 변환 언어 | XSLT | |
| 틀 처리 언어 | ||
| 제4 세대 프로그래밍 언어 | "4GL" | |
| 하드웨어 디스크립션 언어 | "HDL" | |
| 설정 파일 포맷 | INI 파일 | |
| :분류:데이터 직렬화 포맷 | ||
| 설정 파일 형식 | INI 파일 |
3. 4. 시스템 설계를 위한 컴퓨터 언어
시스템 설계를 위한 컴퓨터 언어는 다음과 같다.- 모델링 언어
- 명세 기술 언어
- 하드웨어 기술 언어
3. 5. 인간이 기술하지 않는 컴퓨터 언어
4. 역사
컴퓨터 언어의 역사 및 분류에 대한 자세한 기술은 The Encyclopedia of Programming Languages|프로그래밍 언어 백과사전영어를 참고하라.
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com