분류 전체보기(361)
-
[Compiler] 2. 간단한 컴파일러의 구조
1. 컴파일러의 논리적 구조 1. 개요 문장이 어떤 요소로 구성되어 있는지 파악하기 위해 문장에 사용된 단어를 검사한다. I am a boy라는 문장으로 예를 들면 I, am, a, boy 라는 네 가지 단어가 사용된 것을 알 수 있으며 이를 알아내는 것을 어휘 분석이라고 한다. I, am, a, boy 가 각각 8품사인 명사, 대명사, 동사, 형용사, 부사, 전치사, 접속사, 감탄사 중 어디에 속하는지 확인하고 문장의 5대 요소인 주어, 동사, 목적어, 보어, 수식어 등으로 구분할 것이다. 그리고 주어+동사, 주어+동사+보어, 주어+동사+목적어 등 문장의 형식을 검사하여 이 문장이 주어+동사+보어로 구성되었다는 것을 알아낸다. 이렇게 문장의 형식을 알아내는 것을 구문 분석이라고 한다. 단어 대 단어의 ..
2023.03.18 -
[Compiler] 1. 컴파일러 개요
1. 컴파일러의 필요성 언어란? 의사전달을 하기 위한 도구 언어의 종류 자연언어 형식언어 프로그래밍 언어 컴파일러가 필요한 이유 인간은 문제를 해결하기 위해 컴퓨터를 사용하며 컴퓨터와 의사소통을 하기 위한 언어가 필요하다. 컴퓨터는 기계어를 사용하지만 인간이 기계어를 사용하여 문제를 표현하기란 무척 어렵기 때문에 인간은 사람 중심 언어인 고급 언어를 사용한다. 그러나 컴퓨터는 인간이 사용하는 고급 언어를 이해하지 못한다. 따라서 인간이 사용하는 고급 언어를 기계어로 변환해주는 번역기인 컴파일러가 필요하다. 2. 프로그래밍 언어 참조 호출과 값 호출 참조 호출 실제 매개변수의 주소를 대응되는 형식 매개변수로 넘겨주는 방법으로 C언어의 포인터 변수에 대한 매개변수 전달 방식에 사용 2개 이상의 변수가 메모리..
2023.03.18 -
[Gradle] 빌드 스크립트 더 배우기
The Gradle build language Gradle은 DSL을 제공한다.이 빌드 언어는 Groovy와 Kotlin으로 사용할 수 있다. Gradle은 각 빌드 스크립트를 UTF-8로 인코딩한 결과를 평가한다. The Project API 빌드 스크립트는 프로젝트 를 구성하여 빌드를 설명한다 . 프로젝트는 추상적인 개념이지만 일반적으로 Gradle 프로젝트를 라이브러리나 애플리케이션과 같이 빌드해야 하는 소프트웨어 구성 요소에 매핑한다. 가지고 있는 각 빌드 스크립트는 Project 유형의 개체와 연결되며 빌드 스크립트가 실행될 때 이 Project를 구성합니다 . 실제로 빌드 스크립트의 거의 모든 최상위 프로퍼티와 블록은 Project API에 포함되어 있다. println name println..
2023.03.18 -
[Gradle] 빌드 스크립트 기본
Hello world tasks.register('hello') { doLast { println 'Hello world!' } } 커맨드 라인에서 gradle -q hello를 실행하면 다음과 같은 결과가 나온다. Hello world! 💡 -q 옵션은 Gradle의 로그 메시지를 숨겨주는 옵션이다. 알 수 있는 것 Gradle의 task는 tasks.register(String) { … } 으로 등록한다. task는 gradle [OPTIONS] [TASK_NAME] 으로 실행한다. Build scripts are code 변수 사용하기 tasks.register('upper') { doLast { String someString = 'mY_nAmE' println "Original: $someStr..
2023.03.18 -
[Gradle] Gradle 디렉터리 구조
프로젝트 루트 디렉터리 Gradle에 의해 생성된 프로젝트 명세 캐시 디렉터리 버전 명세 캐시 Gradle이 모든 필드 아티펙트를 생성하는 이 프로젝트의 빌드 디렉터리 Gradle Wrapper의 JAR 파일과 구성을 포함하는 디렉터리 Gradle 구성 프로퍼티 프로젝트 명세 Gradle Wrapper를 사용하는 빌드를 실행하기 위한 스크립트 서브 프로젝트의 리스트가 정의된 프로젝트 settings file 단일 또는 멀티 프로젝트로 구성된 프로젝트 각 서브 프로젝트가 가진 Gradle 빌드 스크립트
2023.03.18 -
[Gradle] 빌드 생명 주기
빌드 단계 Gradle 빌드는 세 가지 단계를 거친다. 1. 초기화(Initialization) Gradle은 하나 또는 멀티 프로젝트 빌드를 지원한다. 초기화 단계에서 Gradle은 빌드에 포함될 프로젝트를 결정하고 이러한 각 프로젝트에 대한 Project 인스턴스를 생성한다. 2. 구성(Configuration) 이 단계에서는 프로젝트 객체를 구성한다. 빌드에 포함된 모든 프로젝트의 빌드 스크립트가 실행된다. 3. 실행(Execution) Gradle은 실행될 구성 단계에서 생성 및 구성된 task의 서브셋을 결정한다. 서브셋은 task gradle command와 현재 디렉터리에 전달된 이름 인수에 의해 결정된다. 그 후 Gradle이 선택한 각 task를 실행한다. Settings file 빌드 ..
2023.03.18