부록
부록 (Appendices)
이 장에서는 과정 전체에서 참조했던 참고 표와 부록을 수록해요.
출처: 부록 문서
본문
부록 A: 제네릭 형식 모드 (Appendix A: Generic Formal Types)
다음 표들은 제네릭에 사용할 수 있는 형식 타입(formal type)의 예시를 포함해요:
| 형식 타입 (Formal type) | 실제 타입 (Actual type) |
|---|---|
불완전 타입 (Incomplete type) — 형식: type T; |
모든 타입 (Any type) |
이산 타입 (Discrete type) — 형식: type T is (<>); |
모든 정수, 모듈러 또는 열거형 타입 (Any integer, modular or enumeration type) |
범위 타입 (Range type) — 형식: type T is range <>; |
모든 부호 있는 정수 타입 (Any signed integer type) |
모듈러 타입 (Modular type) — 형식: type T is mod <>; |
모든 모듈러 타입 (Any modular type) |
부동 소수점 타입 (Floating-point type) — 형식: type T is digits <>; |
모든 부동 소수점 타입 (Any floating-point type) |
이진 고정 소수점 타입 (Binary fixed-point type) — 형식: type T is delta <>; |
모든 이진 고정 소수점 타입 (Any binary fixed-point type) |
십진 고정 소수점 타입 (Decimal fixed-point type) — 형식: type T is delta <> digits <>; |
모든 십진 고정 소수점 타입 (Any decimal fixed-point type) |
정의형 비리미티드 비공개 타입 (Definite nonlimited private type) — 형식: type T is private; |
모든 비리미티드, 정의형 타입 (Any nonlimited, definite type) |
판별자를 가진 비리미티드 비공개 타입 (Nonlimited Private type with discriminant) — 형식: type T (D : DT) is private; |
판별자를 가진 모든 비리미티드 타입 (Any nonlimited type with discriminant) |
접근 타입 (Access type) — 형식: type A is access T; |
타입 T에 대한 모든 접근 타입 (Any access type for type T) |
정의형 파생 타입 (Definite derived type) — 형식: type T is new B; |
기본 타입 B에서 파생된 모든 구체 타입 (Any concrete type derived from base type B) |
리미티드 비공개 타입 (Limited private type) — 형식: type T is limited private; |
리미티드 여부와 무관한 모든 정의형 타입 (Any definite type, limited or not) |
불완전 태그 타입 (Incomplete tagged type) — 형식: type T is tagged; |
모든 구체, 정의형, 태그 타입 (Any concrete, definite, tagged type) |
정의형 태그 비공개 타입 (Definite tagged private type) — 형식: type T is tagged private; |
모든 구체, 정의형, 태그 타입 (Any concrete, definite, tagged type) |
정의형 태그 리미티드 비공개 타입 (Definite tagged limited private type) — 형식: type T is tagged limited private; |
리미티드 여부와 무관한 모든 구체 정의형 태그 타입 (Any concrete definite tagged type, limited or not) |
정의형 추상 태그 비공개 타입 (Definite abstract tagged private type) — 형식: type T is abstract tagged private; |
추상·구체 여부와 무관한 모든 비리미티드 정의형 태그 타입 (Any nonlimited, definite tagged type, abstract or concrete) |
정의형 추상 태그 리미티드 비공개 타입 (Definite abstract tagged limited private type) — 형식: type T is abstract tagged limited private; |
리미티드·추상·구체 여부와 무관한 모든 정의형 태그 타입 (Any definite tagged type, limited or not, abstract or concrete) |
정의형 파생 태그 타입 (Definite derived tagged type) — 형식: type T is new B with private; |
기본 타입 B에서 파생된 모든 구체 태그 타입 (Any concrete tagged type derived from base type B) |
정의형 추상 파생 태그 타입 (Definite abstract derived tagged type) — 형식: type T is abstract new B with private; |
기본 타입 B에서 파생된 모든 태그 타입 (추상 또는 구체) (Any tagged type derived from base type B abstract or concrete) |
배열 타입 (Array type) — 형식: type A is array (R) of T; |
타입 T의 요소를 포함하고 범위 R을 가진 모든 배열 타입 (Any array type with range R containing elements of type T) |
인터페이스 타입 (Interface type) — 형식: type T is interface; |
모든 인터페이스 타입 T (Any interface type T) |
리미티드 인터페이스 타입 (Limited interface type) — 형식: type T is limited interface; |
모든 리미티드 인터페이스 타입 T (Any limited interface type T) |
태스크 인터페이스 타입 (Task interface type) — 형식: type T is task interface; |
모든 태스크 인터페이스 타입 T (Any task interface type T) |
동기화 인터페이스 타입 (Synchronized interface type) — 형식: type T is synchronized interface; |
모든 동기화 인터페이스 타입 T (Any synchronized interface type T) |
보호 인터페이스 타입 (Protected interface type) — 형식: type T is protected interface; |
모든 보호 인터페이스 타입 T (Any protected interface type T) |
파생 인터페이스 타입 (Derived interface type) — 형식: type T is new B and I with private; |
기본 타입 B와 인터페이스 I에서 파생된 모든 타입 T (Any type T derived from base type B and interface I) |
다중 인터페이스 파생 타입 (Derived type with multiple interfaces) — 형식: type T is new B and I1 and I2 with private; |
기본 타입 B와 인터페이스 I1, I2에서 파생된 모든 타입 T (Any type T derived from base type B and interfaces I1 and I2) |
추상 파생 인터페이스 타입 (Abstract derived interface type) — 형식: type T is abstract new B and I with private; |
추상 기본 타입 B와 인터페이스 I에서 파생된 모든 타입 T (Any type T derived from abstract base type B and interface I) |
리미티드 파생 인터페이스 타입 (Limited derived interface type) — 형식: type T is limited new B and I with private; |
리미티드 기본 타입 B와 리미티드 인터페이스 I에서 파생된 모든 타입 T (Any type T derived from limited base type B and limited interface I) |
추상 리미티드 파생 인터페이스 타입 (Abstract limited derived interface type) — 형식: type T is abstract limited new B and I with private; |
추상 리미티드 기본 타입 B와 리미티드 인터페이스 I에서 파생된 모든 타입 T (Any type T derived from abstract limited base type B and limited interface I) |
동기화 인터페이스 타입 (Synchronized interface type) — 형식: type T is synchronized new SI with private; |
동기화 인터페이스 SI에서 파생된 모든 타입 T (Any type T derived from synchronized interface SI) |
추상 동기화 인터페이스 타입 (Abstract synchronized interface type) — 형식: type T is abstract synchronized new SI with private; |
동기화 인터페이스 SI에서 파생된 모든 타입 T (Any type T derived from synchronized interface SI) |
무한 버전 (Indefinite version)
위 예시들 중 많은 것은 무한 형식 타입(formal indefinite type)에도 사용할 수 있어요:
| 형식 타입 (Formal type) | 실제 타입 (Actual type) |
|---|---|
무한 불완전 타입 (Indefinite incomplete type) — 형식: type T (<>); |
모든 타입 (Any type) |
무한 비리미티드 비공개 타입 (Indefinite nonlimited private type) — 형식: type T (<>) is private; |
무한·정의형 여부와 무관한 모든 비리미티드 타입 (Any nonlimited type indefinite or definite) |
무한 리미티드 비공개 타입 (Indefinite limited private type) — 형식: type T (<>) is limited private; |
리미티드·무한·정의형 여부와 무관한 모든 타입 (Any type, limited or not, indefinite or definite) |
무한 태그 비공개 타입 (Incomplete indefinite tagged private type) — 형식: type T (<>) is tagged; |
무한·정의형 여부와 무관한 모든 구체 태그 타입 (Any concrete tagged type, indefinite or definite) |
무한 태그 비공개 타입 (Indefinite tagged private type) — 형식: type T (<>) is tagged private; |
무한·정의형 여부와 무관한 모든 구체, 비리미티드 태그 타입 (Any concrete, nonlimited tagged type, indefinite or definite) |
무한 태그 리미티드 비공개 타입 (Indefinite tagged limited private type) — 형식: type T (<>) is tagged limited private; |
리미티드·무한·정의형 여부와 무관한 모든 구체 태그 타입 (Any concrete tagged type, limited or not, indefinite or definite) |
무한 추상 태그 비공개 타입 (Indefinite abstract tagged private type) — 형식: type T (<>) is abstract tagged private; |
무한·정의형·추상·구체 여부와 무관한 모든 비리미티드 태그 타입 (Any nonlimited tagged type, indefinite or definite, abstract or concrete) |
무한 추상 태그 리미티드 비공개 타입 (Indefinite abstract tagged limited private type) — 형식: type T (<>) is abstract tagged limited private; |
리미티드·무한·정의형·추상·구체 여부와 무관한 모든 태그 타입 (Any tagged type, limited or not, indefinite or definite abstract or concrete) |
무한 파생 태그 타입 (Indefinite derived tagged type) — 형식: type T (<>) is new B with private; |
기본 타입 B에서 파생된 무한·정의형 여부와 무관한 모든 태그 타입 (Any tagged type derived from base type B, indefinite or definite) |
무한 추상 파생 태그 타입 (Indefinite abstract derived tagged type) — 형식: type T (<>) is abstract new B with private; |
기본 타입 B에서 파생된 무한·정의형·추상·구체 여부와 무관한 모든 태그 타입 (Any tagged type derived from base type B, indefinite or definite abstract or concrete) |
같은 예시들에 판별자(discriminant)가 포함될 수도 있어요. 그 경우 (<>)는 판별자 목록(예: (D: DT))으로 대체돼요.
부록 B: 컨테이너 (Appendix B: Containers)
다음 표는 Ada에서 사용 가능한 모든 컨테이너를 버전(표준, 바운드, 언바운드, 무한)별로 보여줘요:
| 범주 (Category) | 컨테이너 | Std | Bounded | Unbounded | Indefinite |
|---|---|---|---|---|---|
| Vector | Vectors |
Y | Y | Y | |
| List | Doubly Linked Lists |
Y | Y | Y | |
| Map | Hashed Maps |
Y | Y | Y | |
| Map | Ordered Maps |
Y | Y | Y | |
| Set | Hashed Sets |
Y | Y | Y | |
| Set | Ordered Sets |
Y | Y | Y | |
| Tree | Multiway Trees |
Y | Y | Y | |
| Generic | Holders |
Y | |||
| Queue | Synchronized Queue Interfaces |
Y | |||
| Queue | Synchronized Queues |
Y | Y | ||
| Queue | Priority Queues |
Y | Y |
참고 (Note)
올바른 컨테이너 이름을 얻으려면 위 이름들의 공백을 _로 바꾸세요. (예: Hashed Maps는 Hashed_Maps가 돼요.)
다음 표는 컨테이너 이름에 적용되는 접두사(prefix)를 버전에 따라 제시해요. 표에 나와 있듯 표준 버전에는 연관된 접두사가 없어요.
| 버전 (Version) | 명명 접두사 (Naming prefix) |
|---|---|
| Std | |
| Bounded | Bounded_ |
| Unbounded | Unbounded_ |
| Indefinite | Indefinite_ |