이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
이주상13
가입: 2018년 9월 6일 올린 글: 18
|
올려짐: 2018년11월25일 22:28 주제: 6-4 if문 타입 질문 |
|
|
타입체크 시 M.IF(e1, e2, e3) 형식의 exp에서 질문이 있습니다.
1. e2와 e3의 타입이 다른 경우 무조건 타입 에러를 띄우면 되나요?
2. 만약 e2, e3 모두 타입 에러인 경우 둘 중 어느것의 타입 에러를 띄우면 될까요?
감사합니다. |
|
위로 |
|
|
로파스 Site Admin
가입: 2012년 9월 9일 올린 글: 280
|
올려짐: 2018년11월26일 10:32 주제: |
|
|
1. e2와 e3의 타입을 유추하여 다르다는 것이 확인되면 타입에러를 띄우시면 됩니다.
2. e2, e3의 타입에러를 굳이 구분하실 필요 없습니다. 타입체크결과가 타입에러라고 뜨기만 하면 됩니다.
-조교 드림. |
|
위로 |
|
|
송호준
가입: 2018년 9월 21일 올린 글: 10
|
올려짐: 2018년11월27일 3:02 주제: e2, e3의 타입 |
|
|
e2, e3의 타입이 달라도 프로그램이 성립하는 경우가 있지 않나요?
예를들면 if true then write true else write 2 같은 프로그램은 e2, e3는 각각 bool, int지만 맞는 프로그램이지 않나요? |
|
위로 |
|
|
로파스 Site Admin
가입: 2012년 9월 9일 올린 글: 280
|
올려짐: 2018년11월27일 16:58 주제: |
|
|
그렇기때문에 숙제 6-4에서의 타입시스템이 안전하지만 완전하지 않은 것입니다.
제대로 실행되는 프로그램중에서도 타입에러라고 걸러내는 경우가 있기 때문이죠.
말씀하신대로 if true then write true else write 2 같은 프로그램은
M언어의 시맨틱스상 문제없는 프로그램입니다만, 그래도 정적 타입시스템의 정의에 따르면
올바르지 못한 타입을 가진 프로그램이므로 걸러지게 됩니다.
-조교 드림. |
|
위로 |
|
|
|