게시판 인덱스

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

[숙제 7] Exercise 3 관련 질문입니다.

 
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Spring 2025)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
박성희



가입: 2025년 3월 13일
올린 글: 11

올리기올려짐: 2025년5월29일 22:34    주제: [숙제 7] Exercise 3 관련 질문입니다. 인용과 함께 답변

안녕하세요 프로그래밍언어 수강 중인 박성희입니다.

[OP]의 [Eq]에서 Loc를 받는 경우 좌측과 우측에 대한 Loc 내부의 세부타입 까지 같아야 하는 걸로 이해했습니다.

Γ e1 : τ and Γ e2 : τ (τ=i,b,s,or l)
--------------------------------------
Γ e1=e2 : b

그렇다면 저장해있는 타입이 다른 것 (예를 들자면 malloc 1과 malloc "PL2025")를 비교하려면 타입 오류?를 일으켜야 할 것 같은데요
그런데 현재 구현 상에는 exp1 (Loc int), exp2 (Loc int)로써 op2fn에 결과값을 끌고 와서 이항연산을 마무리하는 것으로 보입니다만, 여기서 Loc가 저장한 타입을 비교할 수가 있나요?

M언어의 구현 상 Loc는 그 내용이 주소값이 int밖에 없어서 추가적인 정보가 없는 한 해당하는 함수 내부에서는 주소값만 비교할 수 있을 뿐 그 안에 덩어리의 타입이 뭔지 파악할 수는 없을 것 같다는 게 제 생각이긴 합니다.
(op2fn에 메모리에 인자로 받지 않은 데다가 만약 받는 다고 해도 거기 안에서 타입체킹을 해야 한다는 소리인데 그러면 문제가 너무 복잡해지지 않을까 하는 생각도 있습니다.)

물론 Exercise 4와 같은 경우 타입 체킹을 할 수 있으니 문제가 없을 것 같습니다.

조금 고민을 해 보니 해당하는 문제가 Dynamic Semantics를 따라가는 것이니까 구체적인 타입이 정확하게 정의가 되지는 않은 상황으로 해당하는 상황에서 eq가 정의하는 8가지 규칙만 충실히 구현을 하면 된다라고 결론을 냈었는데 검토 중

인용:
EQUAL Semantics에 대해 : 3장 "Static Semantics: Type System"의 스펙을 따라 다음과 같이 정합니다.
서로 다른 타입을 비교하거나, Pair끼리의 비교, Closure끼리의 비교는 타입 에러입니다.

에 대한 문구 때문에 혹시나 해서 질문 드렸습니다.

숙제7 관련해서 질문을 너무 많이 드리는 것 같은 데
바쁘신 와중에도 항상 신경 써서 답변해 주셔서 감사합니다..
위로
사용자 정보 보기 비밀 메시지 보내기
오규혁
Site Admin


가입: 2022년 3월 15일
올린 글: 88

올리기올려짐: 2025년5월30일 9:26    주제: 인용과 함께 답변

안녕하세요,
문제 3에서 세부 타입까지 비교하여 타입이 맞지 않아 타입 에러를 내야하는 것 아닌가 하는 질문으로 보이는데요.
인터프리터에서 loc간의 비교는 loc의 세부 타입을 생각하지 않으셔도 됩니다.
loc의 비교연산에서는 loc의 주소값을 비교하면 됩니다.

조교드림
_________________
TA 오규혁
e-mail: ghoh@ropas.snu.ac.kr
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Spring 2025) 시간대: GMT + 9 시간(한국)
페이지 11

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


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