위키득계정 ↗
기술

프로그래밍 언어

프로그래밍 언어기술
영문명
Programming language
핵심 요소
구문과 의미
실행 방식
컴파일, 해석 또는 혼합 구현
표현 대상
데이터, 연산, 제어 흐름, 추상화
프로그래밍 언어는 계산과 데이터 처리 절차를 프로그램으로 표현하는 형식 언어다. 작성 규칙인 구문과 프로그램의 의미를 정하는 규칙을 바탕으로 동작한다.

실행할 절차를 표현하기

같은 숫자들을 입력받더라도 합계를 구할지, 크기순으로 정렬할지는 프로그램의 처리 규칙에 달려 있다. 프로그래밍 언어는 이러한 규칙을 변수, 연산, 조건, 반복, 함수 등의 구성으로 표현하게 한다.

언어가 제공하는 추상화를 이용하면 반복되는 작업에 이름을 붙이거나 복잡한 자료를 하나의 단위로 다룰 수 있다. 이는 기계의 세부 동작을 모두 직접 적지 않고도 큰 프로그램을 구성하는 데 도움을 준다.

문법에 맞아도 틀릴 수 있다

구문은 어떤 형태의 프로그램을 쓸 수 있는지 정한다. 의미 규칙은 그 표현이 무엇을 하는지 정한다. 문법이 올바른 프로그램도 계산식이나 조건을 잘못 작성하면 의도와 다른 결과를 낸다.

자료형 체계는 어떤 값에 어떤 연산을 적용할 수 있는지 다룬다. 일부 오류는 실행 전에 발견되고, 일부는 실행 중의 값과 경로에 따라 드러난다. 정적 타입과 동적 타입의 차이는 이러한 검사 시점과 규칙을 이해하는 데 쓰이는 구분이다.

언어와 구현체

컴파일러는 프로그램을 다른 형태의 코드로 번역한다. 인터프리터는 프로그램이나 중간 표현을 해석해 실행한다. 실제 구현에서는 미리 번역한 코드, 바이트코드, 실행 중 컴파일을 조합하기도 한다.

따라서 어떤 언어를 오직 컴파일 언어 또는 인터프리터 언어라고만 설명하면 구현의 다양성을 놓칠 수 있다. 언어의 규칙과 그것을 실행하는 구현체는 구분해야 한다.

서로 다른 설계 방향

명령형은 상태를 바꾸는 절차, 함수형은 함수와 값의 변환, 논리형은 관계와 조건을 중심으로 프로그램을 표현한다. 현대 언어는 여러 방식을 함께 지원하는 경우가 많다. 언어의 적합성은 실행 환경과 문제의 성격, 도구와 라이브러리까지 포함해 판단한다.

관련 문서

소프트웨어 / 알고리즘 / 컴퓨터