자료형 체계 - 위키백과, 우리 모두의 백과사전 자료형 체계 위키백과, 우리 모두의 백과사전. ( 형 체제에서 넘어옴 ) 둘러보기로 가기 검색하러 가기 컴퓨터 과학에서, 자료형 체계 ( type system ) 는 값, 표현식, 함수, 모듈 등을 분류하는 규칙의 집합이다. 보다 형식적으로는, " 계산될 값을 분류하여 특정한 종류의 프로그램 오류가 일어나지 않음을 증명하는 계산 가능한 방법 " 으로 정의된다. [ 1 ] 자료형 체계에서 각각의 계산된 값은 자료형을 갖는다. 자료형 체계는 프로그램 안에서 값의 흐름을 검토하여 자료형에 맞지 않는 값이 할당되는 것을 막는다. 자료형에 맞지 않는 값이 할당되는 것을 자료형 오류라고 부른다. 논리적으로 맞지 않는 자료형 사이의 연산이나 잘못된 메모리에 접근하
않는 값이 할당되는 것을 막는다. 자료형에 맞지 않는 값이 할당되는 것을 자료형 오류라고 부른다. 논리적으로 맞지 않는 자료형 사이의 연산이나 잘못된 메모리에 접근하는 경우가 이에 해당한다. 구체적으로 어떤 연산이 자료형 오류인지는 자료형 체계에 따라 다르다. 컴파일러는 정적 자료형을 통해 각 변수에 필요한 저장 용량과 연산 알고리즘을 최적화할 수 있다. 예를 들어 다수의 C 컴파일러의 " 부동소수점 " 자료형은, 단일 정밀도 부동 소수점 숫자에 대한 IEEE 표준에 따라 32 비트로 표시된다. 따라서 C 컴파일러는 부동소수점 자료형을 갖는 변수의 연산에는 그에 맞는 기계어 명령을 사용할 수 있다. 형식 제약의 깊이와 그 평가의 방법은 언어의 정형에 영향을 미친다. 프로그래밍
를 참고하십시오. 자료형들의 유형들 [ 편집 ] 이 부분의 본문은 자료형입니다. 같이 보기 [ 편집 ] 자료형 규칙 공분산과 역분산 ( 컴퓨터 과학 ) 연산자 오버로딩 객체 지향 프로그래밍에서의 다형성 프로그래밍 언어 부호를 지닌 것 자료형 체계 상호 참조 목록 자료형 서명 자료형 이론 참조 [ 편집 ] ↑ 가 나 Pierce, Benjamin C. ( 2002 ). 《 Types and Programming Languages 》. MIT Press. ISBN 0 - 262 - 16209 - 1. ↑ Xi, Hongwei ; Scott, Dana ( 1998 ). " Dependent Types in Practical Programming ". 《 Proceedings of ACM SIGPLAN Symposium on Principles of Programming Languages 》 ( ACM
컴파일러는 부동소수점 자료형을 갖는 변수의 연산에는 그에 맞는 기계어 명령을 사용할 수 있다. 형식 제약의 깊이와 그 평가의 방법은 언어의 정형에 영향을 미친다. 프로그래밍 언어 추가 자료형 다형성의 경우 각 자료형에 대한 다양한 구체적인 알고리즘과 함께 작업을 연결할 수 있다. 형 이론은 컴퓨터 아키텍처, 컴파일러 구현 및 언어 디자인의 실용적인 문제에서 발생하는 자료형 체계의 연구이다. 목차 1 기본 2 자료형 검사 2. 1 정적 정형 2. 2 동적 정형 2. 3 동적 및 정적 정형의 조합 2. 4 실제로 정적 및 동적 자료형 검사하기 2. 5 강한 및 악한 정형 : 리스코브 정의 2. 6 강한 및 약한 정형 2. 7 안전하게 및 불안전하게 정형된 체계들 3 다형성 및 자료형들 3. 1 오리 정형 4 명시적 또는
2. 5 강한 및 악한 정형 : 리스코브 정의 2. 6 강한 및 약한 정형 2. 7 안전하게 및 불안전하게 정형된 체계들 3 다형성 및 자료형들 3. 1 오리 정형 4 명시적 또는 암시적 선언 및 추론 5 자료형들의 유형들 6 같이 보기 7 참조 기본 [ 편집 ] 값에 자료형을 할당하는 것을 정형이라고 한다. 정형은 메모리 상의 비트의 나열에 의미를 부여한다. 컴퓨터 상에서 모든 값은 단순히 비트 나열로 구성되어 있기 때문에, 하드웨어는 메모리 주소, 명령어 코드, 문자, 정수, 부동소수점을 서로 구분할 수 없다. 나열된 비트들과 형을 연결해줌으로써, 프로그래머는 프로그램이 어떻게 이 비트의 순서를 이해해야 하는지 알려준다. 자료형 체계가 제공하는 주 기능은 다음과 같다 : 안전 - 자료형의 사용은 컴파일러가
수 있지만, 반대로 정적 자료형 검사가 감지할 수 있는 오류를 종합적으로 검색할 수 없다. 동적 및 정적 정형의 조합 [ 편집 ] 프로그래밍 언어의 정적 정형의 존재는 반드시 모든 동적 정형 구조가 없는 상태를 의미하는 것은 아니다. 예를 들어, 자바와 다른 표면에서 정적으로 정형된 언어의 경우, 하위 형변환 및 자료형 검사에 따라 다른 종류의 작업을, 동적 정형의 형태로 지원한다. 더 일반적으로, 대부분의 프로그래밍 언어는 데이터를 서로 다른'종류'를 통해, 서로소 합집합과, 변형 자료형 및 다형성 개체와 같은 파견에 대한 방식을 포함한다 : 자료형 주석 또는 자료형 검사와 상호 작용조차 하지 않을 때 이러한 방식은 동적 정형 구현에서 실질적으로 유사하다. 정적 및 동적 정형 사이의 상호 작용에 대한 자세한 내용을 보려면 프로그래밍 언어를 참조한다
의 소스 코드에 대한 변경 사항 때문에 수행하기 위해 덜 검사한 것과 코드를 되짚는 것에서 발생할 수 있다. 이것도 편집 - 컴파일 - 테스트 - 디버그 주기를 줄일 수 있다. 정적으로 정형된 언어의 경우 부족한 자료형 추론 ( 예 : C와 Java 등 ) 은 프로그래머들이 메서드나 함수를 사용하고자 하는 자료형을 선언할 것을 요구한다. 이것은 어느 컴파일러가 프로그래머가 동기화 중에 표류할 것을 무시하거나 허용하도록 허가하지 않을 것을 프로그램을 위한 추가 문서로 검색할 수 있다. 그러나, 언어는 정적으로 자료형 선언 없이 정형될 수 있다 ( 예시는 하스켈, 스칼라 그리고 낮은 정도의 C # 를 포함한다 ), 그래서 명시적인 자료형 선언은 모든 언어에서 정적 정형을 위한 요구 사항을 필요로 하지 않는다. 동적 정형
개체는 개체 참조를 해결하기 위해 동적 설비를 심문하는 닷넷 에 대한 자리표시자에 의하여 System. Dynamic 이름공간 을 통해 동적 정형의 정의 변종을 지원한다. 실제로 정적 및 동적 자료형 검사하기 [ 편집 ] 정적 및 동적 정형 사이의 선택은 트레이드오프를 필요로 한다. 정적 정형은 컴파일 타임에 안정적으로 자료형 오류를 찾을 수 있다. 이것은 제공되는 프로그램의 신뢰성이 증가할 것이다. 그러나, 프로그래머는 일반적으로 자료형 오류가 발생하는 방법을 통해 반대하고, 따라서 적절하게 코드에서 설계된 자료형을 대표해서 잡은 것으로 코딩한 이 버그의 비율을 통해 반대한다. 정적 정형 지지자들은 자료형 검사가 잘 되어있을 때 프로그램이 더 신뢰할 수 있다고 믿고, 동적 정형 지지자들은 안정적이고 작은 데이터베이스 버그가 증명된 배포 코드를 가리킨다. 자료
하는 것을 자료형 검사라고 한다. 자료형 검사는 컴파일 타임 ( 정적 검사 ) 또는 ( 동적 검사 ) 에 실행될 있다. 만약 언어 명세가 엄격한 분류 규칙을 요구할 경우 ( 즉, 더 많거나 적은 정보를 잃지 않는 것만 자동 자료형 전환을 허용한다 ), 강력한 정형으로, 그렇지 않다면, 약한 정형으로 분류할 수 있다. 그러나 이 분류는 학술적으로 엄격한 분류는 아니다. 정적 정형 [ 편집 ] 자료형 검사가 실행 시간이 아닌 컴파일 타임 동안 수행될 경우, 이를 정적 정형이라고 한다. 정적으로 정형된 언어는 액션스크립트 3, 에이다, C, C, C #, D, Eiffel, F #, 포트란, Go, 하스켈, JADE, 자바, ML, 오브젝티브 - C, OCaml, 파스칼, 펄 ( 스칼라, 배열
객체 ) 를 허용하는 등 전환 코드와 프로토 타입을 수용하는 것보다 낫다. 강한 및 악한 정형 : 리스코브 정의 [ 편집 ] 이 부분의 본문은 약한 및 강한 정형입니다. 강한 및 약한 정형 [ 편집 ] 이 부분의 본문은 강하게 정형된 프로그래밍 언어입니다. 안전하게 및 불안전하게 정형된 체계들 [ 편집 ] 이 부분의 본문은 자료형 안전입니다. 다형성 및 자료형들 [ 편집 ] 이 부분의 본문은 자료형 다형성입니다. 오리 정형 [ 편집 ] 이 부분의 본문은 오리 정형입니다. 명시적 또는 암시적 선언 및 추론 [ 편집 ] 이 주제의 자세한 내용은 자료형 추론 문서를 참고하십시오. 자료형들의 유형들 [ 편집 ] 이 부분의 본문은 자료형입니다. 같이 보기 [ 편집 ] 자료형 규칙 공분산과 역분산 ( 컴퓨터 과학 ) 연산자 오버로딩 객체 지향 프로그래밍에서
컴퓨터 과학에서 자료형 체계(type system)는 값, 표현식, 함수, 모듈 등을 분류하는 규칙의 집합이다. 보다 형식적으로는, "계산될 값을 분류하여 특정한 종류의 프로그램 오류가 일어나지 않음을 증명하는 계산 가능한 방법"으로 정의된다.자료형 체계에서 각각의 계산된 값은 자료형을 갖는다. 자료형 체계는 프로그램 안에서 값의 흐름을 검토하여 자료형에 맞지 않는 값이 할당되는 것을 막는다. 자료형에 맞지 않는 값이 할당되는 것을 자료형 오류라고 부른다. 논리적으로 맞지 않는 자료형 사이의 연산이나 잘못된 메모리에 접근하는 경우가 이에 해당한다. 구체적으로 어떤 연산이 자료형 오류인지는 자료형 체계에 따라 다르다. 컴파일러는 정적 자료형을 통해 각 변수에 필요한 저장 용량과 연산 알고리즘을 최적화할 수 있다. 예를 들어 다수의 C 컴파일러의 "부동소수점" 자료형은, 단일 정밀도 부동소수점 숫자에 대한 IEEE 표준에 따라 64 비트로 표시된다. 따라서 C 컴파일러는 부동소수점 자료형을 갖는 변수의 연산에는 그에 맞는 기계어 명령을 사용할 수 있다. 형식 제약의 깊이와 그 평가의 방법은 언어의 정형에 영향을 미친다. 프로그래밍 언어 추가 자료형 다형성의 경우 각 자료형에 대한 다양한 구체적인 알고리즘과 함께 작업을 연결할 수 있다. 유형 이론은 컴퓨터 아키텍처, 컴파일러 구현 및 언어 디자인의 실용적인 문제에서 발생하는 자료형 체계의 연구이다.