CS(40)
-
[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 -
[Network] 네트워크 구성 요소
IT엔지니어를 위한 네트워크 입문을 공부하고 정리한 내용입니다. 오늘은 네트워크를 이해하기 위해 네트워크를 구성하는 요소에 대하여 알아보았습니다. 1. 네트워크 인터페이스 카드 (NIC) 우리가 일상에서 ‘랜카드’라고 많이 부르는 것이다. 정식 명칭은 ‘Network interface card’로 컴퓨터를 네트워크에 연결하기 위한 하드웨어 장치다. 보통 노트북과 데스크톱에는 NIC가 온보드 형태로 기본 장착되는 경우가 많다. 가. NIC의 역할 직렬화(Serialization) : 전기적 신호는 데이터 신호로, 데이터 신호는 전기적 신호로 변환. MAC 주소 : NIC는 MAC 주소를 가진다. 입력받은 패킷의 목적지 주소와 자신의 MAC 주소와 일치하는지 확인하고 받아들인다. 흐름 제어(Flow Cont..
2023.03.20