CS(33)
-
[Compiler] 유도 트리
Compiler miro.com
2023.04.15 -
[Compiler] 구문 분석
Compiler miro.com
2023.04.15 -
[Compiler] Lex 파일 이해하기
Compiler miro.com 1. Lex 파일 이해하기 가. Lex(Flex)의 입력 파일 형식 Lex(Flex)와 Yacc(Bison)의 입력 파일 모두 크게 세 부분으로 구성되어 있다. 첫 번째 부분은 선언(declaration)이나 정의(definition)를 포함한다. 두 번째 부분은 규칙(보통 번역 규칙(translation rule))을 기술한다. 세 번째 부분은 보조 프로시저(auxiliary procedure) 또는 지원 프로그램(supporting routines)를 담고 있다. 두 번째 부분은 필수고, 첫 번째, 세 번째 부분은 필요가 없는 경우 생략할 수 있다. 첫 번째, 두 번째, 세 번째는 사이에 '%%'기호로 구분한다. 예를 들어 설명해 보면… yymore() "+" { re..
2023.04.07 -
[Compiler] Flex 실습
Compiler miro.com 1. 실습 목표 PROGRAM SAMPLE ; CONST M = 5 ; N = 9 ; VAR SUM, MUL : INTEGER ; BEGIN SUM := M + N ; MUL := M * N ; END. Pascal 코드의 줄 번호를 붙이는 Scanner 만들기. 2. scanner.l %{ int lineno = 1; %} %% \n {lineno++; ECHO;} ^.*$ printf("%d\t%s", lineno, yytext); scanner.l 작성. yytest : flex, lex에서 토큰(문자 배열 char array)을 저장하는 버퍼 ECHO : printf("%s", yytext)와 동일한 결과. 출력하는 일이 빈번해서 매크로로 정의하여 제공. flex ..
2023.03.31 -
[Compiler] Scanner 구현 과정
Compiler miro.com
2023.03.31 -
[Compiler] 유한 상태 기계
Compiler miro.com 1. 유한 상태 기계 가. 상태 전이 다이어그램 & 상태 전이 테이블 2. 결정형 유한 상태 기계
2023.03.31 -
[Compiler] 실습 준비(Windows)
1. 컴파일러-컴파일러 컴파일러 컴파일러(Compiler-compiler)는 컴파일러를 만들기 위한 컴파일러를 의미한다. 일반적으로 컴파일러는 어떠한 프로그래밍 언어로 쓰인 원시 코드(source code)를 분석 파일(object file)로 변환하는 기능을 하는 프로그램을 의미하지만 그 컴파일러를 만들려면 엄청난 기술적 구현 능력과 고생이 요구된다. 그래서 컴파일러 그 자체 또는 컴파일러가 제공하는 구문 분석 기능을 자동으로 만드는 프로그램으로 컴파일러 컴파일러를 고안하여 개발하였다. 출처 : https://ko.wikipedia.org/wiki/컴파일러_컴파일러 2. 어휘 분석기 생성기 가. Lex Lex는 컴퓨터 과학 분야에서 구문 분석기인 Yacc와 같이 널리 쓰이는 어휘 분석기이다. Lex는 ..
2023.03.24 -
[Compiler] 형식 언어, 정규 수식
Compiler miro.com 어휘 분석을 구현하기 위한 기초 이론과 배경에 대해서 학습했다. 1. 형식 언어 2. 정규 수식 출처 : https://namu.wiki/w/%ED%98%95%EC%8B%9D%20%EC%96%B8%EC%96%B4 출처 : http://www.aistudy.com/linguistics/formal_language.htm 출처 : https://en.wikipedia.org/wiki/Formal_language
2023.03.24