문제

나는 최근에 Brainbench 시험을 보았고, 높은 점수를 받았지만, 나에게 어려운 몇 가지 질문이있었습니다. 어쩌면 영어가 내 모국어가 아니기 때문일 수도 있습니다 ... 질문 중 하나는 다음과 같습니다.

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

  1. CLR의 참조 및 가치 유형의 보안을 보장하는 데 사용되는 프로그래밍 구조
  2. 관리되지 않는 액세스를 허용하지 않아 메모리 누출로부터 보호
  3. 유형이 자신의 AppDomain 외부에서 메모리에 액세스하지 못할 수 있다는 보증을 제공하는 CLR 특정 기능
  4. 강력한 이름 키를 사용하여 어셈블리와 그 유형을 보호하기 위해 생성 된 메커니즘
  5. 할당 된 객체가 항상 호환 가능한 방식으로 액세스된다는 보증을 다루는 개념

나는 그것이 1 또는 5라고 생각하지만, 그들은 어쨌든 나에게 이상하게 들린다 :(

어떻게 생각해?

도움이 되었습니까?

해결책

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

다른 팁

타입 안전 ML 프로그래밍에 관한 [Robin Milner] [1]의 유명한 슬로건을 잘 만들기 위해 설계된 언어의 특징입니다. 적절한 프로그램은 잘못 될 수 없습니다.

슬로건은 올바르게 이해하기 전에 포장을 풀기 전에 약간의 포장이 필요하지만, 기본적으로 런타임 유형 오류로 인해 프로그램이 실패 할 수 없음을 의미합니다.

정수, 정수 함수를 일류 값, 함수 추상화 및 부분 함수 응용 프로그램으로 허용하고 일반적인 정수 산술 연산자를 이진 함수로 정의하는 언어를 고려하십시오. 유형 안전의 특성은 컴파일러가 첨가 연산자에 대한 인수가 모두 함수가 아닌 정수로 감소하는 표현이되도록하는 것입니다. 프로그램이 잘 정리되면 컴파일러는 실행 가능한 개체를 방출 할 수 있습니다. 그렇지 않으면 프로그래밍 오류를 표시하고 중단합니다.

아래에 제공된 MSDN 링크에 따르면http://msdn.microsoft.com/en-us/library/hbzz1a9a.aspx

유형 안전 코드는 액세스 권한이있는 메모리 위치 만 액세스합니다. (이 논의의 경우 유형 안전은 특히 메모리 유형 안전성을 말하며 더 넓은 존중으로 유형 안전과 혼동해서는 안됩니다. 예를 들어, 유형-안전 코드는 다른 객체의 개인 필드에서 값을 읽을 수 없습니다. 유형에 잘 정의되고 허용 가능한 방식으로 만 액세스됩니다.

선택 5 할당 된 개체가 항상 호환되는 방식으로 액세스한다는 보증을 다루는 개념

유형 안전은 FOO를 만들 때 바로 취급 할 수 없도록 보장합니다. 어떤 유형인지 (또는 보장되지 않음) 모르는 경우, 작성한 코드는 단순히 예상대로 작동하지 않을 수 있습니다.

유형-안전 언어는 (컴파일 타임에) int 유형의 유형에서 호환되지 않는 메소드를 호출하지 않도록합니다. 비 형성 언어는 런타임에이를 파악합니다. 그래서, 선택 5.

다른 사람이 말했듯이, 선택 5 ...

일반적으로 .NET의 경우 CTS (Common Type System)를 확인하여 언어 간 물건과 유형 안전을 가능하게합니다.

체크 아웃 : http://en.wikipedia.org/wiki/type_safety ...

옵션 #5입니다. 타입 안전은 구체적인 것이 아니라 확신입니다. .NET 코드가 가능합니다 ~ 아니다 유형을 유형하십시오 ... 어셈블리가 안전하지 않은 코드를 사용하여 관리되지 않는 통화 (Pinvoke)를 수행하는 경우. JIT 기간 동안, Jitted 유형이 실제로 유형을 확인하는지 확인하는 프로세스가 수행됩니다. 나는이 과정에 대한 세부 사항을 알지 못하지만, Jitted Type이 통과하면 안전하게 안전한 것으로 간주됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top