본문 바로가기

3-1 학기14

[프로그래밍언어] Ch4 Lexical and Syntax Analysis Lexical Analysis와 Syntax Analysis를 구분하는 이유 • 단순성 - 덜 복잡한 접근 방식을 어휘 분석에 사용할 수 있다. 이를 분리하면 파서가 단순해진다. • 효율성 - 분리를 통해 어휘 분석기를 최적화할 수 있다. • 이식성 - 어휘 분석기의 일부는 다른 언어로 이식이 불가능할 수 있지만 파서는 항상 이식이 가능하다. Lexical Analysis 어휘 분석이란 소스 프로그램을 읽어 들여 token이라는 의미 있는 문법 단위(문법에서 터미널 심볼에 해당함)로 분리하는 것을 말한다. 즉, 보통 구문을 분석하면서 다음 토큰이 필요할 때마다 어휘 분석기를 호출하는 것이다. 이렇게 구분된 token들에 에러가 있는지 검사하고 또한 문자열에서 공백을 제거하기도 한다. Syntax anal.. 2024. 4. 13.
[프로그래밍언어] Ch3 Describing Syntax and Semantics 개념 정리 Syntax: 컴퓨터 언어의 문법 또는 구조 Semantics: 그 문장의 의미 Context-Free Grammars: 문맥에 상관없이 어떤 Non-Terminal이 들어와도 그에 대한 production-rule이 존재하는 문법 Terminal Nonterminal 시작 심볼 S 문법 규칙들의 집합 BNF: 프로그래밍언어의 문법을 만들어놓은 규칙 Derivation: Nonterminal들을 적절한 production-rule을 사용하여 다른 표현으로 치환하는 것 위의 과정을 Nonterminal 심볼이 없을 떄까지 반복 생성 규칙 X -> Y1, Y2, ... Yn 적용 1. 좌측 유도(leftmost derivation) : 각 직접 유도 단계에서 가장 왼쪽 nonterminal을 선택.. 2024. 4. 13.