1
아래의 기능과 동일한 CFG를 만들려고합니다. 나는 B가 루프 카운터이므로 스택에 푸시 된 일련의 요소 일 수 있으므로 루프가 완료 될 때마다 B의 요소가 팝되고 B가 엡실론을 종료합니다. while 루프의 상단 부분에서 어떻게 추가를 처리합니까?CFG를 사용하여 곱하기
PROCEDURE multiply a, b;
VAR a, b, z;
BEGIN
z := 0;
WHILE b > 0 DO BEGIN
z := a + z;
b := b - 1;
END
RETURN z;
END;
오, 그래서 보존해야 할 스택 프레임이 없거나 PDA 같은 것이 있습니까? – CodeMonkey
@CodeMonkey : PDA의 스택은 꽤 제한되어 있습니다. 당신은 오직 상단에 접근 할 수 있습니다. 일단 당신이 그것을 팝업, 그것은 사라 졌어요. 따라서 스택 프레임 개념은 이러한 맥락에서 이해가되지 않습니다. – rici