본문 바로가기

전체 글134

[컴파일러] - Semantices What do we need to know to compile this? Beyond Syntax CFG는 프로그래밍 언어의 구문 구조를 정의하는 데 사용되지만, 언어의 모든 의미론적 측면(Semantic aspect)을 포착하지는 못한다. CFG는 토큰과 그들의 조합으로 구문을 정의하지만, 변수의 선언, 타입 일관성, 표현식의 유효성, 메서드 호출의 적절성 등과 같은 의미론적 규칙은 포함하지 않는다. 이러한 의미론적 규칙은 컴파일러나 인터프리터가 소스 코드를 분석하고 실행 가능한 프로그램을 생성하는 데 필수적임 의미론적 규칙의 예: 변수 선언 확인: 프로그램에서 사용되는 모든 변수가 선언되었는지 확인 표현식 내 타입 일관성: 연산자와 피연산자 간의 타입이 적절히 일치하는지 검사 할당 가능성 검사: x .. 2024. 1. 25.
[컴파일러] - IRs Intermediate Representations Abstract Syntax Tree(ASTs) Linear Representations & more What’s a Parser to Do? Idea: 중요한 포인트를 찾아내는 것(파서가 문백을 파악하고 의미적인 처리를 수행) → semantic action LR에서 production이 reduce 될때 or LL에서 convenient point(파서가 현재 입력 스트림에 대해 적절한 규칙을 선택할 수 있는 지점) 규칙이 S → aSb | ε이고 현재 입력이 'a'로 시작한다면, 파서는 S → aSb 규칙을 적용할 것이다. 여기서 'convenient point'는 a를 인식하는 시점 전형적인 semantic actio.. 2024. 1. 25.
[컴파일러] - LL Parsing Basic Parsing Strategies Bottom-up 입력을 가장 낮은 단계부터 시작해 트리구성, 다음 입력을 shift 하거나 핸들을 진행해 reduce 모든 입력이 읽히고 그 결과가 문법의 시작 심볼로 reduce되면 파싱 완료 LR(k)와 subset들(SLR(k), LALR(k),…) Top-Down 시작심볼로부터 출발해 반복적으로 non-terminal을 선택하고 확장 확장된 트리가 입력과 일치하면 성공적으로 파싱완료 LL(k) Predictive Parsing 다음 입력 심볼만 보고 어떤 문법 규칙을 적용할지 결정할 수 있을때 사용하는 기법 LL파싱에 해당하며 Backtracking하지 않는 top-down 파싱 룩어헤드(Lookahead) 토큰을 사용하여 어떤 규칙을 적용할지 미리 .. 2024. 1. 25.
[컴파일러] - LR Parsing CFG → DFA $S::= aABe$ $A::= Abc|b$ $B::=d$ DFA Rescanning을 피하는 법 LR Parse는 Action 테이블과 Goto 테이블로 나뉜다. Action Table 각 행은 파서의 상태를 나타냄 각 열은 입력 기호를 나타냄 각 셀은 해당 상태에서 특정 입력 기호를 만났을 때 수행할 동작을 나타냄 Shift → 스택에 다음 입력 기호를 푸시하고 상태를 변경 Reduce → 스택에서 규칙에 해당하는 기호들을 팝하고 새로운 기호로 교체 Accept → 입력이 정확히 일치해 문장이 파싱되었음을 나타냄 Error → 문법 오류 Goto Table 각 행은 파서의 현재 상태를 나타냄 각 열은 규칙의 왼쪽 항목(non-terminal)을 나타냄 각 셀은 해당 상태에서 특정 규.. 2024. 1. 25.
[운영체제]OS12_IOSystems Overview I/O management 컴퓨터 작동의 중요한 측면 → OS의 중요한 구성 I/O device들은 함수와 속도면에서 매우 다름 → I/O subsystem으로 그것들을 통제 I/O와 관련된 기술 I/O interfaces의 표준화 devices의 새로운 타입은 증가하고 있다. Device drivers는 device details들을 캡슐화 → 일관된인터페이스 제공 → I/O 서브 시세틈이 각 장치의 구체적인 세부정보를 이해하지 않고도 다양한 장치와 상호작용 I/O Hardware I/O 디바이스의 다양성 Stroage, Transmission, Human-interface, Special devices 공통 개념 - I/O devices 인터페이스로부터 온 signal Port - d.. 2024. 1. 25.
[운영체제]OS11_MassStorage OS11_MassStorage Overview of Mass Storage Structure Hard disk drives(HDDs) Nonvolatile memory(NVM) flash memory → 여러개의 블락자체 단위로 데이터를 지움 Hard Disk Drive HDD는 플래터(platter)와 이 위를 움직이는 읽기-쓰기 헤드로 구성된다. 데이터는 이 플래터의 표면에 자기적으로 기록 Cylinder, Track, Sector로 구성 Transfer rate: 드라이브와 컴퓨터 간에 데이터가 전송되는 속도 Positioning time(random-access time) seek time + rotational latency Head crash: disk head가 disk 표면과 접촉하는 현상.. 2024. 1. 25.