::: 강좌/소스/문서 :::

강좌/소스/문서 성격에 맞지 않는 광고,비방,질문의 글은 즉시 삭제하며
내용을 복사하여 사용할 경우 반드시 이곳(http://www.howto.pe.kr)을 출처로 명시하여 주세요


Category

  김영대(2003-03-13 21:41:27, Hit : 10276, Vote : 1613
 calc.zip (3.6 KB), Download : 1057
 [소스] Recursive-Descent 파싱을 이용한 계산기 구현

// 제   목: Recursive-Descent 파싱을 이용한 계산기 구현
// 작성자: 김영대( http://www.howto.pe.kr )

프로그램: Top-down parsing by Recursive-Descent와 간단한 어셈블리 인터프리터 예제

      설명: Top down parsing중 하나인 recursive descent parsing(순환 하강형 분석)방법을
            사용한 수식 구문 분석 예제로서 정수, +, -, *, /, 그리고 ( ... ) 로 구성된 수식을
            키보드로 직접 읽어들여 파싱한 후 이를 내부 어셈블리로 변환하여 출력한 후 곧바로
            인터프리트하여 수식의 결과를 화면으로 출력한다

      문법:
            expression = term { ( "+" | "-" ) term }
                      term = factor { ( "*" | "/" ) factor }
                     factor = number | "(" expression ")"

 어셈블리:
          PUSH 정수 - 정수를 stack에 push 한다
           ADD       - stack의 top에서 두개의 정수를 pop하여 덧셈한 후 다시 push 한다
           SUB       - stack의 top에서 두개의 정수를 pop하여 뺄셈한 후 다시 push 한다
           MUL       - stack의 top에서 두개의 정수를 pop하여 곱셈한 후 다시 push 한다
           DIV       - stack의 top에서 두개의 정수를 pop하여 정수 나눗셈한 후 다시 push 한다

    컴파일:
            $ gcc -v
            Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs
            gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)

    작성자:
           김영대 ( http://www.howto.pe.kr )





13   [컴퓨터 전공] [소스] 이진 트리(Binary Tree)  김영대 2004/06/18 9784 1823
12   [컴퓨터 전공] [소스] MASM 간단한 계산기 어셈블리 프로그램 소스  김영대 2003/07/11 9635 1505
11   [컴퓨터 전공] [소스] Top-down parsing by Recursive-Descent 을 이용한 계산기 MASM 어셈블리 생성기  김영대 2003/07/11 7481 1603
10   [컴퓨터 전공] [소스] Huffman Code Encoder  김영대 2003/03/18 7818 1503
9   [컴퓨터 전공] [소스] Windows RLE(BMP) Encoder  김영대 2003/03/18 7511 1326
8   [컴퓨터 전공] [소스] CompuServe RLE Encoder  김영대 2003/03/18 6172 1438
7   [컴퓨터 전공] [소스] 계산기를 위한 Lex & Yacc  김영대 2003/03/15 9806 1599
6   [컴퓨터 전공] [소스] ANSI-C 파서를 위한 Lex & Yacc  김영대 2003/03/13 8644 1931
5   [컴퓨터 전공] [소스] PL/0 Compiler 구현  김영대 2003/03/13 7436 1693
  [컴퓨터 전공] [소스] Recursive-Descent 파싱을 이용한 계산기 구현  김영대 2003/03/13 10276 1613
3   [컴퓨터 전공] [소스] POSIX thread를 사용한 행렬계산  김영대 2003/03/13 7356 1510
2   [컴퓨터 전공] [소스] 0/1 배낭 문제(Knapsack Problem)  김영대 2003/03/13 9027 1601
1   [컴퓨터 전공] [소스] SIC/XE 어셈블러 구현  김영대 2003/03/13 18545 1858

1
 

Copyright 1999-2017 Zeroboard / skin by zero