compiler subsystem
2024. 12. 21. 19:07ㆍ정보처리,전산/JAVA
반응형
1. Compiler (컴파일러)
- 컴파일 프로세스의 중심이 되는 클래스이다.
- Compile() 메서드를 통해 컴파일 과정을 실행한다.
2. Stream 및 BytecodeStream
- Stream: 데이터 스트림의 기본 클래스이다.
- BytecodeStream: Stream을 상속받아 바이트코드 관련 기능을 담당한다.
- 바이트코드는 컴파일된 코드로, 실행 가능한 형태로 변환된다.
3. CodeGenerator (코드 생성기)
- 코드를 생성하는 역할을 담당한다.
- 두 개의 하위 클래스로 구분된다:
- StackMachineCodeGenerator: 스택 기반 가상 머신을 위한 코드 생성.
- RISCCodeGenerator: RISC(Reduced Instruction Set Computer) 아키텍처용 코드 생성.
4. Scanner, Token, Parser (스캐너, 토큰, 파서)
- Scanner: 소스 코드를 읽고 토큰(token)으로 변환하는 어휘 분석기이다.
- 예: int a = 5; → int, a, =, 5, ;와 같은 토큰으로 변환.
- Token: 소스 코드의 최소 단위이다.
- Parser: 토큰을 입력받아 문법 구조를 분석하고, 프로그램의 구문 트리(Syntax Tree)를 생성한다.
5. ProgramNodeBuilder 및 ProgramNode
- ProgramNodeBuilder: 프로그램의 추상 구문 트리(AST)를 생성하는 클래스이다.
- ProgramNode: AST의 노드를 나타내는 클래스이다.
- 주요 하위 클래스:
- StatementNode: 구문(Statement)을 나타냄.
- ExpressionNode: 표현식(Expression)을 나타냄.
- VariableNode: 변수(Variable)를 나타냄.
- 주요 하위 클래스:
6. Symbol 및 Token
- Symbol: 소스 코드의 식별자(Identifier) 및 기타 언어적 요소를 나타낸다.
- 예: 변수 이름, 함수 이름 등.
- Token: 소스 코드의 가장 작은 단위로, 스캐너가 생성다.
반응형
'정보처리,전산 > JAVA' 카테고리의 다른 글
상속을 활용한 생성자 호출 (0) | 2024.11.28 |
---|---|
Java 문자와 숫자 비교 | 캐스팅 | 대문자 소문자 | 문자 빈도 수 (0) | 2024.11.21 |
HTTP GET 및 POST 요청을 처리하는 방법 (0) | 2024.11.15 |
final 키워드 (1) | 2024.09.17 |
환경 변수 설정한 JAVA 버전 확인이 안될 때 (0) | 2024.08.08 |