이 영역을 누르면 첫 페이지로 이동
Coding Groot 블로그의 첫 페이지로 이동

Coding Groot

페이지 맨 위로 올라가기

Coding Groot

코딩 블로그

compiler

  • Coding Groot
[Compiler] 연산자의 Associativity와 Recursion의 연관성

[Compiler] 연산자의 Associativity와 Recursion의 연관성

2020.05.10
연산자의 Associativity와 CFG의 문법(Recursion)의 연관성 정의 연산자의 Associativity란? (괄호가 없을 때) 같은 우선순위의 연산자들 중 무엇을 먼저 결합할지 결정해주는 속성을 말한다. + 연산자가 Left Asscociative하면 1+2+3은 (1+2)+3과 동일한 의미를 가지게 되고 Right Asscociative하면 1+2+3는 1+(2+3)과 동일한 의미를 가지게 된다. Recursion이란? CFG에서 non-terminal이 그 non-terminal을 포함한 sequence를 유도할 수 있으면 Recursive하다(순환한다)고 말한다. 우측에서 순환할 수도 있고 좌측에서 순환할 수도 있고 양쪽에서 순환할 수도 있다. 예시를 보면서 이해를 해보자. Left ..
[Compiler] 1. Lexical Analyzer :: 구현하기

[Compiler] 1. Lexical Analyzer :: 구현하기

2020.04.09
* 2020/04/09 - [Programming/Compiler] - [Compiler] 1. Lexical Analyzer :: 동작하는 방식에서 이어지는 내용입니다. Lexical Analyzer를 구현해보자 무엇을 구현해야 할까? Lexical Analyzer는 input을 읽고 토큰으로 분류를 해서 Symbol Table을 만들어야 합니다. Token들의 Pattern 그 Pattern들을 인식하는 코드 Symbol Table 1. Token들의 Pattern은 어떻게 정의할까? 정규식(Regular Expression)을 사용하면 편합니다. 특정 문자열의 패턴을 간결하면서 정확하게 표현을 하게 해주는 좋은 도구입니다. 비교를 해봅시다. 식별자 Token의 Pattern을 글로 표현한 경우 식별..
[Compiler] 1. Lexical Analyzer :: 동작하는 방식

[Compiler] 1. Lexical Analyzer :: 동작하는 방식

2020.04.09
* 2019/07/30 - [Programming/Compiler] - [Compiler] 1. Lexical Analyzer :: 소개와 용어 정리에서 이어지는 내용입니다. 지난번 글에서 말했던 개념을 빠르게 복습해봅시다 더보기 Token: (Token Name, 어떤 문자들을 대표하는 Symbol)와 (Token Value, 토큰의 구체적인 속성)의 쌍 (ex) "산술연산자(+, -, *, /, %)", "반복문(for, while)" Lexeme: 토큰들의 구체적인 예 (ex) "+" -> 산술연산자라는 토큰의 구체적인 예 Lexical Analyzer(Scanner)의 동작 방식에 대해 알아보자 Lexical Analyzer는 input으로 준 문자열을 읽어서 각각의 단어들이 무엇을 의미하는 단어..
[Compiler] 1. Lexical Analyzer :: 소개와 용어 정리

[Compiler] 1. Lexical Analyzer :: 소개와 용어 정리

2019.07.30
Compiler의 첫 번째 단계는 Lexical Analysis로 가장 먼저 Lexical Analyzer를 실행합니다. Lexical Analyzer는 어떤 일을 할까요? Lexical Analyzer는 Input 문자열들을 스캔하면서 의미가 있는 단위로 문자열을 묶습니다. (그래서 Scanner라고도 불립니다). 그리고 일련의 Token들을 생성해 내고 Syntax Analyzer에게 보냅니다. 이 과정을 진행하면서 Token들에 대한 정보들을 Symbol Table에 저장합니다. Lexical Analyzer의 동작 방식을 알아보기 전에 앞으로 쓸 용어들에 대해 알아봅시다. Lexical Analyzer에서 쓰는 용어들: Token, Lexeme, Pattern Token A token is a p..
[Compiler] 0. 컴파일러란 무엇인가?

[Compiler] 0. 컴파일러란 무엇인가?

2019.07.21
컴파일러는 Language Translater(번역기)와 같다 영-한 번역기가 영어를 한국어로 바꿔주듯 컴파일러도 Source 프로그램을 Target 프로그램으로 바꿔준다. 컴파일러의 단계는 크게 Analysis Part, Synthesis Part로 나눌 수 있다. 컴파일러는 가장 먼저 Analysis Part가 진행되며 Analysis Part 안에는 다음과 같은 단계가 있다. Lexical Analyzer (Scanner라고도 말한다) Syntax Analyzer (Parser라고도 말한다) Semantic Analyzer Intermediate Code Generator 위의 Analysis Part가 차례대로 진행되고 난 후에는 Synthesis Part가 진행되며 Synthesis Part 안..
  • 최신
    • 1
  • 다음

정보

Coding Groot 블로그의 첫 페이지로 이동

Coding Groot

  • Coding Groot의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 방명록
  • 소개
  • 블로그 저작권

카테고리

  • 분류 전체보기 (182)
    • Git (23)
      • Git Tutorial (9)
      • Git Note (7)
      • Git Lecture (7)
    • Programming Language (1)
      • C (2)
      • C Sharp (5)
      • Java (4)
      • JavaScript (7)
      • Julia (5)
      • Python (4)
    • Programming (8)
      • Algorithm (2)
      • Compiler (5)
      • Data Structure (0)
      • Web (12)
      • NestJS (2)
    • DevOps, Infra (36)
      • Apple (6)
      • Cloud (15)
      • Database (1)
      • Network (4)
      • Linux (8)
    • Game Programming (11)
      • Unity Tutorial (5)
      • Unity Note (6)
    • Hardware Design (1)
      • Digital Circuit (1)
    • Note (49)
      • Coffee (2)
      • Retrospect (15)
      • Reading List (14)
    • Mathematics (1)

최근 글

인기 글

댓글

공지사항

아카이브

태그

  • 한빛미디어
  • 회고
  • tutorial
  • git
  • 서평
  • aws
  • Github
  • javascript
  • 전체 보기…

정보

Coding Groot의 Coding Groot

Coding Groot

Coding Groot

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기

나의 외부 링크

  • GitHub
  • SlideShare
  • 유니티 2020 수업
  • TIL Blog
  • 모도코

방문자

  • 전체 방문자
  • 오늘
  • 어제
Powered by Tistory / Kakao. Copyright © Coding Groot.

티스토리툴바