컴파일러 제 4장 연습 문제
- 최초 등록일
- 2008.03.30
- 최종 저작일
- 2008.03
- 11페이지/ 한컴오피스
- 가격 1,000원
소개글
컴파일러 입문 (정익사) 4장 전체 연습 문제 입니다.
4.11은 문제풀이가 없사오니 이용에 참고 부탁드립니다.
목차
4.1 다음 괄호에 알맞은 말을 쓰시오.
4.2 다음을 간략히 설명하시오.
4.3 다음과 같은 조건을 만족하는 정수 상수의 형태를 상태 전이도로 고안하시오. 그리고 정규 표현을 구하여 확인하시오.
4.4 다음과 같은 조건을 만족하는 실수를 상태 전이도로 고안하시오. 그리고 정규 표현을 구하여 확인하시오.
4.5 고정 소수점 형태의 실수가 0. 또는 .0 또는 0.0 등이 가능한 구조(단 . 소수점(decimal point)만은 인식할 수 없음)일 때, 고정 소수점 실수를 인식하는
① 상태 전이도를 설계하고
② 정규 표현을 구하여 확인하시오
③ 또한 렉스의 정규 표현으로 기술하시오.
4.6 파스칼에서 스트링 상수(string constant)는 일련의 문자를 `(single quote)와 ` 사이에 나타난다. 예를 들어, `this is a string` 그리고 `I don``t know` 등이다. 특히 `를 스트링 상수 안에 넣기 위해서는 연속해서 두 개를 사용한다. 이와 같은 형태의 스트링을 인식하기 위한 다음 질문에 답하시오
등..
본문내용
4.1 다음 괄호에 알맞은 말을 쓰시오.
① 어휘분석기를 간단히 ( Scanner ) 또는 Lexer라 부른다.
② 특수 형태의 토큰에는 keyword, operator symbol, 그리고 ( 구분자<delimiter> )가 있다.
③ 일반 형태(general form)의 토큰은 프로그래머가 프로그램을 작성할 때 사용하는 명칭과 상수들이며 그 구조는 ( 정규표현 )에 의하여 결정된다.
④ 토큰들은 효율적인 처리를 위해서 고유의 내부 번호를 갖는데 이것을 ( 토큰번호<token number> )라 부른다.
⑤ 스캐너가 파서에게 넘겨주는 토큰의 정보는 일반적으로 토큰 번호와 ( 토큰 값<token value> )이다.
⑥ 어휘 분석 과정에서 심벌 테이블을 운영하는 경우에, 명칭에 대한 토큰 값으로 스트링 값 대신에 그에 해당하는 심벌 테이블의 ( 인덱스<index> )를 사용하여 구문 분석기에 전달할 수 있다.
⑦ 구현상으로 스캐너는 파서가 토큰이 필요할 때 호출하는 ( 서브루틴<subroutine> )이다.
⑧ 컴파일러를 위한 어휘 분석기는 주어진 입력을 ( 선형 시간 ) 내에 처리해야 하기 때문에 반드시 결정적 유한 오토마타로 구현해야 한다.
⑨ 문법 표현으로부터 PGS가 terminal 심벌을 가려내 주고 그 내부 번호를 지정해 준다. 이 내부 번호가 토큰 번호이며 ( 파싱 테이블 )과 밀접한 관계를 갖고 있다.
⑩ 어휘 분석기를 작성하는 방법은 크게 두 가지로 나눌 수 있다. 범용 프로그래밍 언어를 사용하여 작성하거나 또는 ( 어휘 분석기 생성기 )로부터 얻을 수 있다.
⑪ 읽어드린 문자가 더 이상 그 토큰에 속하지 않는 경우 다음번의 토큰을 인식할 때 다시 처리되기 위하여 입력으로 되돌려지는 것을 ( unput(c) )라 말한다.
⑫ 렉스의 입력은 세 부분으로 구성되는데 각 부분을 구분하는 문자는 ( %% )이다.
⑬ 렉스의 출력 파일 이름은 ( lex.yy.c )이며, C 컴파일러를 불러 컴파일 해야 한다.
⑭ 렉스의 정규 표현에서 문자들의 종류를 정의하는데 [ 와 ]를 사용한다. [ ] 내에 사용된 대부분의 연산자 문자는 의미를 상실하며 단지 ( - <hyphen> ), ^, \ 만이 특수한 의미를 가진다.
⑮ 렉스 입력에서, 파일의 끝(end of file)을 만났을 때 부르는 함수는 ( yywrap() )이며 일반적으로 이는 사용자가 제공해야 한다.
참고 자료
컴파일러 입문