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

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


Category

  김영대(2003-03-13 21:50:09, Hit : 7435, Vote : 1693
 http://www.howto.pe.kr
 pl0.zip (10.1 KB), Download : 629
 [소스] PL/0 Compiler 구현

// 제   목: PL/0 Compiler 구현
// 작성자: 김영대( http://www.howto.pe.kr )

1.문제설명
   original PL/0 에 function, array, repeat-until, write, if-then-else 를
   파싱하는 기능을 추가하고 인터프리트 한다

2.개발환경
  컴파일/실행 환경: Linux (RedHat 6.1)
  구현언어: C 언어
  구현자: 김영대(cozy@howto.pe.kr, http://www.howto.pe.kr )

3.구현범위
  reserved words:
     begin, call, const, do, end, if, odd, procedure, then, var, while,
     write, repeat, until (array, function 는 구현하지 못함)

  instruction code:
     lit, opr, lod, sto, cal, inc, jmp, jpc, wrt, stp, lda, lid, sid

  special symbols:
     “+”, “-”, “*”, “/”, “(“, “)”, “=“, “,”, “.”, “;”, “&”, “<“, “>”, “<=“, “>=“, “<>”

  추가한 기능:
     1. write()
     2. repeat-until
     3. procedure 호출시 파라미터를 call-by-value, call-by-addrsss(&) 방법으로 호출가능
        call-by-address 의 formal parameter 는 “var” 로 선언해야 하며 actual parameter 는
        C언어와 같이 “&” 기호를 사용한다
            
            Example
                선언시: procedure p(a, var b)
                호출시: call p(x,&y);

4.결과물 종류 및 실행방법
  1. 결과물 종류
      assemble list - *.asm
      symbol/literal table - *.sym
  2. 실행방법
     > pl0 {-c|-i} source_file

     ; 컴파일 옵션
       -c : 컴파일 + assemble list 파일 생성 + 심볼 테이블 파일 생성
       -i : 컴파일 + assemble list 파일 생성 + 심볼 테이블 파일 생성 + interpret
     ; source_file은  full name 이며  source_file의 symbol/literal table 파일은
       source_file.sym, assemble list 파일은 source_file.asm 로 출력된다





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
  [컴퓨터 전공] [소스] PL/0 Compiler 구현  김영대 2003/03/13 7435 1693
4   [컴퓨터 전공] [소스] 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