게시판 인덱스

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

[챌린지] challenge 2 / 3

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



가입: 2023년 3월 8일
올린 글: 10

올리기올려짐: 2023년5월5일 11:24    주제: [챌린지] challenge 2 / 3 인용과 함께 답변

안녕하세요, 챌린지 2/3번 문제에 대해 질문이 있습니다.

Challenge 2.
끝재귀호출의 정의에 대해 질문드립니다.

1. f(x) = let y in (...; f(x-1)) 와 같은 구문을 실행하게 되면 K-- 프로그램 상으로는 끝재귀이지만, K--의 let을 SM5 명령으로 번역하는 과정에서 함수 호출 뒤에 다른 instruction이 추가되므로 SM5 수준에서는 끝재귀가 아닐 것입니다.
'끝재귀호출'임을 판별하는 기준이 K--의 CALLV/CALLR인지, SM5의 CALL 명령인지 궁금합니다. 즉, SM5의 끝재귀에 대해서만 처리하면 되는지, 아니면 K--의 끝재귀에 대해서도 처리해줘야 하는지 궁금합니다.

2. f(x) = (....; g(x))와 같이 함수 끝에 다른 함수를 호출하는 것도 끝재귀의 일종으로 처리할 수 있나요/처리해야 하나요?

Challenge 3.
문제에 명시된 'Let Φ be a finite set of inductive rules' 문구에 대해 질문드립니다.
강의 슬라이드(2-1)에 의하면, Φ는 '유한한 inductive rule로부터 얻어지는 모든 가능한 생성규칙의 집합'이 아닌가요?
이를테면, 자연수를 inductive하게 정의하는 Φ는
Φ = {({}, 0), ({n}, n+1)} 의 유한집합 형태가 아니라
Φ = {({}, 0), ({0}, 1), ({1}, 2), ({2}, 3), ...} 의 무한집합 형태이어야 하지 않나 싶어 질문드립니다.

감사합니다.
위로
사용자 정보 보기 비밀 메시지 보내기
김도형



가입: 2022년 3월 8일
올린 글: 103

올리기올려짐: 2023년5월8일 11:28    주제: 인용과 함께 답변

안녕하세요.

2-1, 2. 해당 언어가 어떤 환경에서 실행되고, 끝재귀호출 처리가 어째서 단순한 재귀호출보다 더 효율적인지를 생각해보시면 도움이 될 겁니다.

3. 예시를 보자면, 후자는 불필요합니다.

자연수 집합은 전자의 생성규칙에서 재귀를 통해 임의의 자연수 n을 생성해낼 수 있으며, 이는 ({0}, 1)이라는 새로운 규칙을 만든 것이 아니라 ({n}, n+1) 규칙에서 새로운 원소를 생성했을 뿐입니다.

감사합니다.
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Spring 2023) 시간대: GMT + 9 시간(한국)
페이지 11

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


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