Your SlideShare is downloading. ×
Taocp1.4.2
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Taocp1.4.2

443
views

Published on

Published in: Technology, Business

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
443
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. The Art of Computer Programming 1.4.2 Coroutine 아꿈사 발표자 : 박솔이 2011.03.26
    • 서브루틴과 코루틴의 차이
    • 간단한 코루틴의 예
    • 실제 코루틴 예
    • 코루틴과 다중패스 알고리즘
  • 2. 코루틴의 의미 서브루틴과 코루틴의 차이 1 서브루틴 관리자 와 팀원 의 관계 서로 비대칭적 인 관계 코루틴 팀원 과 팀원 의 관계 서로 대칭적 인 관계
  • 3. 코루틴의 의미 서브루틴과 코루틴의 차이 2 루틴 - 서브루틴 연계 서브루틴은 일반적으로 고정된 시작 지점 에서 실행 됨 . 코루틴 - 코루틴 연계 마지막으로 중단되었던 지점 다음의 장소에서 재개 됨 .
  • 4. 코루틴의 의미 간단한 코루틴의 예 A STJ BX AX JMP A1 B STJ AX BX JMP B1 Coroutine A A1 …. … . A2 JMP B Coroutine B B1 …. … . B2 JMP A
  • 5. 코루틴의 의미 간단한 코루틴의 예 A STJ BX AX JMP A1 B STJ AX BX JMP B1 Coroutine A A1 …. … . A2 JMP B Coroutine B B1 …. … . B2 JMP A
  • 6. 코루틴의 의미 간단한 코루틴의 예 A STJ BX AX JMP A2+1 B STJ AX BX JMP B1 Coroutine A A1 …. … . A2 JMP B Coroutine B B1 …. … . B2 JMP A
  • 7. 코루틴의 의미 간단한 코루틴의 예 A STJ BX AX JMP A2+1 B STJ AX BX JMP B1 Coroutine A A1 …. … . A2 JMP B Coroutine B B1 …. … . B2 JMP A
  • 8. 코루틴의 의미 간단한 코루틴의 예 A STJ BX AX JMP A2+1 B STJ AX BX JMP B1 Coroutine A A1 …. … . A2 JMP B Coroutine B B1 …. … . B2 JMP A
  • 9. 코루틴의 의미 간단한 코루틴의 예 A STJ BX AX JMP A2+1 B STJ AX BX JMP B2+1 Coroutine A A1 …. … . A2 JMP B Coroutine B B1 …. … . B2 JMP A
  • 10. 코루틴의 의미 간단한 코루틴의 예 A STJ BX AX JMP A2+1 B STJ AX BX JMP B2+1 Coroutine A A1 …. … . A2 JMP B Coroutine B B1 …. … . B2 JMP A
  • 11. 코루틴의 예 실제 코루틴의 예 : 번역 프로그램 입력을 특정한 규칙에 따라 번역하여 출력하는 프로그램 Input : A 2B 5E 34 26 F G 0Z Y W 32 10 P Q 89 R. Output: A BB B EE EEE E 44 44 6 66 F G Z Y W 22 22 0 0 P Q 999 999 999 R. 규칙 1. 현재 문자가 숫자 0~9 중 하나이면 ( 이 숫자를 n 이라고 할때 ,) 그 다음 문자를 영문자이든 숫자이든 상관없이 (n+1) 번 반복한다 . 규칙 2. 현재 문자가 숫자가 아니면 그 문자 그대로 출력한다 . 규칙 3. 번역 결과를 세 글자 단위로 출력한다 . 규칙 4. 입력 문자가 마침표가 나올 때까지 번역한다 .
  • 12. 코루틴의 예 실제 코루틴의 예 : 번역 프로그램 Coroutine INPUT 입력문자를 읽고 규칙 1,2 에 따라서 번역하고 출력하는 코루틴 Coroutine OUTPUT 번역된 문자를 읽고 규칙 3,4 에 따라서 출력하는 코루틴 Subroutine NEXTCHAR 입력에서 공백이 아닌 문자를 찾고 그 다음 문자를 레지스터 A 에 넣는 서브루틴 Mainroutine INIT & LINKAGE 프로그램을 초기화하고 코루틴을 연계하는 주루틴
  • 13. 코루틴의 예 실제 코루틴의 예 : 번역 프로그램 01 * SUBROUTINE FOR CHARACTER INPUT 02 READER EQU 16 03 INPUT ORIG *+16 04 NEXTCHAR STJ 9F 05 JXNZ 3F 06 1H J6N 2F 07 IN INPUT(READER) 08 JBUS *(READER) 09 ENN6 16 10 2H LDX INPUT+16,6 11 INC6 1 12 3H ENTA 0 13 SLAX 1 14 9H JANZ * 15 JMP NEXTCHAR+1
  • 14. 코루틴의 예 실제 코루틴의 예 : 번역 프로그램 16 * FIRST COROUTINE 17 2H INCA 30 18 JMP OUT 19 JMP NEXTCHAR 20 DECA 30 21 JAN 2B 22 CMPA =10= 23 JGE 2B 24 STA *+1(0:2) 25 ENT5 * 26 JMP NEXTCHAR 27 JMP OUT 28 DEC5 1 29 J5NN *-2 30 JMP IN1
  • 15. 코루틴의 예 실제 코루틴의 예 : 번역 프로그램 31 * SECOND COROUTINE 32 ALF 33 OUTPUT ORIG *+16 34 PUNCH EQU 17 35 OUT1 ENT4 -16 36 ENT1 OUTPUT 37 MOVE -1,1(16) 38 1H JMP IN 39 STA OUTPUT+16,4(1:1) 40 CMPA PERIOD 41 JE 9F 42 JMP IN 43 STA OUTPUT+16,4(2:2) 44 CMPA PERIOD 45 JE 9F 46 JMP IN 47 STA OUTPUT+16,4(3:3) 48 CMPA PERIOD 49 JE 9F 50 INC4 1 51 J4N 1B 52 9H OUT OUTPUT(PUNCH) 53 JBUS *(PUNCH) 54 JNE OUT1 55 HLT 56 PERIOD ALF .
  • 16. 코루틴의 예 실제 코루틴의 예 : 번역 프로그램 57 * INITIALIZATION AND LINKAGE 58 START ENT6 0 59 ENTX 0 60 JMP OUT1 61 OUT STJ INX 62 OUTX JMP OUT1 63 IN STJ OUTX 64 INX JMP IN1 65 END START
  • 17. 코루틴의 응용 코루틴과 다중패스 알고리즘 1 IN TAPE 1 Pass A TAPE 1 TAPE 2 Pass B TAPE 2 TAPE 3 Pass C TAPE 3 OUT Pass D IN Coroutine A Coroutine B Coroutine C Coroutine D OUT 다중 패스 알고리즘 분할이 쉽다 . 한번에 한 프로그램만 메모리에 존재 단일 패스 알고리즘 입출력 시간이 빠르다 . 모든 코루틴이 메모리에 존재
  • 18. 코루틴의 응용 코루틴과 다중패스 알고리즘 2 코루틴 응용 프로그램을 다중패스 알고리즘으로 변환하는 것이 항상 가능하지는 않다 . example) 코루틴 B 가 A 로부터 입력을 얻음과 동시에 다시 중요한 정보를 A 로 보내야 하는 상황 할머니 한 분이 버스에 올랐다 . “ 꼬마야 파사데나 거리로 가는데 , 언제 내려야 하니 ?” 꼬마 . “ 저를 보고 계시다가요 . 저보다 두 정거장 전에서 내리세요 .”
  • 19. Thank you 