|
|
이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
이진우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) 규칙에서 새로운 원소를 생성했을 뿐입니다.
감사합니다. |
|
위로 |
|
|
|
|
새로운 주제를 올릴 수 없습니다 답글을 올릴 수 없습니다 주제를 수정할 수 없습니다 올린 글을 삭제할 수 없습니다 투표를 할 수 없습니다
|
Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group Translated by kss & drssay
|