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: 소스 코드의 가장 작은 단위로, 스캐너가 생성다.

 

반응형