컴파일러 설계 튜토리얼

컴파일러는 프로그램의 의미를 변경하지 않고 한 언어로 작성된 코드를 다른 언어로 변환합니다. 또한 컴파일러는 대상 코드를 시간과 공간 측면에서 효율적이고 최적화해야합니다.

컴파일러 설계 원칙은 번역 및 최적화 프로세스에 대한 심층적 인 관점을 제공합니다. 컴파일러 설계는 기본 번역 메커니즘과 오류 감지 및 복구를 다룹니다. 어휘, 구문 및 의미 분석을 프런트 엔드로, 코드 생성 및 최적화를 백 엔드로 포함합니다.

컴파일러 설계를 배우는 이유는 무엇입니까?

컴퓨터는 소프트웨어와 하드웨어의 균형 잡힌 조합입니다. 하드웨어는 기계 장치의 일부일 뿐이며 그 기능은 호환되는 소프트웨어에 의해 제어됩니다. 하드웨어는 소프트웨어 프로그래밍에서 이진 언어에 대응하는 전자 요금의 형태로 명령을 이해합니다. 이진 언어에는 0과 1이라는 두 개의 알파벳 만 있습니다. 지시하려면 하드웨어 코드를 이진 형식으로 작성해야합니다. 이는 단순히 일련의 1과 0입니다. 컴퓨터 프로그래머가 그러한 코드를 작성하는 것은 어렵고 번거로운 작업이 될 것입니다. 이것이 우리가 그러한 코드를 작성하는 컴파일러가있는 이유입니다.

언어 처리 시스템

우리는 모든 컴퓨터 시스템이 하드웨어와 소프트웨어로 구성된다는 것을 배웠습니다. 하드웨어는 인간이 이해할 수없는 언어를 이해합니다. 그래서 우리는 이해하고 기억하기 쉬운 고급 언어로 프로그램을 작성합니다. 그런 다음 이러한 프로그램은 일련의 도구 및 OS 구성 요소에 공급되어 기계에서 사용할 수있는 원하는 코드를 얻습니다. 이것은 언어 처리 시스템으로 알려져 있습니다.

청중

이 튜토리얼은 컴파일러의 기본 원리를 배우는 데 관심이있는 학생들을 위해 설계되었으며, 컴파일러에 대해 더 많이 알고 싶은 열렬한 독자와 컴파일러를 직접 설계하려는 사람들은 여기에서 시작할 수 있습니다.

전제 조건

이 튜토리얼은 컴파일러 디자인에 대한 사전 지식이 필요하지 않지만 C, Java 등과 같은 적어도 하나의 프로그래밍 언어에 대한 기본적인 이해가 필요하며, 이전에 어셈블리 프로그래밍에 노출 된 적이 있다면 추가적인 이점이 될 것입니다.