✨
Saltberry
GithubLinkedIn
  • 개요 Overview
  • 📝HTML/CSS
    • 구조 HTML
    • 스타일 CSS
      • z-index
  • 📦개발 Development
    • 개발 Implementation
    • 단어 Glosarry
    • 깃 Git
    • 해시 Hash
    • 노드 패키지 매니저 Node Package Manager
    • 브라우저 랜더링 Browser Rendering Process
    • 교차 출처 리소스 공유 CORS
    • 인터프리터 Interpreter
    • Object-oriented programming(OOP) 객체지향 프로그래밍
  • 💡CS 50
    • Computational Thinking
  • ✨자바스크립트 Javascript
    • 자바스크립트란 What is JavaScript
    • 표현식과 문 Expression Statement
    • 변수 Variable
    • 함수 Function
    • 참과 거짓 값 Truth Falsy
    • 배열 Array
    • Import Export
    • 스택과 큐 Stack Queue
    • 문서객체모델 Document Object Model
      • 개요 Overview
      • 도큐먼트 Document
      • HTMLCollection
      • getMethod
      • NodeList
      • childNodes, children
      • Event
      • live, static
      • Element
      • DOM Token
      • 속성 attribute
      • implementation
      • 노드 Node
      • HTMLElement
    • 브라우저 저장소 Cookie Web Storage
  • 🎁리액트 React
    • 리액트 톧아보기 Overview
    • Intro
      • 상태의 불변성 State Immutability
      • Props and State
      • Hooks
    • Concepts
  • 🚦타입스크립트 Typescript
    • Page 1
  • 🗃️리덕스 Redux
    • 왜 리덕스를 사용할까 Why Redux
    • 플럭스 Flux
  • 📬넥스트 Nextjs
    • Pages
  • ✅면접 Interview
    • Index
    • Implement experiences
    • Best practice for query parameter and fetch
  • 🚀TECH
    • Lists
    • Zustand
  • 🧬Algorithm
    • Types of algorithms
    • 이진수 변환 Binary Number
    • 후위 연산자 Postfix expression
    • 선택 정렬 Selection Sort
    • Find longest substring without repeating characters
    • 올바른 괄호 Valid Parentheses
  • 📔Mathematics
    • 다항식 Polynomial
  • 🗂️Database
    • 데이터베이스 Database
  • 📝Class
    • 자료구조 Data Structure
      • 배열 Array
    • C++ 프로그래밍
      • C++ 기초
    • 소프트웨어 공학 Software engineering
      • 소프트웨어 개요 Software overview
      • 소프트웨어 프로세스 Software process
    • 자바 Java
      • 자바와 객체지향 프로그래밍 Java and OOP(Object-oriented programming)
  • Java
    • 자바가 뭐지?
  • CA EI
    • CA EI
Powered by GitBook
On this page
  1. 개발 Development

인터프리터 Interpreter

Last updated 1 year ago

인터프리터는 고급 언어로 작성된 소스 프로그램의 코드를 한 줄 한 줄 읽으면서 문장 단위로 해석하여 바로 실행하는 방법으로 대표적으로 자바스크립트(인터프리터 또는 JIT), 파이썬 등이 인터프리터 방법을 이용하고 있다.

컴파일러와 다르게 인터프리터는 실행 파일이 생성되지 않아도 프로그램이 바로 실행될 수 있다. 따라서, 바로 실행되기 때문에 에러가 발생하면 확인하고 바로 수정할 수 있다.

인터프리터 구현 과정

원시 프로그램의 코드(소스코드)를 중간 코드인 바이트 코드로 변환한다.

바이트 코드로 변환하기 위해 분석 단계를 거치는데, 어휘를 문법적 단위로 나누기 위해 코드 한 줄을 각 토큰으로 분할한다. 그 이후 해당 토큰들을 파싱하여 구문을 분석하여 올바른 문법인지 확인하기 위해 분석(parse) 트리 즉, AST(추상 구문 트리)를 생성한다. 생성된 AST를 토대로 프로그램의 의미를 분석하여 타입의 유효성을 검사한다. 에러가 없다면 바이트 코드를 생성하고 이렇게 만들어진 바이트 코드를 인터프리터 엔진이 해석하여 기계어로 변환하고 해당 기계어를 CPU가 읽고 연산을 진행하여 실행한다.

📦
Semantic Analysis
1)