HOME > 상세정보

상세정보

Lex와 yacc (117회 대출)

자료유형
단행본
개인저자
Levine, John R. 임백준, 역 Mason, Tony Brown, Doug
서명 / 저자사항
Lex와 yacc / 존 레빈 ; 토니 매이슨 ; 더그 브라운 [공]저 ; 임백준 역.
발행사항
서울 :   한빛미디어 ,   2002.  
형태사항
481 p. : 삽도 ; 26 cm.
원표제
Lex & yacc
기타표제
컴파일러 제작 도구의 혁명 렉스와 야크 철저 분석
ISBN
8979142153
일반주기
부록으로 'AT & T 렉스 '등 수록  
서지주기
참고서적( p. 473-474)과 색인수록
000 00944camccc200301 k 4500
001 000000807740
005 20100805074825
007 ta
008 030220s2002 ulka b 001a kor
020 ▼a 8979142153 ▼g 13560 : ▼c \23000
035 ▼a KRIC08498885
040 ▼a 211046 ▼c 211046 ▼d 211046 ▼d 211009
041 1 ▼a kor ▼h eng
049 1 ▼l 111237967 ▼f 개가 ▼l 121069746 ▼f 과학 ▼l 121069747 ▼f 과학
082 0 4 ▼a 005.4/3 ▼2 21
090 ▼a 005.43 ▼b 2002g
100 1 ▼a Levine, John R.
245 1 0 ▼a Lex와 yacc / ▼d 존 레빈 ; ▼e 토니 매이슨 ; ▼e 더그 브라운 [공]저 ; ▼e 임백준 역.
246 0 3 ▼a 컴파일러 제작 도구의 혁명 렉스와 야크 철저 분석
246 1 9 ▼a Lex & yacc
260 ▼a 서울 : ▼b 한빛미디어 , ▼c 2002.
300 ▼a 481 p. : ▼b 삽도 ; ▼c 26 cm.
500 ▼a 부록으로 'AT & T 렉스 '등 수록
504 ▼a 참고서적( p. 473-474)과 색인수록
700 1 ▼a 임백준, ▼e
700 1 ▼a Mason, Tony
700 1 ▼a Brown, Doug

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 중앙도서관/제2자료실(3층)/ 청구기호 005.43 2002g 등록번호 111237967 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 2 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.43 2002g 등록번호 121069746 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 3 소장처 과학도서관/보존서고5(동양서)/ 청구기호 005.43 2002g 등록번호 121069747 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 4 소장처 세종학술정보원/과학기술실(5층)/ 청구기호 005.43 2002g 등록번호 151141186 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 중앙도서관/제2자료실(3층)/ 청구기호 005.43 2002g 등록번호 111237967 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.43 2002g 등록번호 121069746 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 2 소장처 과학도서관/보존서고5(동양서)/ 청구기호 005.43 2002g 등록번호 121069747 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 세종학술정보원/과학기술실(5층)/ 청구기호 005.43 2002g 등록번호 151141186 도서상태 대출가능 반납예정일 예약 서비스 B M

컨텐츠정보

줄거리

1장. 렉스와 야크
컴파일러나 인터프리터를 만들때 렉스와 야크를 사용하는 이유와 그 방법에 대해 개괄적으로 살펴보고, 간단한 렉스와 야크 애플리케이션을 몇 개 보여준다. 또한 이 책에서 사용하는 기본적인 용어들을 설명한다.

2장. 렉스 이용하기
렉스를 사용하는 방법에 대해 설명한다. 파일에 저장된 단어의 수를 세고, 프로그램의 명령어 스위치와 인자를 분석하고, C 프로그램으로 통계를 뽑는 렉스 애플리케이션을 개발해본다.

3장. 야크 이용하기
완전한 기능을 갖춘 데스크탑용 계산기를 개발하기 위해 렉스와 야크를 이용하는 예제를 보여준다.

4장. 메뉴 생성 언어
메뉴 생성기를 개발하기 위해 렉스와 야크를 사용하는 예를 보여준다.

5장. SQL 파싱
관계형 데이터베이스 언어로 사용되는 SQL 문법 전체를 해석하는 파서(parser)를 개발한다.

6장. 렉스 명세서 참조 / 7장. 야크 문법 참조
렉스 및 야크 프로그래머가 사용할 수 있는 기능과 옵션에 대해 자세히 설명한다. 6장부터 9장까지는 렉스와 야크에 이미 익숙한 프로그래머가 새로운 렉스와 야크 애플리케이션을 개발할 때 참조할 수 있는 기술적인 정보를 제공한다.

