Blake Woo

컴파일러 - 형식언어

형식언어와 유한 오토마타 1. 형식언어 구조, 범위 등이 명확히 규정되어 있는 언어. 자연 언어의 문법 구조를 수학적 측면에서 형식화한 것으로서 자연 언어보다 훨씬 간단한 구조의 인공 언어로 볼 수 있다. 형식 언어의 이론은 알골 등의 프로그램 작성 언어에서 제반 문제로 응용되고 있다. 언어는 문법에 의해서 생성되고 정의된다. 이런 문법의 차이에 따...

리눅스 파고 들기 - 개요

리눅스 파고들기 1. 개요 가상화와 시스템 개발에 대해 공부하기 위해서 LINUX 커널을 공부할 예정이다. 큰 구조에 대한 공부부터 시작해 세부 구조까지 타고 들어갈 생각이다. 아무래도 어려운 부분이니만큼 매일 업데이트 되긴 힘들것 같으나 최대한 되는데로 업데이트 해볼 생각이다. 해당 포스팅을 진행하는데 참고할 책은 “리눅스 커널 심층분석”이라...

컴파일러 - 컴파일러 구조

컴파일러 구조 차후 세부적으로 다룰 것이지만 당장은 대략적인 컴파일러의 구조에 대해서 알아보겠다. 컴파일러는 크게 전단부와 후단부로 나뉘어져있다. 1. 전단부 소스 언어에 관계되는 부분으로 소스 프로그램을 분석하고 중간 코드를 생성하는 부분이다. 1) 어휘 분석(lexical analysis) 원시 프로그램을 읽어 들여 토큰(Token)이라는...

컴파일러 - 컴파일러의 개요

컴파일러 1. 프로그래밍 언어 어떤 일을 컴퓨터로 처리하기 위해서 일련의 과정을 기술할 때 사용되는 언어를 말한다. 이런 프로그래밍 언어는 저급 언어와 고급 언어로 나뉠 수 있다. 1) 저급 언어 모든 컴퓨터 구조에 관한 지식을 요구하며 프로그래머의 생각을 자연스럽게 표현할 수 있는 언어 구조를 갖추고 있지 못한 언어 자기 자신에 대한 고...

컴퓨터 구조 - CPU 구조 - 레지스터

Register 산술적/논리적 연산이나 정보 해석, 전송 등을 할 수 있는 일정 길이의 정보를 저장하는 중앙 처리 장치(CPU) 내의 기억 장치. 저장 용량에는 제한되어 있으나 주기억 장치에 비해서 접근 시간이 빠르고, 체계적인 특징이 있다. 컴퓨터에는 산술 및 논리 연산의 결과를 임시로 기억하는 누산기(accumulator), 기억 주소나 장치의 주...

컴퓨터 구조 - 기본적인 논리회로 - 조합회로 및 순차회로

기본적인 조합회로 및 순차회로 이전에 포스팅했던 논리 게이트들을 조합하여 여러 회로를 만들 수 있다. 수를 더하는 회로부터 두 값을 비교하는 회로등 이런 회로들이 모여 컴퓨터를 이룬다. 이번 포스팅에서는 컴퓨터를 구성하는데 필요한 기본적인 논리회로에 대해 알아보겠다. 1. 조합 회로 입력값만 결과값에 영향을 미치는 회로이다. 1) Half-add...

컴퓨터 구조 - 기본적인 논리회로 - 논리 게이트

논리회로 1. 논리 게이트 하나 이상의 논리적 입력값에 대해 논리 연산을 수행하여 하나의 논리적 출력값을 얻는 전자회로를 말한다. 1) 논리곱 - AND 입력값이 모두 1일때만 결과가 1이고 나머지는 0이다. 논리식 표기법 : $C=A\cdot B$ 2) 논리합 - OR 입력값 중 하나라도 1이라면 결과가 1이다. 논리식 표기법 : $C=A...