2009-05-29 3 views
9

최근 브레인 벤치 시험을 보았지만 점수는 높았습니다. 그러나 두 가지 질문이있었습니다. 어쩌면 그것은 영어가 제 모국어가 아니기 때문입니다 ... 질문 중 하나는 다음과 같습니다.유형 안전이란 무엇입니까?

다음 중 유형 안전성을 설명하는 것은 무엇입니까?

  1. CLR에
  2. 단독 액세스
  3. 을 불허의 결과로서 메모리 누출 보호에 대한 참조 및 값 유형 보안을 위해 사용되는 프로그래밍 구조 그 종류 월 보장을 제공 CLR 특정 기능 자체 AppDomain 외부의 메모리에 액세스하지 않음
  4. 강력한 이름의 키를 사용하여 어셈블리와 해당 형식을 보호하기 위해 만든 메커니즘
  5. 할당 된 개체가 항상 호환되는 방식으로 액세스된다는 보증 개념

는 나는 1 또는 5 생각하지만, 어쨌든 나에게 이상한 소리 :(

당신은 어떻게 생각하세요?

+1

을 참조 형태의 안전성에 대한 자세한 내용과 ~ 바로 ~ 해달라고 ~하게 ~ 감 몇 가지 질문이 있습니다 –

+1

영어를 이해하는 당신의 문제는 아마 더 많은 일을 할 것입니다 사실 영어 전체가 학대를 받거나 너무 많이 바뀌 었습니다. 많은 단어가 적어도 5 개의 다른 의미를 가질 수 있습니다 (전문 용어는 포함하지 않음). 여러 단어로 구성된 단어는 쉽게 만들 수있는 개별 단어와 관련이 거의 없거나 전혀 없습니다. 시리즈에서 두 개의 인용문이 있습니다. 영어 1의 의미에 대해 읽었습니다. "왜 다른 이름으로 부름을 지정해야합니까?"2 : "의사 소통을하기에는 어려움이 있습니다. 많은 것들? " – Bryan

+0

그리고 그 5라고 말하고 싶습니다. – Bryan

답변

10

실제로 유형 안전은 보안과 관련이 없기 때문에 선택 5라고 생각합니다.

+0

두 사람이 싸워야합니다. :) – Alan

+0

+1 나는 당신의 오른쪽을 생각합니다. –

+2

나는 동의하지만, 다시는 가난하게 말한 것 같습니다. 나는 영어에서 "할당 된 객체가 항상 호환 가능한 방식으로 액세스됩니다"보다 유형 안전성을 설명하는 좀 더 기울어 진 방법을 제시 할 수 있는지 확신하지 못합니다. –

1

선택 5 객체는 항상 당신이 푸를 만들 때, 당신이로 취급 할 수없는 보장과 호환되는 방식으로

형 안전 거래를 액세스 할당 보장을 다루는 개념 바. 어떤 유형인지 모르는 경우 (또는 보장되지 않는 경우) 작성한 코드는 예상대로 작동하지 않을 수 있습니다.

1

유형 안전 언어는 컴파일 타임에 유형에 호환되지 않는 메소드를 호출하지 않도록합니다 (예 : int 형의 length() 비 형식 안전 언어는 런타임에 그것을 알아낼 것입니다. 선택 5.

+2

이것은 실제로 올바르지 않습니다. 유형 안전은 입력이 정적인지 동적인지 여부와 아무런 관련이 없습니다. 예를 들어 C는 유형이 안전하지 않은 구문 (형변)을 허용하고 종종 필요로하는 정적 유형 언어이며 스몰 토크는 동적 유형이 지정된 유형 안전 언어입니다. –

0

옵션 # 5입니다. 유형 안전은 확실한 것이 아니라 보증입니다. NET 코드에서 이 아닌이 유형 안전 ... 어셈블리가 안전하지 않은 코드를 사용하여 관리되지 않는 호출 (PInvoke)을 수행하는 경우에 발생할 수 있습니다. JIT가 진행되는 동안 실제로 처리되는 유형이 유형 안전한지 확인하는 프로세스가 수행됩니다. 나는이 과정에 대한 어떤 세부 사항도 알지 못한다. 그러나 지트 된 유형이 통과되면 유형 검증이 가능한 검증 된 유형이다. 잘 입력 프로그램이 잘못 갈 수 없습니다

6

유형의 안전는 [로빈 밀너] ML 프로그래밍에 대한 [1]의 유명한 슬로건에 좋은 수 있도록 설계된 언어의 기능입니다.

제대로 이해하려면 먼저 언팩을해야하지만 런타임 유형 오류 (예 : 생성자 또는 함수에 적용된 매개 변수에 호환되지 않는 유형의 값이있는 경우)로 인해 프로그램이 실패 할 수 없다는 것을 기본적으로 의미합니다.

정수, 1 차 값으로 정수 함수, 함수 추상화 및 부분 함수 적용을 허용하고 2 진 함수로 일반적인 정수 산술 연산자를 정의하는 언어를 생각해보십시오. 유형 안전성은 컴파일러가 더하기 연산자에 대한 인수가 모두 정수가 아닌 함수로 축소되는 표현식이되도록 보장하는 것입니다.프로그램의 형식이 올바른 경우 컴파일러는 해당 프로그램의 실행 가능 개체를 내보낼 수 있습니다. 그렇지 않으면 프로그래밍 오류를 표시하고 중단됩니다. 언어 간 물건과 유형의 안전을 가능하게하는 공통 유형 시스템 (CTS)를 확인, .NET 용 - 기타로

+1

나는 그 시험을 치러야한다면 5 번을 택할 것이다. –

+0

이것이 질문에 어떻게 대답하는지 알 수 없습니다. "타입 안전"을 정의하지는 않았지만 "이 희미한 circumlocations 중 어느 것이 가장 잘못". –

4

를 참조하십시오 최선의 대답이는 # 3 코드는 액세스 권한이있는 메모리 위치에만 액세스합니다. 이 토론의 경우 유형 안전은 특히 메모리 유형 안전을 나타내며보다 광범위한 측면에서 유형 안전과 혼동되어서는 안됩니다. 예를 들어, 유형 안전 코드는 다른 객체의 비공개 필드에서 값을 읽을 수 없습니다. 형식을 잘 정의되고 허용되는 방식으로 만 액세스합니다.

1

유형 안전은 보안과 관련이 없습니다. 호환 가능한 인스턴스가 올바른 변수에 할당되었는지 확인하는 것입니다.

내가 전에 M $ 시험을 수행 한 type safety in .NET