최근 수정 시각 : 2024-09-20 10:36:52

대수적 자료형



''' 이론 컴퓨터 과학
{{{#!wiki style="display: inline-block; font-family:Times New Roman, serif;font-style:italic"'''
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px)"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px"
<colbgcolor=#a36> 이론
기본 대상 수학기초론{ 수리논리학( 논리 연산) · 계산 가능성 이론 · 범주론 · 집합론} · 이산수학( 그래프 이론) · 수치해석학 · 확률론 통계학 · 선형대수학
다루는 대상과 주요 토픽
계산 가능성 이론 재귀함수 · 튜링 머신 · 람다대수 · 처치-튜링 명제 · 바쁜 비버
오토마타 이론 FSM · 푸시다운 · 튜링 머신( 폰노이만 구조) · 정규 표현식 · 콘웨이의 생명 게임 · 형식언어
계산 복잡도 이론 점근 표기법 · 튜링 기계^ 고전, 양자, 비결정론적, 병렬 임의접근 기계^ · 알고리즘 · 자료구조 · 알고리즘 패러다임( 그리디 알고리즘, 동적 계획법)
정보이론 데이터 압축( 무손실 압축 포맷 · 손실 압축 포맷) · 채널 코딩(채널 용량) · 알고리즘 정보 이론(AIT) · 양자정보과학
프로그래밍 언어이론 프로그래밍 언어( 함수형 언어 · 객체 지향 프로그래밍 · 증명보조기) · 메타 프로그래밍 · 유형 이론 · 프로그래밍 언어 의미론 · 파싱 · 컴파일러 이론
주요 알고리즘 및 자료구조
기초 정렬 알고리즘 · 순서도 · 탐색 알고리즘
추상적 자료형 및 구현 배열^ 벡터^ · 리스트^ 연결 리스트^ · 셋(set)^ 레드-블랙 트리, B-트리^ · 우선순위 큐^, 피보나치 힙^
수학적 최적화 조합 최적화 외판원 순회 문제 · 담금질 기법 · 유전 알고리즘 · 기계학습
볼록 최적화 내부점 방법 · 경사하강법
선형계획법 심플렉스법
계산 수론 및 암호학 밀러-라빈 소수판별법 · Pollard-rho 알고리즘 · 쇼어 알고리즘 · LLL 알고리즘 · 해시( MD5 · 암호화폐 · 사전 공격( 레인보우 테이블) · SHA) · 양자 암호
대칭키 암호화 방식 블록 암호 알고리즘( AES · ARIA · LEA · Camellia) · 스트림 암호 알고리즘(RC4)
공개키 암호화 방식 공개키 암호 알고리즘( 타원 곡선 암호 · RSA) · 신원 기반 암호 알고리즘(SM9)
계산기하학 볼록 껍질 · 들로네 삼각분할 및 보로노이 도형^Fortune의 line-sweeping 알고리즘^ · 범위 탐색^vp-tree, R-tree^ · k-NN
그래프 이론 탐색^ BFS, DFS, 다익스트라 알고리즘, A* 알고리즘^ · 에드몬드-카프 · 크루스칼 알고리즘 · 위상 정렬 · 네트워크 이론
정리
정지 문제 대각선 논법 · 암달의 법칙 · P-NP 문제미해결 · 콜라츠 추측미해결
틀:이산수학 · 틀:수학기초론 · 틀:컴퓨터공학 }}}}}}}}}


1. 개요2. 연산
2.1. 합 연산2.2. 곱 연산2.3. 분리 합 연산
3. 예시

[clearfix]

1. 개요

Algebric Data Type

대수적 자료형이란 자료형에 대한 연산(algebric)을 통해 새로운 타입을 정의하는 방식, 또는 그 타입 자체를 가리킨다.

자료형은 프로그래밍 언어에서 다룰 수 있는 값을 모은 것으로, 집합으로 생각할 수 있다. 이 때 이 집합들의 연산을 통해 새로운 집합을 만들어 낼 수 있는데, 이런식으로 집합(타입)에 대한 연산을 이용해 새로운 집합(타입)을 만드는 것을, 프로그래밍 언어의 관점에서는 대수적 자료형이라고 한다. 예를 들어, 가장 흔히 사용되는 자료형인 Int [math( = \{x | -2^{31} \le x < 2^{31} \})] 를 생각해보자. 이 집합에 대한 카테시안 곱 Int * Int 를 정의하면, Int * Int [math( = \{ { ... , (0,0), (0,1), (0,2), (0,3), ..., (1,0), (1, 1), (1, 2), ... } \})] 와 같이 새로운 집합을 만들 수 있다. 그리고 이게 바로 (Int * Int) 튜플이다! 대수적 자료형은 이런식으로 다양한 자료형을 합성 (Composite) 하는 방법을 제공한다.

단, 상황에 따라 대수적 자료형이 더 좁은 의미로 쓰일 때도 있다. 좁은 의미로는 "(곱 연산의) 분리 합 연산" 만을 대수적 자료형으로 생각하기도 한다.

2. 연산

2.1. 합 연산

2.2. 곱 연산

2.3. 분리 합 연산


3. 예시