게시판 인덱스

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

타입을 만드는 법?

 
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.210 Principles of Programming (Fall 2008)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
이충민
손님





올리기올려짐: 2008년9월16일 21:58    주제: 타입을 만드는 법? 인용과 함께 답변

define-structure는 안 된다고 하셨는데. pair, list나 lambda를 이용해서 “척”은 할 수 있겠지만 악의적인 인풋이 이러한 “척”을 속일 수도 있겠지요. (예: type tag를 도용, leaf나 node 등의 procedure를 쓰지 않고 invalid한 tree를 생성)

사용자 정의 타입은 어떻게 만드나요?
위로
최원태



가입: 2006년 9월 16일
올린 글: 369

올리기올려짐: 2008년9월17일 0:13    주제: 인용과 함께 답변

1.
type이 왜 필요한지 약간 오해하고 있으신듯 합니다.

"type이 잘못된 값으로부터 프로그램을 지킨다"고 말 할 때는,
프로그래머가 실수를 해서 값이 잘 못 흘러다닐 때 그것을 막아준다는 것이지
외부의 침입자가 때려넣는 이상한 값으로 부터 지킨다는 의미가 아닙니다.
(물론, 값의 흐름이 정확하게 통제되다보면 "결과적으로" 보안도 좋아집니다)

후자의 관점에서 보자면 tag를 이용한 type시스템은 그다지 견고하지 않습니다.
그러나 전자의 관점에서 본다면, 훌륭하게 자기역할을 할 수 있습니다.

2.
scheme에 본질적으로 non-premitive type이란 존재하지 않다고 알고있습니다.
값이 있을 뿐이고, 값이 해석되기에 따라 타입이 되고 의미가 되는 것이죠.
define-structure 등이 마치 타입을 만들 수 있는듯 보이지만,
실상은 cons와 car, cdr를 이용한 매크로에 불과합니다.
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기 글 올린이의 웹사이트 방문
강지훈



가입: 2008년 9월 2일
올린 글: 291
위치: 302동 312-2호

올리기올려짐: 2008년9월17일 21:36    주제: 반론! 인용과 함께 답변

최원태 씀:
1.
"type이 잘못된 값으로부터 프로그램을 지킨다"고 말 할 때는,
프로그래머가 실수를 해서 값이 잘 못 흘러다닐 때 그것을 막아준다는 것이지
외부의 침입자가 때려넣는 이상한 값으로 부터 지킨다는 의미가 아닙니다.
(물론, 값의 흐름이 정확하게 통제되다보면 "결과적으로" 보안도 좋아집니다)


이 말씀에 동의하지 않습니다.
예를 들어.. 삶과 죽음에 대한 라이브러리가 있습니다. 죽음에 대한 새로운 철학적 고찰을 다음과 같이 만들어낼 수 있습니다.

(define (die-thesis name) (cons 'die name))

그리고 도박에 대한 라이브러리가 있습니다. 주사위를 만들어내는 함수도 있어요.
(define (make-die num-faces) (cons 'die num-faces))

그리고 확률적 죽음에 관한 새로운 논문을 씁니다.. .. 그리고 타입시스템이 충돌합니다.


이러한 논의에서,
프로그래머의 실수와 악의적인 타입 공격의 구분이 무의미하다고 전 생각합니다.
_________________
강지훈
프로그래밍의 원리 조교

Jeehoon Kang
TA, Principles of Programming
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.210 Principles of Programming (Fall 2008) 시간대: GMT + 9 시간(한국)
페이지 11

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


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