FREE SHIPING FOR OVER $100 - MOSTLY SHIP VIA USPS GROUND ADVANTAGE %D days %H:%M:%S
김상욱
CHAPTER01프로그래밍언어와번역1.1자동번역기1.2프로그래밍언어의진화1.2.11950년대1.2.21960년대1.2.31970년대1.2.41980년대1.2.51990년대1.2.62000년대1.2.72010년대1.3몇언어의구문구조와특성1.3.1포트란1.3.2알골1.3.3코볼1.3.4에이피엘1.3.5리스프1.3.6프롤로그1.3.7스몰톡1.3.8파이썬1.4프로그래밍언어의실행CHAPTER02컴파일러개요2.1고급프로그래밍언어와컴퓨터시스템의연결2.2컴파일러구성2.2.1어휘분석:프로그램문장에서어휘를분류하기2.2.2구문분석:프로그램에있는문장을문법과대조하기2.2.3의미분석:선언한변수에자료형과속성을할당하고중간코드생성하기2.2.4전역코드최적화2.2.5코드생성2.2.6지역코드최적화2.3컴파일러설계와개발2.3.1혼자서설계하고구현하기2.3.2컴파일러-컴파일러도구로설계하고구현하기CHAPTER03언어를표현하는방법3.1형식언어3.2정규수식3.2.1결합3.2.2접속3.2.3반복3.3유한상태기계3.3.1상태기계3.3.2상태전이다이어그램3.3.3상태전이테이블CHAPTER04언어와문법4.1문법표현4.1.1문법4.1.2문법의분류4.2문맥-자유문법으로프로그래밍언어표현하기4.3문법의불명확성4.3.1불명확한문법을명확한문법으로재구성하기4.3.2불명확한if문구조4.4푸시다운기계와번역기4.4.1푸시다운기계4.4.2언어의등급과인식기계CHAPTER05어휘분석5.1유한상태기계의구현5.1.1유한상태기계구성개요5.1.2어휘분석에의적용5.1.3유한상태기계의동작구현5.2토큰:프로그램을단어로분리하기5.2.1예약어5.2.2식별자5.2.3연산자5.2.4숫자상수5.2.5문자형상수5.2.6특수문자5.2.7할당기호5.2.8주석5.2.9빈칸5.3심볼테이블5.3.1심볼테이블구성:속성과값5.3.2부가기능추가CHAPTER06Lex사용하기:어휘분석기6.1Lex6.1.1Lex구조와원시코드6.1.2Lex원시프로그램예6.2Lex실행하기6.3윈도우즈용Flex로실습하기CHAPTER07구문분석7.1파스트리와신택스트리7.2하향식파싱개념7.3상향식파싱개념CHAPTER08하향식파싱8.1리커시브디센트파싱8.1.1리커시브디센트파서8.1.2결정터미널집합8.2LL(1)문법8.3예측파싱8.3.1예측파싱을위한자동기계모델8.3.2예측파서와구조와동작8.3.3예측파서의파싱테이블만들기8.4불명확한문법의예측파싱8.5예측파싱에서에러처리CHAPTER09상향식파싱9.1이동-환원파싱9.2LR문법9.2.1이동/환원충돌9.2.2환원/환원충돌9.2.3충돌해결CHAPTER10FIRST와FOLLOW터미널집합구하기10.1FIRST터미널집합구하기10.2FOLLOW터미널집합구하기CHAPTER11LR파서11.1LR파서개념11.2LR파싱테이블11.3LR파싱드라이버11.4LR파싱테이블만들기11.4.1LR(0)아이텀의캐노니컬모음구하기11.4.2LR(0)아이텀에서단순LR파싱테이블구성하기11.5캐노니컬LR파싱11.6미리보기LR파싱CHAPTER12Yacc사용하기:파서생성기12.1Yacc개요12.2Yacc스펙12.2.1선언부12.2.2규칙기술부12.2.3지원루틴부12.2.4Yacc스펙예12.3Yacc실행하는방법12.4Yacc실습하기CHAPTER13의미분석과속성문법13.1의미분석개요13.2구문-직접번역13.2.1액션루틴을결합한리커시브디센트파서구현13.2.2액션루틴을결합한LR파서구현13.3속성문법13.3.1합성속성13.3.2상속속성13.4선언문의의미분석13.5레코드와객체13.5.1레코드자료형13.5.2객체자료형13.6자료형검사13.6.1자료형검사의의미표현13.6.2자료형검사구현13.6.3연산자오버로딩과다형성CHAPTER14중간코드생성14.1중간코드14.2산술연산수식의3-주소코드생성14.3제어구조의3-주소코드생성14.3.1if문의3-주소코드14.3.2불리언수식14.3.3while문의3-주소코드14.3.4for문의3-주소코드14.4함수호출의3-주소코드생성14.5배열원소의주소지정CHAPTER15기계어코드생성15.1기계어코드와인스트럭션15.1.1기계어코드15.1.2인스트럭션형식15.2기계어코드로변환15.2.1주소직접지정15.2.2주소상대적으로지정15.3점프주소지정15.3.1단일단계방법15.3.2두단계방법15.4레지스터할당CHAPTER16코드최적화16.1기본블록과제어흐름그래프16.2전역코드최적화16.2.1실행하지않는코드제거16.2.2죽은코드제거16.2.3순환몸체에서변하지않는코드이동16.2.4상수접기16.2.5강세감소16.2.6대수적변환16.3지역코드최적화16.3.1로드/저장최적화16.3.2점프최적화16.3.3대수적최적화CHAPTER17실행환경지원17.1실행환경17.1.1함수정의와값전달17.1.2함수호출과반환17.1.3인자전달방식17.2실행프로그램의메모리할당17.2.1정적공간할당17.2.2스택공간할당17.2.3힙공간할당17.3활성레코드와활성트리17.3.1활성레코드17.3.2활성트리17.4자료사용하기17.4.1블록과자료17.4.2범위규칙17.4.3지역자료사용17.4.4전역자료사용17.5엑세스링크CHAPTER18인터프리터18.1인터프리터개요18.2재귀적인터프리터18.3반복적인터프리터18.4리커시브디센트파서에의한인터프리터18.5인터프리터와컴파일러의결합:Just-In-Time컴파일CHAPTER19기계어코드실행시뮬레이션19.1개요19.2간단한컴퓨터구조19.2.1메모리표현19.2.2처리기표현19.2.3인스트럭션실행표현19.2.4산술/논리연산장치표현19.2.5기계주기표현19.2.6주소지정방식표현19.2.7입력과출력표현19.31-주소컴퓨터구조의시뮬레이션구현19.3.1내부구조19.3.2인스트럭션셋19.2.3시뮬레이터에서실행할프로그램19.2.4단일누산기컴퓨터시뮬레이터■참고및인용문헌■용어