게시판 인덱스

 
 FAQFAQ   검색검색   멤버리스트멤버리스트   사용자 그룹사용자 그룹   사용자 등록하기사용자 등록하기 
 개인 정보개인 정보   비공개 메시지를 확인하려면 로그인하십시오비공개 메시지를 확인하려면 로그인하십시오   로그인로그인 

5-1 과제 설명의 write에 대한 질문

 
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2017)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
문동영



가입: 2017년 9월 11일
올린 글: 2

올리기올려짐: 2017년11월14일 15:56    주제: 5-1 과제 설명의 write에 대한 질문 인용과 함께 답변

hw5.pdf의 5페이지 맨 위에 다음과 같이 적혀있습니다.

인용:
예를들어,
push 1::push 2::add::put::empty
는 K-- 프로그램 write 1+2와 같은 일을 하게 된다.


그렇다면 K-- 프로그램
write (write 1+2)+3
은 sm5로 다음과 같이 표현됩니다.
push 1::push 2::add::put::push 3::add::put::empty

그런데 두 프로그램을 돌려보면 K--는 의도대로 3\n6\n을 출력하는 반면 sm5는 두 번째 add에서 스택에 3 하나밖에 없기 때문에 오류가 발생합니다.
이는 K--의 write는 write 1+2의 결과로 3을 출력하고 3과 메모리를 반환하지만, sm5의 put은 3을 출력하고 3을 스택에서 빼버리기 때문인 것으로 보입니다.

혹시 제가 이해를 잘못한 부분이 있는 건가요? 아니면 write (write 1+2)+3과 같은 코드는 테스트하지 않는 건가요?
위로
사용자 정보 보기 비밀 메시지 보내기
하비홍



가입: 2017년 9월 7일
올린 글: 8

올리기올려짐: 2017년11월14일 19:18    주제: 인용과 함께 답변

K-- 프로그램 write (write 1+2)+3의 번역은
push 1::push 2::add::put::push 3::add::put::empty 가 아닙니다.

일반적인 경우 write와 put이 1:1로 대응되지 않기 때문입니다.

K--.pdf에서 write의 정의와 SM5에서 put의 정의를 다시 확인해보시는게 좋을 것 같습니다.
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2017) 시간대: GMT + 9 시간(한국)
페이지 11

 
건너뛰기:  
새로운 주제를 올릴 수 없습니다
답글을 올릴 수 없습니다
주제를 수정할 수 없습니다
올린 글을 삭제할 수 없습니다
투표를 할 수 없습니다


Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group
Translated by kss & drssay