HOME > 상세정보

상세정보

컴파일러 만들기 : 컴퓨터 프로그램의 구조와 원리

자료유형
단행본
개인저자
유종원
서명 / 저자사항
컴파일러 만들기 : 컴퓨터 프로그램의 구조와 원리 / 유종원 지음
발행사항
서울 :   에이콘,   2021  
형태사항
235 p. : 삽화 ; 24 cm
총서사항
에이콘 프로그래밍 언어 시리즈
ISBN
9791161755564
일반주기
부록: 어셈블리  
서지주기
참고문헌(p. 231)과 색인수록
000 00000cam c2200205 c 4500
001 000046095673
005 20211012163214
007 ta
008 211012s2021 ulka b 001c kor
020 ▼a 9791161755564 ▼g 93000
035 ▼a (KERIS)BIB000015935373
040 ▼a 222003 ▼c 222003 ▼d 211009
082 0 4 ▼a 005.453 ▼2 23
085 ▼a 005.453 ▼2 DDCK
090 ▼a 005.453 ▼b 2021z1
100 1 ▼a 유종원
245 1 0 ▼a 컴파일러 만들기 : ▼b 컴퓨터 프로그램의 구조와 원리 / ▼d 유종원 지음
246 1 1 ▼a Crafting a compiler
260 ▼a 서울 : ▼b 에이콘, ▼c 2021
300 ▼a 235 p. : ▼b 삽화 ; ▼c 24 cm
490 1 0 ▼a 에이콘 프로그래밍 언어 시리즈
500 ▼a 부록: 어셈블리
504 ▼a 참고문헌(p. 231)과 색인수록
830 0 ▼a 에이콘 프로그래밍 언어 시리즈
945 ▼a KLPA

소장정보

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.453 2021z1 등록번호 121258258 도서상태 대출가능 반납예정일 예약 서비스 B M

컨텐츠정보

책소개

현대 소프트웨어는 하드웨어의 성능 발전에 힘입어 많은 부분에서 추성화된 덕택에 코딩에 입문하기도 쉬워졌고 원하는 프로그램을 만들기도 쉬워졌다. 하지만 컴퓨터를 더 잘 이해하고 싶고 프로그래밍을 더 잘 하고 싶은 사람들에게는 불투명한 벽이 생긴 셈이다. 이 책은 그 어떤 다른 도구나 라이브러리를 사용하지 않고 인터프리터, 컴파일러, 가상머신을 직접 구현해보며 추상화라는 벽 뒤에서 실제로 일어나고 있는 일들을 이해할 수 있도록 돕는다.

◈ 이 책에서 다루는 내용 ◈

◆ 소스 코드 문자열 분석 방법
◆ 소스 코드의 구조 분석 방법
◆ 인터프리터 구현 방법
◆ 컴파일러 구현 방법
◆ 가상머신 구현 방법
◆ 가비지 컬렉터 구현 방법
◆ 어셈블리로 배우는 컴퓨터의 동작 방식

◈ 이 책의 대상 독자 ◈

◆ 컴퓨터를 더 잘 알고 싶고 프로그래밍을 더 잘하고 싶은 사람
◆ 인터프리터, 컴파일러, 가상머신을 만들어보고 싶은 사람
◆ 나만의 프로그래밍 언어를 만들어보고 싶은 사람

◈ 이 책의 구성 ◈

◆ 1장: 이 책을 학습하는 데 필요한 내용을 다룬다.
◆ 2장: 소스 코드의 문자열을 분석하는 방법을 다룬다.
◆ 3장: 소스 코드의 구조를 분석하는 방법을 다룬다.
◆ 4장: 소스 코드를 실행하는 인터프리터의 구현 방법을 다룬다.
◆ 5장: 목적 코드를 생성하는 방법을 다룬다.
◆ 6장: 목적 코드를 실행하는 가상머신의 구현 방법을 다룬다. 또한 동적 메모리를 관리하기 위해 마크 앤 스윕이라는 가비지 컬렉터도 간단하게 구현해본다.
◆ 7장(부록): 어셈블리를 통해 컴퓨터의 동작 방식을 알아본다. CPU의 레지스터와 메모리를 직접 조작해 계산해보고 함수도 호출해본다.
◆ 자료: 이 책은 온전히 동작하는 예제 코드를 제공한다. 2장부터 6장까지 각 장에서 다루는 어휘 분석기, 구문 분석기, 인터프리터, 코드 생성기, 가상머신 프로젝트를 제공한다.


정보제공 : Aladin

저자소개

유종원(지은이)

