게시판 인덱스

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

Project 3 질문

 
글 쓰기   답변 달기     게시판 인덱스 -> 4190.210 Principles of Programming (Fall 2014)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
황재동



가입: 2014년 9월 2일
올린 글: 80

올리기올려짐: 2014년11월30일 18:36    주제: Project 3 질문 인용과 함께 답변

exp는 출력하는 것에 대한 정의가 없는데

코드:
type exp =
| Num of int
| Add of exp * exp
| Minus of exp
| Read
| If of exp * exp * exp
| Repeat of exp * exp


항상 그 결과값을 출력하는 것인가요?
아니면 출력을 하지 않은 채 가지고만 있는 것인가요?

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



가입: 2014년 9월 11일
올린 글: 37

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

관련은 없지만 질문을 추가합니다.

1)명령문 프로그램의 경우 say문을 통해 리턴을 하게 되는데

정상적인 프로그램이라면 반드시 하나의 say문을 가져야 할텐데 그러면

만약 read를 transform 할 경우
어떤 변수 x에 read한 값을 넣는
x has read 한 후에 say x 을 넣어줘야 되죠?

2) 프로젝트 문서에
인용:
goto l on x는 x가 0일 경우 일없이 '마친다'
고 하였는데
여기서 '마친다'는 프로그램의 종료를 의미하나요? 아니면
뒤에 sequence로 연결되어 남은 커맨드가 있을 때
아무런 일을 하지 않고 넘어간다고 해석해도 되나요?

3) t.ml에 exception은 마음대로 추가하고 raise해도 되나요?

4) check_exp 에서

repeat (if (add (repeat 2 read) 1) then 1 else -1) 1

의 경우 true인가요? false인가요?
사용자의 입력에 따라 if문의 결과가 달라지게 되는데 그럴 경우 false를 출력해야하나요?
그렇다면 모든 입력 (-100<= n <=100)에 대해서 다 check 해봐야하는건가요?

5) tag 내에 tag를 사용할 수 있나요?
l1 : l2 : 5+3

이런 식으로요

6) 올해는 정규식과 cmd의 인터프리터가 제공이 안되나요?
https://ropas.snu.ac.kr/phpbb/viewtopic.php?t=3541
2012년에는 제공되었던 것 같은데 과제를 하다보니 스펙이 모호한 면이 있는 것 같아서요. 인터프리터가 있으면 좀 더 확인하면서 하기 좋을 것 같아서요..


정지홍 가 2014년12월1일 1:38에 수정함, 총 8 번 수정됨
위로
사용자 정보 보기 비밀 메시지 보내기
황재동



가입: 2014년 9월 2일
올린 글: 80

올리기올려짐: 2014년11월30일 19:40    주제: 인용과 함께 답변

추가로 질문 한가지를 더 올립니다.

check_exp와 check_cmd를 통과하지 못하였을 경우

exception을 마음대로 띄우나요?

예를들어

exception CHECK_FAIL

raise CHECK_FAIL 이런식으로요?
위로
사용자 정보 보기 비밀 메시지 보내기
김윤승



가입: 2014년 9월 1일
올린 글: 452
위치: 302동 312-2호

올리기올려짐: 2014년12월1일 14:04    주제: 인용과 함께 답변

우선 처음 질문에 대해서,

exp를 실제 실행할 일이 없는데 출력을 하는 지 우리가 고려할 필요가 있을까요?

또한 정지홍님의 질문에서는

1. 그렇습니다.

2. 자기만 마치는 것입니다. sequence는 첫 번째 실행문을 실행하고 그 실행문이 '마치면' 다음 실행문을 실행하는 것이기 때문에, 남은 커맨드가 있다면 계속 실행해야 합니다. 즉, if와 비슷한 conditional jump로 생각하시면 됩니다.

3. 정상적인 상황인데 exception으로 들어가지만 않으면 되는 걸로 하겠습니다.

4. 사용자의 입력에 따라 정상적인 실행이 안 될 경우가 있으면 false, 어떤 입력이라도 정상적으로만 실행되면 true입니다.

하지만 이를 완전히 정확히 아는 것은 거의 불가능하므로, 적절한 선까지 하시면 됩니다. 예를 들면 (read + 100)은 언제나 음수가 아니므로 repeat이 정상적으로 실행되죠.

5. 가능합니다.

6. 그렇군요.. 조교들끼리 상의 후 알려드리겠습니다.

그리고 다시 황재동님의 질문..

check_exp는 exp를 받아서 T,F를 리턴하고, check_cmd도 마찬가지입니다.
transform은 check_exp와 관계없이 변환만 하는 함수입니다.
세 함수는 서로 다르고 언제 불릴 지 모릅니다. transform은 올바른 식이 들어왔을 때 올바른 결과를 내놓도록만 작성하면 됩니다.
exception을 띄울 상황은 없을 것 같습니다.
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
글 쓰기   답변 달기     게시판 인덱스 -> 4190.210 Principles of Programming (Fall 2014) 시간대: GMT + 9 시간(한국)
페이지 11

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


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