프로그래밍 언어

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

프로그래밍 언어컴퓨터 시스템을 구동시키는 소프트웨어를 작성하기 위한 언어이다. 고급 언어일수록 사람이 사용하는 언어와 가깝다. 일반적으로 말할 때에는 프로그래밍 언어를 지원하는 소프트웨어, 곧 소프트웨어를 작성하기 위한 소프트웨어를 가리키는 때가 많고, 이때에는 프로그래밍 언어와 소프트웨어를 구분하지 않고 소프트웨어를 프로그래밍 언어로 보기도 한다.

예를 들면, 델파이는 프로그래밍 언어인 오브젝트 파스칼을 지원하는 소프트웨어를 작성하기 위한 소프트웨어일 뿐이지만, 델파이를 별개의 프로그래밍 언어로 보는 때가 더 많다.

[편집] 프로그래밍 언어의 구조

Question book-4.svg 이 문단의 내용은 출처가 분명하지 않습니다.
참고하신 문헌이나 신뢰할 수 있는 출처를 주석 등으로 표기해 주십시오. 검증되지 않은 내용은 의심받거나 삭제될 수 있습니다. (토론)

컴퓨터 프로그램은 데이터(data)와 명령어(instruction), 이렇게 두 부분으로 나뉜다. 데이터는 일련의 바이트 형식으로 저장된다. 프로그래밍 언어는 이런 바이트들을 유용한 형태로 정리한다. 사용자는 필요에 따라 데이터를 다음과 같이 선언(declaration)할 수 있다.

    int MyData; // 정수형 데이터

이와 같이 선언하면, 컴퓨터 메모리의 한 영역을 'MyData'라는 이름의 정수(integer) 타입으로 저장한다. 메모리의 어느 영역에 데이터를 저장할 것인가는 컴파일러가 결정한다. 일반적으로 사용자는 컴파일러의 내부가 어떻게 동작하는지 몰라도 프로그램을 만들 수 있다. 'MyData'는 간단한 변수(variable)이고, 한 개의 정수만 변수에 담을 수 있다. 여러 개의 변수를 만들고 싶으면 아주 간단하게 배열(array)을 만들 수 있다.

    int MyArray[100]; // 100개의 정수형 변수 선언

소프트웨어 엔지니어링의 발달로 보다 복잡한 데이터 타입들이 필요해 졌다. 예를 들어, 사각형을 만드는 데 필요한 데이터 타입을 정의한다고 하자. 한 사각형을 정의하려면 너비, 높이, 색과 같은 여러 정보가 동시에 필요하다. 따라서, 위와 같은 변수나 배열의 선언만으로는 이런 정보들을 잘 정의하기가 어렵다. C 언어와 같은 고급 언어(high-level language)는 보다 정교한 데이터 타입의 선언을 지원하여 여러 가지 다른 형식의 데이터 선언들을 한데 엮은 새로운 데이터 타입을 만들 수 있다.

struct rectangle {
  int width;        // 사각형의 너비를 픽셀 단위로 저장
  int height;       // 사각형의 높이를 픽셀 단위로 저장
  color_type color; // 사각형의 색 정보를 저장
};

이러한 데이터들을 활용하기 위해서는 컴퓨터에게 지시를 내려야 한다. 컴퓨터는 현재 실행하고 있는 지시의 내용과 다음에 실행할 지시의 위치만 알고 있다. 컴퓨터 언어는 컴퓨터의 하드웨어를 직접 제어하는 초기의 어셈블리와 같은 언어에서부터 시작하여 현재에는 C 언어과 같은 고급 언어(high-level language)로 발전되어 왔다. 프로그램 언어가 상위 레벨로 발전될 수록 프로그램은 좀더 인간의 언어에 가까운 형태가 된다. 이에 따라 프로그램 언어의 학습과 프로그램의 구현이 보다 수월해진다.

프로그래머는 상위 레벨의 지시문으로 프로그램을 작성하면 컴파일러가 이 지시문을 컴퓨터가 이해할 수 있는 기계어로 번역한다. 지시문들을 한데 묶어 놓은 것들을 함수(function)이라 한다. 함수는 특정한 동작을 일반적인 형태로 정의해 놓은 지시문의 집합이다. 똑같은 동작이 필요하면 지시문을 다시 작성할 필요없이 함수의 매개변수를 이용하여 계속 사용할 수 있다.

예를 들어, C 언어는 검색, 정렬, 입출력에 관련된 다양하고 풍부한 표준 함수(standard functions)들을 제공한다. 이런 표준 함수가 제공되는 덕분에 사용자는 해당 함수를 만드는 데 드는 노력을 절약할 수 있다. 연결된 함수들을 한데 묶어 놓은 것은 모듈(module)이라 하고, 모듈들의 상호 연결로 하나의 프로그램이 구성된다. 그리고 이러한 모듈들을 재사용 할 수 있게 모아둔 것을 라이브러리(library)라 한다.

[편집] 주요 프로그래밍 언어의 목록

[편집] 같이 보기