코딩 교육 열풍이다. 대부분의 학원과 기관이 단기간, 결과물, 취업을 목표로 한다. 짧은 시간 내에 유행하는 프로그래밍 언어와 최신 프레임워크의 사용법을 배우고 결과물을 만들어 취업하는 것을 목표로 한다. 이래서는 수료를 목표로 버티는 것도 고난이겠지만, 취업한 후에도 같은 고난이 반복된다. 그저 고통만이 반복되는 것은 코딩이 아니다. 코딩은 목표를 이루기 위해 끊임없이 문제와 해결 방안을 찾아 시도해보는 퍼즐과 같다. 그 과정은 기대와 설렘, 실망과 좌절의 반복이겠지만, 그 끝에는 모든 것을 상쇄하고도 남는 커다란 성취감과 보람이 찾아온다. 코딩을 하기 위해 필요한 것은 프로그래밍 언어의 해박한 문법 지식도, 최신 프레임워크의 사용법도 아니다. 가장 기본이 되는 것은 생각하는 능력과 생각을 코드로 표현하는 능력이다. 『컴파일러 만들기』를 주제로 하는 이 책의 내용은 코딩의 기본을 다지기 위한 마지막 단계다. 생각을 코드로 표현할 수 있는 능력을 갖췄다면, 코드가 무엇인지 그리고 어떻게 동작하는지를 알아야 할 단계다. 꼭 컴파일러를 만들어봐야만 알 수 있는 것은 아니겠지만, 이것보다 확실한 방법이 또 어디 있겠는가. 돌아가지 말고, 컴파일러를 만들어본 적이 없다면 반드시 경험해보기 바란다. 컴파일러까지 만들어봤다면 앞으로 무엇을 하든 순조롭게 나아갈 수 있는 탄탄한 기본기를 갖춘 셈이다. 자부심을 가져도 좋다. 이 책을 시작으로 코딩을 제대로 익힐 수 있는 강의 제작이나 서적 집필을 계획하고 있다. 코딩을 하는 모든 사람이 코딩의 본질을 파악하고 즐겁게 코딩을 했으면 하는 바람이다.

정보제공 : Aladin

목차

1장. 시작하며
1.1 프로그래밍 언어
1.2 컴파일러
1.3 예제 컴파일러
1.4 마치며

2장. 어휘 분석 29
2.1 어휘와 토큰
2.2 어휘 분석기
2.2.1 소스 코드 문자열
2.2.2 어휘의 시작 문자
2.2.3 숫자 리터럴의 시작 문자
2.2.4 문자열 리터럴의 시작 문자
2.2.5 식별자와 키워드의 시작 문자
2.2.6 연산자와 구분자의 시작 문자
2.2.7 숫자 리터럴 어휘
2.2.8 문자열 리터럴 어휘
2.2.9 식별자와 키워드 어휘
2.2.10 연산자와 구분자 어휘
2.3 마치며

3장. 구문 분석
3.1 구문 트리와 노드
3.2 문 분석기
3.2.1 선언 영역
3.2.2 함수의 정의
3.2.3 본문
3.2.4 변수의 선언
3.2.5 본문의 식
3.2.6 식
3.2.7 대입 연산자
3.2.8 논리 or 연산자
3.3 마치며

4장. 인터프리터
4.1 구문 트리 순회
4.2 구문 트리 실행기
4.2.1 엔트리 포인트 함수 호출
4.2.2 함수
4.2.3 print문
4.2.4 데이터 타입
4.2.5 문자열 리터럴
4.2.6 산술 연산
4.2.7 논리 연산
4.2.8 변수의 선언과 참조
4.2.9 for문
4.2.10 if문
4.2.11 continue문
4.2.12 함수 호출
4.2.13 함수호출 인자
4.2.14 return문
4.2.15 내장 함수
4.2.16 배열 리터럴
4.2.17 원소값 참조
4.2.18 원소값 변경
4.3 마치며

5장. 코드 생성
5.1 명령어와 목적 코드
5.2 코드 생성기
5.2.1 엔트리 포인트 함수 호출
5.2.2 함수
5.2.3 print문
5.2.4 문자열 리터럴
5.2.5 산술 연산자
5.2.6 식의 결과값
5.2.7 논리 or 연산자
5.2.8 변수 선언
5.2.9 변수 참조
5.2.10 for문
5.2.11 if문
5.2.12 continue문
5.2.13 함수 호출
5.2.14 배열 리터럴
5.2.15 원소값 참조
5.2.16 원소값 수정
5.3 마치며

6장. 가상 머신
6.1 스택 프레임과 콜 스택
6.2 코드 실행기
6.2.1 실행과 종료
6.2.2 함수의 주소
6.2.3 함수 호출
6.2.4 메모리 할당
6.2.5 문자열 리터럴
6.2.6 콘솔 출력
6.2.7 return문
6.2.8 덧셈 연산
6.2.9 논리 or 연산
6.2.10 변수 참조
6.2.11 for문과 if문
6.2.12 내장 함수
6.2.13 배열 리터럴
6.2.14 원소값 참조
6.2.15 원소값 변경
6.2.16 가비지 컬렉터
6.3 마치며

7장. 부록: 어셈블리
7.1 레지스터 머신
7.1.1 식의 계산
7.1.2 흐름 제어
7.1.3 함수의 호출과 종료
7.1.4 함수 호출 인자
7.1.5 매개변수와 지역변수
7.2 마치며

관련분야 신착자료