8장. 모호성과 충돌
야크가 주어진 문법을 정확하게 해석할 수 없게 하는 모호성과 충돌에 대해서 설명한다. 다음으로, 그러한 문제를 지적하여 고칠 수 있는 방법을 알아본다.

9장. 에러 보고와 복구
컴파일러 혹은 인터프리터 개발자가 컴파일러에 입력되는 내용에서 잘못을 발견하거나 인식하여, 이를 적절하게 보고할 수 있는 방법에 대해서 논의한다.


정보제공 : Aladin

책소개

렉스와 야크는 주로 컴파일러나 인터프리터 개발자가 사용하는 도구이지만, 효율적인 입력처리와 구문 분석및 파싱을 원하는 모든 응용프로그래머 또한 유용하게 사용이 가능하다. 이 책은 lex와 yacc에 대한 가이드북으로 효율적인 입력 처리와 구문 분석및 파싱에 관한 내용을 제공한다.

개정판에는 새롭게 추가된 내용과 예제들을 담았고, 추가적으로 4장과 5장을 메뉴 컴파일러와 SQL문법을 구현하는데 할애했다. 부록에는 렉스와 야크에 대한 레퍼런스, 다양한 오류 해결방법, 유닉스와 MS-DOS에 사용할 수 있는 주요 버전들에 대한 정보를 담았다.

