BROKER SEGUR - Rio Ulla 7 , Madrid

generic programming 예제

D 프로그래밍 언어는 C++의 디자인기반 템플릿을 지원합니다. 대부분의 C++ 템플릿 숙어는 변경 없이 D로 이월되지만 D는 몇 가지 추가 기능을 추가합니다. 따라서 “T”우리는이 예제를 통해 볼 수 있습니다. 일반성은 다양한 프로그래밍 언어로 다르게 구현되고 지원됩니다. “제네릭”이라는 용어는 다양한 프로그래밍 컨텍스트에서도 다르게 사용되었습니다. 예를 들어, Forth에서 컴파일러는 컴파일하는 동안 코드를 실행할 수 있으며, 컴파일러 키워드와 새 구현을 즉시 만들 수 있습니다. 컴파일러 동작을 노출하는 단어는 거의 없으므로 대부분의 Forth 텍스트에서 언급되지 않는 일반성 용량을 자연스럽게 제공합니다. 마찬가지로, 동적으로 입력된 언어, 특히 해석된 언어는 일반적으로 함수에 값을 전달하는 것과 값 할당이 모두 형식이 다르며 이러한 동작은 추상화 또는 코드 간결에 자주 사용되기 때문에 기본적으로 일반성을 제공합니다. 그러나 언어에서 사용하는 동적 타이핑 시스템의 직접적인 결과이기 때문에 일반적으로 일반성이라고 표시되지 는 않습니다.

[인용 필요] 이 용어는 함수형 프로그래밍, 특히 하스켈과 같은 언어에서 사용되었으며, 여기서 형식은 항상 파라메트릭이고 해당 형식의 실제 코드는 일반적입니다. 이러한 사용법은 여전히 코드 절약 및 추상화 렌더링과 유사한 용도로 사용됩니다. 기본적으로 모든 심각한 프로그래밍 언어는 제네릭을 가지고 🙂 우선, 템플릿과 일반 프로그래밍이라는 용어를 사용하며, 가장 적합한 것은 무엇이든 사용합니다. 물론 템플릿은 제네릭 코드를 작성하는 방법일 뿐이라는 것을 알고 있습니다. C ++의 템플릿이 무엇인지 알고 있지만 일반 프로그래밍의 의미를 알지 못한다고 가정합니다. 다음은 위키백과에서 제가 가장 좋아하는 정의입니다. max() 함수와 같은 템플릿의 일부 사용은 이전에 함수와 같은 전처리기 매크로(C 프로그래밍 언어의 레거시)로 채워졌습니다. 예를 들어, 가능한 max() 매크로: 예를 들어 N 시퀀스 데이터 구조( 예: singly 연결된 목록, 벡터 등) 및 M 알고리즘이 이에 대해 작동하도록 할 수 있습니다(예: 찾기, 정렬 등) 직접 접근 방식은 각 데이터에 대해 특별히 각 알고리즘을 구현합니다. N × M 조합을 구현할 수 있습니다. 그러나 제네릭 프로그래밍 접근 방식에서 각 데이터 구조는 반복기 개념의 모델을 반환합니다(현재 값을 검색하기 위해 디레반으로 사용되거나 시퀀스의 다른 값을 가리키도록 변경될 수 있는 간단한 값 형식) 각 알고리즘은 대신 이러한 이터레이터의 인수와 함께 일반적으로 작성됩니다(예: 처리할 하위 시퀀스 또는 범위의 시작과 끝을 가리키는 한 쌍의 이터레이터) 따라서 N + M 데이터 구조 알고리즘 조합만 구현해야 합니다. STL에 여러 반복기 개념이 지정되어 있으며, 각 개념은 순방향 반복기와 같은 보다 제한적인 개념의 구체화로 시퀀스의 다음 값으로의 이동만 제공(예: 개별적으로 연결된 목록 또는 입력 데이터 스트림에 적합)하는 반면 임의 액세스는 또한 이터레이터는 서열의 임의의 요소에 대한 직접적인 일정한 시간 액세스를 제공합니다(예: 벡터에 적합).

중요한 점은 데이터 구조가 효율적으로 구현할 수 있는 가장 일반적인 개념의 모델을 반환한다는 것입니다.계산 복잡성 요구 사항은 개념 정의의 일부로 명시적으로 표시됩니다.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies