04_20101105_계산기
- 최초 등록일
- 2012.10.16
- 최종 저작일
- 2010.11
- 9페이지/ 한컴오피스
- 가격 1,000원
소개글
컴파일러
목차
1. 문제정의
2. 문제해결
3. 결과창
4. 소스코드
ㄱ5. 결론
본문내용
1. 문제정의
※ Lex를 사용하여 계산기를 만든다.
▷ 기본 제공되는 소스코드와 강의노트를 참고한다.
▷ 기본 제공되는 소스코드 및 추가하는 기능
- 기본 소스코드 : +만 되는 계산기 제공
- 추가 기능1. : 사칙연산[ +, -, *, /, (, ) ]
- 추가 기능2. : unary - (단항연산자 -)
* \n \t \ "
- 추가기능2 : 변수(a~z)
▷ 입력값 : print 수식
▷ 출력값 : 수식의 결과
▷ 입출력 sample :
- 입력 : print -4*(1+2)
- 출력 : 12
※ lex 프로그램을 설치하고 프로그램을 실행시킨다.
▷ GCC 컴파일러를 사용한다 -> mingW 사용
▷ flex 컴파일러를 이용하여 프로그램을 실행시킨다.
2. 문제해결
※ lex 프로그램으로 프로그램 실행시키기
▷ lex file 컴파일
◆ flex ---.l
◆ 결과파일 : lex.yy.c
▷ c file 컴파일
◆ gcc lex.yy.c calcul.c -lfl -o calc.out
◆ 파일이 여러 개인 경우 여러 개를 모두 링크 걸어서 해주어야 함.
◆ 목적파일을 여러 개 만들어도 되지만 바로 소스코드를 입력하는 경우 컴파일러가 알아서 목적파일을 만듦. 이 경우 링크하는 파일이 header file이 아닌 source 파일인 것에 주의 요망
※ Lex를 사용하여 계산기를 만든다.
▷ Grammer
◆ E3 :
◆ E -> E + T | Tn | E - T
◆ T -> T * F | T / F | F
◆ Tn -> Tn * F | Fn
◆ F -> (E) | NUM
◆ Fn -> (E) | NUM | -NUM | -(E)
◆ NUM -> digit+
참고 자료
없음