다음 내용들을 담고 있다.

  • 어휘 분석기와 파서의 개념 및 관계
  • 패턴 매칭 기법
  • 메뉴 생성 언어 개발및 구축
  • SQL 파서
  • 렉스 및 야크 레퍼런스
  • 다양한 에러 해결 방법


    정보제공 : Aladin
  • 저자소개

    더그 브라운(지은이)

    1976년 일리노이 대학교에서 전기공학으로 석사학위를 받았으며, 현재 오리건주에 있는 배버톤사의 고문 겸 계약자이다. 1977년 이후로 회로 시뮬레이션, 합성, 테스트를 위한 소프트웨어 개발을 애 왔다. 저서로는 <lex & yacc, 2nd Edition>(1992, 공저) 등이 있다.

    존 레빈(지은이)

    현재 유닉스와 컴파일러에 관한 글을 쓰고 강의를 하며 컨설팅을 하고 있다. 유닉스 버젼 로터스 1-2-3와 노턴 유틸리티를 만드는 작업에 참여한 바 있으며 IBM RT PC용 AIX 설계자 중 한 사람이다. 1984년에 예일 대학에서 컴퓨터 과학 박사학위를 받았다.

    토니 매이슨(지은이)

    현재 분산 시스템 소프트웨어를 개발하는 회사인 트랜자르크사의 AFS 개발 팀 멤버다. 그전에는 스탠포드 대학의 분산 시스템 그룹에서 분산 운영체제와 데이터 통신 분야에서 일한 바 있다. 1987년 시카고 대학에서 수학 학사학위를 받았다.

    임백준(옮긴이)

    서울대학교에서 수학을 공부하고, 미국으로 건너가 인디애나 주립대학교에서 컴퓨터과학을 공부했어요. 중학교 시절 8비트 컴퓨터와 베이식 언어를 접하며 프로그래밍에 대한 재미를 알게 되었습니다. 지금은 맨해튼의 스타트업 회사에서 분산 처리, 빅데이터, 머신러닝과 관련된 프로그램을 개발하면서, 여러 매체에 글을 기고하고, 팟캐스트 방송 〈나는 프로그래머다〉 호스트로 활약하고 있습니다. 지은 책으로 《임백준의 대살개문》 《누워서 읽는 알고리즘》 《팟캐스트 나는 프로그래머다 1,2》 등이 있습니다. 현재, 미국 뉴저지에서 아내와 두 딸과 함께 살고 있습니다. baekjun.lim@gmail.com

    정보제공 : Aladin

    목차

    
    목차
    1장. 렉스와 야크
     가장 간단한 렉스 프로그램 = 29
     렉스 이용한 단어 인식 = 29
      기호 테이블 = 38
     문법 = 43
      파서와 렉서의 의사 소통 = 45
      언어 요소 분석기 = 46
      야크 파서 = 48
      규칙절 = 50
     렉스와 야크의 실행 = 54
     렉스와 손수 작성한 렉서의 비교 = 55
     연습 문제 = 58
    2장. 렉스 이용하기
     정규 표현식 = 60
      정규 표현식의 예 = 63
     단어 세기 프로그램 = 67
     명령행 파싱 = 74
      시작 상태 = 79
     C 소스 코드 분석기 = 83
     요약 = 87
     연습 문제 = 87
    3장. 야크 이용하기
     문법 = 90
      재귀 규칙 = 91
     이동/감소 파싱 = 92
      야크에서 파싱할 수 없는 문법 = 94
     야크 파서 = 95
      정의절 = 96
      규칙절 = 96
      기호 값과 동작 = 97
     렉서 = 98
      간단한 파서 컴파일 및 실행 = 100
     산술 표현식과 모호성 = 100
      우선 순위 규칙을 사용하지 말아야 할 때 = 105
     변수와 타입을 갖는 토큰 = 106
      기호 값과 %union = 107
     기호 테이블 = 110
     함수와 예약어 = 115
      기호 테이블의 예약어 = 116
      교환 가능한 함수와 변수명 = 118
     Make를 이용한 파서 구축 = 123
     요약 = 124
     연습 문제 = 125
    4장. 메뉴 생성 언어
     MGL 개요 = 127
     MGL 개발 = 130
     MGL 구축 = 142
      초기화 = 146
     화면 처리 = 149
     종료 = 153
     샘플 MGL 코드 = 156
     연습문제 = 162
    5장. SQL 파싱
     SQL 개요 = 166
      관계형 데이터베이스 = 166
      관계의 구성 = 168
      SQL을 사용하는 세 가지 방법 = 169
     구문 검사기 = 171
      렉서 = 172
      에러와 메인 루틴 = 177
     파서 = 178
      정의 = 179
      최상위 규칙 = 179
      스키마 서브-언어 = 180
      모듈 서브-언어 = 187
      조작 서브-언어 = 189
      잡동사니 = 204
      구문 검사기의 사용 = 204
     임베디드 SQL = 205
      렉서에 가한 변경 = 206
      파서에 가한 변경 = 208
      보조 루틴 = 209
      전처리기 이용하기 = 210
     연습문제 = 211
    6장. 렉스 명세서 참조
     렉스 명세서의 구조 = 213
      정의절 = 214
      규칙절 = 214
      사용자 서브루틴 = 215
     BEGIN = 215
     버그 = 216
      모호한 미리 보기 = 216
      AT&T 렉스 = 217
      플렉스 = 217
     문자 변환 = 218
     컨텍스트 감지 = 219
      왼쪽 컨텍스트 = 219
      오른쪽 컨텍스트 = 221
     정의(대체) = 222
     ECHO = 223
     Include 연산(파일의 논리적 포함) = 223
      yywrap()을 이용한 파일 체인 = 224
      파일 포함 구조 = 224
     문자열에서 읽어들이는 입력 = 226
      AT&T 렉스 = 226
      플렉스 = 226
      아브락사스 피시렉스 = 227
      MKS 렉스 = 228
      POSIX 렉스 = 228
     input() = 228
     내부 테이블(%N 선언) = 229
     렉스 라이브러리 = 231
      main( ) = 231
      다른 라이브러리 루틴 = 231
     행 번호와 yylineno = 232
     리터럴 블록 = 232
     한 프로그램에 존재하는 여러 개의 렉서 = 233
      결합된 렉서 = 233
      여러 개의 렉서 = 234
     output() = 238
     렉서가 생성한 렉서의 이식성 = 239
      렉스 명세서 이식 = 239
      생성된 C 렉서 이식 = 240
     정규 표현식 구문 = 241
      메타 문자 = 241
      POSIX 확장 = 245
     REJECT = 245
     yylex()에서 값 리턴하기 = 246
     시작 상태 = 247
     unput() = 250
     yyinput(), yyoutput(), yyunput() = 250
     yyleng = 251
     yyless() = 251
     yylex() = 252
      yylex() 안의 사용자 코드 = 253
     yymore() = 254
     yytext = 254
      yytext 확장 = 255
     yywrap() = 257
    7장. 야크 문법 참조
     야크 문법의 구조 = 259
      기호 = 260
      정의절 = 260
      규칙절 = 261
      사용자 서브루틴절 = 261
     동작 = 261
      규칙에 내장된 동작 = 262
      내장 동작을 위한 기호 타입 = 263
      사라져가는 기능 = 264
     모호성과 충돌 = 264
      충돌의 타입 = 264
     야크에 존재하는 버그 = 266
      실제 버그 = 266
      무한 재귀 = 267
      실제 버그가 아닌 것 = 268
     끝 표시기 = 269
     에러 토큰과 에러 복구 = 269
     %ident 선언 = 270
     상속된 속성($0) = 270
      상속된 속성을 위한 기호 타입 = 272
     렉서의 피드백 = 272
     리터럴 블록 = 274
     리터럴 토큰 = 275
     야크 파서의 이식성 = 276
      야크 문법 이식 = 276
      생성된 C 파서 이식 = 277
     우선 순위, 결합 법칙 그리고 연산자 선언 = 277
      우선 순위와 결합 법칙 = 278
      연산자 선언 = 279
      우선 순위와 결합 법칙 이용한 충돌 해소 = 279
      우선 순위의 전형적인 이용 = 280
     재귀 규칙 = 280
      왼쪽과 오른쪽 재귀 = 281
     규칙 = 282
     특수 문자 = 284
     시작 선언 = 286
     기호 값 = 286
      기호 타입 선언 = 286
      계산기 예제 = 287
      명시적인 기호 타입 = 288
     토큰 = 288
      토큰 번호 = 289
      토큰 값 = 289
     %type 선언 = 291
     %union 선언 = 291
     여러 가지 다른 문법들 = 292
      결합된 파서 = 292
      여러 개의 파서 = 294
      재귀적인 파싱 = 297
      여러 개의 파서를 위한 렉서 = 298
     y.output 파일 = 299
     야크 라이브러리 = 300
      main( ) = 300
      yyerror( ) = 301
     YYABORT = 301
     YYACCEPT = 302
     YYBACKUP = 302
     yyclearin = 303
     yydebug와 YYDEBUG = 303
      YYDEBUG = 304
      yydebug = 304
     yyerrok = 304
     YYERROR = 305
     yyerror( ) = 305
     yyparse( ) = 306
     YYRECOVERING( ) = 307
    8장. 모호성과 충돌
     포인터 모델과 충돌 = 309
      충돌의 타입 = 313
      파서 상태 = 315
      y.output의 내용 = 317
      y.output 안의 충돌 재검토 = 323
     충돌의 흔한 예 = 325
      표현식 문법 = 325
      IF-THEN-ELSE = 327
      중첩 리스트 문법 = 329
     충돌 해결 방법 = 330
      IF-THEN-ELSE(이동/감소) = 331
      루프 안에 있는 루프(이동/감소) = 334
      표현식의 우선 순위(이동/감소) = 334
      제한된 미리 보기(이동/감소 혹은 감소/감소) = 335
      선택 사항의 중복(감소/감소) = 337
     요약 = 339
     연습 문제 = 340
    9장. 에러 보고와 복구
     에러 보고 = 342
      더 나은 렉스 에러 보고 = 345
     에러 복구 = 347
      야크 에러 복구 = 348
      에러 토큰의 위치 = 351
      컴파일러 에러 복구 = 352
     연습 문제 = 353
    부록 A. AT&T 렉스
     에러 메시지 = 357
    부록 B. AT&T 야크
     옵션 = 365
     에러 메시지 = 366
    부록 C. 버클리 야크
     옵션 = 379
     에러 메시지 = 380
      치명적인 에러 = 380
      일반적인 에러 = 381
      경고 = 384
      추가적인 정보를 위한 메시지 = 386
    부록 D. GNU 바이손
     차이점 = 388
    부록 E. 플렉스
     차이점 = 392
     옵션 = 393
     에러 메시지 = 395
     렉서 예제의 플렉스 버전 = 401
    부록 F. MKS 렉스와 야크
     차이점 = 406
     새로운 기능 = 406
    부록 G. 아브락사스 렉스와 야크
     차이점 = 410
     새로운 기능 = 410
    부록 H. POSIX 렉스와 야크
     옵션 = 411
     차이점 = 412
    부록 I. MGL 컴파일러 코드
     MGL 야크 소스 = 416
     MGL 렉스 소스 = 421
     지원을 위한 C 코드 = 422
    부록 J. SQL 파서 코드
     야크 파서 = 433
      상호 참조 = 450
     렉스 스캐너 = 457
     지원 코드 = 461
    용어 해설 = 465
    참고 서적 = 473
    찾아보기 = 475
    
    

    관련분야 신착자료

    Muthu, Subramanian Senthilkannan (2022)
    Musib, Somnath (2023)