프로그래밍 언어의 구성
프로그래밍 언어의 구성 요소는 크게 구문(Syntax)과 의미론(Semantics)으로 나눌 수 있습니다.
구문은 프로그래밍 언어의 문법적인 부분으로, 프로그래밍 언어에서 올바른 문장을 구성하는 방법을 정의합니다.
이를 통해 프로그래밍 언어를 구성하는 단어, 구문 구조, 문장 등을 정의할 수 있습니다.
- 언어의 표현식, 문장 그리고 프로그램 단위의 형식
- 일반적으로 문맥 자유 문법으로 기술
의미론은 프로그래밍 언어의 의미적인 부분으로, 프로그래밍 언어에서 올바른 의미를 가지는 문장을 구성하는 방법을 정의합니다.
이를 통해 프로그래밍 언어에서 올바른 실행 결과를 얻을 수 있도록 문장의 의미를 정의합니다.
- 표현식, 문장, 프로그램 단위에 대한 의미
- 연산 의미론, 공리 의미론, 표기 의미론 등으로 기술
프로그램 언어를 컴퓨터는 어떻게 해석할까?
프로그램 언어는 컴퓨터가 이해할 수 있는 형태로 작성되어야 합니다.
하지만 사람이 사용하는 언어와 컴퓨터가 이해하는 언어는 서로 다릅니다.
따라서, 프로그래밍 언어로 작성된 코드를 실행 가능한 형태로 변환하기 위해서는 프로그래밍 언어의 구성을 이해하고, 이를 분석하는 작업이 필요합니다.
즉 원시 프로그램을 기계어나 중간 코드로 변경 할 때 우리는 문법 체크, 구문적 에러를 확인해야 합니다.
이를 어휘 분석(lexical analysis)과 구문 분석(syntax analysis) 과정을 통해 확인할 수 있습니다.
어휘 분석(lexical analysis)은 프로그래밍 언어에서 사용되는 토큰들을 식별하고 분류하는 과정입니다.
토큰은 프로그래밍 언어에서 문법적으로 의미 있는 최소 단위이며, 예를 들어 변수 이름, 상수, 연산자 등이 해당됩니다.
어휘 분석을 통해 토큰들을 식별하고 분류한 후, 각각의 토큰에 대해 의미 분석을 진행할 수 있습니다.
구문 분석(syntax analysis)은 어휘 분석에서 식별된 토큰들을 바탕으로 프로그래밍 언어의 문법 규칙에 따라 구성된 코드의 구문 구조를 분석하는 과정입니다.
예를 들어, if문의 조건식이 괄호로 둘러싸여야 한다는 규칙이 있다면, 구문 분석 과정에서 이 규칙을 확인하고, 이에 맞게 작성되지 않은 코드에 대해 오류를 출력합니다.
이러한 어휘 분석과 구문 분석 과정을 거쳐 프로그래밍 언어를 실행 가능한 형태로 변환하는 이유는, 컴퓨터는 사람이 작성한 코드를 그대로 이해할 수 없기 때문입니다.
따라서, 프로그래밍 언어를 실행 가능한 기계어로 변환해야만 컴퓨터가 해당 코드를 실행할 수 있습니다.
이러한 변환 과정을 컴파일(compile)이라고 합니다.
프로그램 언어는 이러한 컴파일 과정을 거쳐 실행 가능한 형태로 변환됩니다.
레퍼런스
'Computer Science > 프로그래밍 언어론' 카테고리의 다른 글
프로그래밍 언어 정의하는 방법 (0) | 2023.04.05 |
---|---|
어휘 분석 (0) | 2023.04.05 |
Scheme 기본 문법 (0) | 2023.04.04 |
람다 대수(Lamda calcuus)란 무엇인가 (0) | 2023.03.29 |
함수형 프로그래밍 (0) | 2023.03.29 |