 |
|
| 이전 주제 보기 :: 다음 주제 보기 |
| 글쓴이 |
메시지 |
minjoonchoi08
가입: 2024년 3월 16일 올린 글: 12
|
올려짐: 2024년5월28일 1:03 주제: [HW7 2번] test7 파싱이 잘못되고 있는 것 같습니다. |
|
|
examples/test7.xexp 파일이 의도한대로 파싱이 되지 않는 것으로 보입니다.
해당 test 케이스만 계속 TypeError가 떠서 전부 출력을 찍어보고 디버깅을 해봤는데요,
아래와 같이 발견했습니다.
test7 파일을 보면 가장 바깥이 handle xexp인데요,
그러면 로직을 수행하면서 최초로 xcps' 가 호출될 때 인자로는 Handle exp이 들어옵니다.
Handle exp이 가지고 있는 e1, x, e2를 모두 찍어보았습니다. 그랬더니 "Xexp.print e1" 의 결과로 다음과 같이 출력되었습니다.
```
(fn x_3 => (fn x_4 => (ifp x_4 then
(x_3) (1)
else
x_3) (2)) (5)) (fn x_2 => raise (x_2))
```
이 중에, "... else x_3) (2)" 라고 출력된 부분에서 뭔가 잘못되었음을 느꼈습니다.
실제로 테스트에서는 "else, error(2)" 를 의도한 것이기 때문에 "... else (x_3) (2)" 가 되어야 하지 않을까요...?
제공된 test7.xexp에서 (error 1), (error 2) 와 같이 error 함수를 call 하는 부분을 괄호로 감싸주면 제 프로그램이 정상적으로 작동하고 있습니다.
test7.xexp 파싱에 실제로 문제가 있는 것인지 확인 부탁드리겠습니다.
감사합니다.
[/code] |
|
| 위로 |
|
 |
이준수
가입: 2024년 3월 7일 올린 글: 3
|
|
| 위로 |
|
 |
minjoonchoi08
가입: 2024년 3월 16일 올린 글: 12
|
올려짐: 2024년5월28일 1:25 주제: |
|
|
네, 같은 질문인 것 같긴 한데요,
그래도 제가 조교님 답변을 잘 이해하지 못한 것 같습니다.
(조교님께 추가로 문의드리자면)
test7에서 파싱이 잘못되고 있는 것은 사실이고 이것이 로직 수행에 영향까지 주고 있는데,
이런 상황에서도 TypeError가 발생하지 않도록 해야 감점을 당하지 않는다는 뜻일까요?
아니면 test7 같은 경우에는 명백히 파싱이 잘못된 것이므로 "(error 1)" 처럼 괄호를 사용해서 모호하지 않게 한 상태로 결과가 제대로 나오면 되는걸까요?
위에 학우 분께서 걸어주신 링크에서, "이미 파싱된 문법 나무를 받아와 작성하시기 때문에 논리 상 문제는 없고" 라고 조교님께서 말씀하신 바 있는데요,
이미 파싱된 문법 나무라 할지라도 해당 경우에는 문법 나무가 잘못되어 있는 것이라, 논리상 문제가 생길 수 밖에 없다고 생각합니다. 그래서 모호한 경우라고 생각되어서 재차 문의를 드려봅니다. |
|
| 위로 |
|
 |
이재호 Site Admin
가입: 2022년 3월 6일 올린 글: 209
|
올려짐: 2024년5월28일 1:55 주제: |
|
|
test7 같은 경우 기존에 `(fn x => raise x)`을 그대로 실행하면 에러가 안 나오지 않나요? 정상적으로 구현하셨다면, test7.xexp를 수정하지 않고 그대로 실행시, 문제 없이 1을 결과로 내어야 합니다. 즉 현재 test7이 파싱이 된 문법 나무 그 상태 그대로도, 숙제 문제에 정의된 의미구조 상 1이 나와야 하는 프로그램입니다. "문법 나무"가 잘못되어 있다는 말씀은 아닙니다.
만약 `(fn x => raise x)` 대신 `(fn x => x)`가 예제 코드였고 error 적용에 괄호가 안 쌓여져 있었다면 말씀주신대로 문법 나무가 잘못되어 있는 것이겠지만, 지금 상태에서는 문법 나무가 잘못되어 있는 것은 아닙니다. 마치, OCaml에서 match를 쓸 때 괄호를 적절히 안 쓰거나, C나 Python 에서 & 연산자 사용 후 괄호를 적절히 치지 않으면 코드가 우리가 원하는대로 작동하지 않겠지만, 컴파일러에 버그가 있다고 말하지 않는 것과 동일한 맥락입니다.
"해당 test 케이스만 계속 TypeError가 떠서" 라고 하셨는데요, 현재 구현하신 xcps'에 문제가 있는 것으로 보입니다.
감사합니다.
조교 드림
TA 이재호
e-mail: jhlee@ropas.snu.ac.kr |
|
| 위로 |
|
 |
|
|
새로운 주제를 올릴 수 없습니다 답글을 올릴 수 없습니다 주제를 수정할 수 없습니다 올린 글을 삭제할 수 없습니다 투표를 할 수 없습니다
|
Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group Translated by kss & drssay
|