CS 이론/🖌️ 프로그래밍 언어론 5 Compiler의 구조 알아보기 (Front-end) Compiler의 구조 알아보기 (Front-end) Compiler란?컴파일러도 결국은 컴퓨터 프로그램입니다. 그중에서도 인간이 알아듣기 편한 프로그래밍 언어를 컴퓨터가 알아들을 수 있는 기계어 (0/1로 이루어진 명령어들)로 바꿔 주는 프로그램입니다.모든 프로그램이 그렇듯 컴파일러도 재사용성을 높이고 유지보수를 편하게 하기 위해 3개 부분으로 역할이 나눠져 있습니다. 이 각 부분을 차례대로 알아보겠습니다!Front-endMiddle-end (예정)Back-end (예정) 먼저 그 전에, 형식언어라는 개념에 대해 알아두면 이해가 더 편하기 때문에 형식언어에 대해 가볍게 알아보시기를 추천드립니다. 형식 언어 (Formal Language)언어가 애초에 뭘까?의미를 전달하기 위한 시스템 언어는 의미를 전달하기 위한 시스템입니다. 우리가 한국어를 할 때 결국 .. 2025. 4. 13. 컴파일러가 기본적으로 하는 최적화를 알아보자 컴파일러가 기본적으로 하는 최적화를 알아보자 컴파일러는 실제 코드에 어떤 최적화를 할까?사람이 작성한 코드는 컴퓨터 입장에서 그대로 실행하면 비효율적인 경우가 많습니다.당장 여러 좋은 설계 원칙에서는 코드를 함수나 객체로 분리하라는 경우가 많은데 분리할수록 컴퓨터 입장에서는 함수를 찾고 호출해야 하기 때문에 분리되지 않은 것에 비해서는 비효율적입니다.또, Clean Code에서 말하는 Magic Number를 쓰지 말고 명확히 변수로 분리하라는 원칙도 그렇습니다. // 구의 부피를 계산하는 프로그램: 효율적인 버전fun calculate(radius: Double): Double { return 4.18666667 * radius * radius * radius}// 구의 부피를 계산하는 프로그램: 조금 비효율적이지만 읽기 쉬운 버전fun c.. 2025. 1. 28. 프로그래밍 언어는 왜 그렇게 많을까? 프로그래밍 언어는 왜 그렇게 많을까? 프로그래밍 언어는 많다... 엄청.프로그래밍 언어는 엄청 많습니다. 개수만 따지면 8,000개가 넘고, 자주 쓰이는 것만 추려도 50개는 됩니다. 저만 해도 회사와 개인적으로 쓰고 있는 프로그래밍 언어를 세 보면...Kotlin: 회사에서 주로 쓰는 언어Java: 회사의 레거시 프로젝트에서 쓰는 언어Python: 일부 회사 프로젝트에서 쓰는 언어SQL: DB 관련 작업을 할 때 쓰는 언어HTML: 회사나 개인 프로젝트에서 웹사이트, 이메일 등의 UI를 표현할 때 쓰는 언어CSS: 회사나 개인 프로젝트에서 웹사이트, 이메일 등의 UI를 꾸밀 때 쓰는 언어JS: 회사나 개인 프로젝트에서 웹사이트의 로직을 넣을 때 쓰는 언어TS: JS에 Type System을 추가한 언어Swift: iOS 개발을 할 때 쓰는.. 2024. 1. 13. 오토마타 (Automata), 그게 대체 뭔데? 오토마타 (Automata), 그게 대체 뭔데? 시작하기 전에...먼저 형식 언어에 대해 어느 정도 알고 계셔야 합니다. 형식 언어 (Formal Language)언어가 애초에 뭘까?의미를 전달하기 위한 시스템 언어는 의미를 전달하기 위한 시스템입니다. 우리가 한국어를 할 때 결국 궁극적인 목적은 무언가를 전달하는 겁니다. 그게 지식일 수도 있고jinkpark.tistory.com오토마타가 뭘까?오토마타 (Automata)는 계산 (Computation)을 묘사하는 수학적 모델입니다.컴퓨터는 우리가 내린 지시를 따릅니다. 복잡한 지시들도 사실은 굉장히 간단한 지시들이 여러 개 모여서 가능하게 됩니다. 이 간단한 지시가 뭘까요? 특정한 명령을 따를 수 있는 능력이 있으면 모든 알고리즘을 묘사할 수 있을까요?예를 들어 가장 간단한 오토마타는 DFA (De.. 2023. 12. 26. 형식 언어 (Formal Language) 형식 언어 (Formal Language) 언어가 애초에 뭘까?의미를 전달하기 위한 시스템 언어는 의미를 전달하기 위한 시스템입니다. 우리가 한국어를 할 때 결국 궁극적인 목적은 무언가를 전달하는 겁니다. 그게 지식일 수도 있고, 험담일 수도 있고, 감정일 수도 있습니다. 결국은 특정 정보/의미를 전달합니다. 이걸 아무렇게나 전달할 수 있는 것도 아닙니다. 특정 규칙에 따라서 말하고 써야 이해할 수 있습니다. 이를 요약하면 언어에는 문법이 있고, 그 문법에 부여하는 의미가 있습니다. 🐜 문법 (Syntax)우리가 처음 한글을 배우면 한글의 여러 구성 요소들을 외우게 됩니다. ㄱ, ㄴ, ㄷ, ㄹ... 이 구성 요소들이 모여서 글자 한 글자가 됩니다. 하지만 이 구성 요소들을 아무렇게나 배치한다고 글자가 되지는 않습니다. 자음 + 모음, 자음 + .. 2023. 12. 17. 이전 1 다음