가능한 다른 번역들: 자료형(data type), ... 형, 유형, .... (type theory와 무관한 것도 많지만 번역 참고: type type type type ... type )
2023-11-18 페이지 길어져서 편집 불편한데, typing 분리할까? 타이핑,typing { page name due to kornorms 2023-11-18. } // =,typing
type_annotation -> 현재(2024-04-10)로선 function_definition / function_annotation / type_hint / type_signature ... 과 페이지 구분 필요 없음. curr. 애너테이션,annotation
MKL
클래스,class
type_invariant
{
type_invariant ?
MKL class_invariant
}
클래스,class
의미 차이 있음. 상황에 따라 다양한데, type과 class는 완전히 같은 뜻으로 쓰이는 경우도 있다.
수표현,number_representation - 수,number를 표현하는 types:// number_type or number_data_type ?
0 포함 자연수,natural_number
정수,integer : 음수,negative_number and 영,zero and 양수,positive_number
부동소수점,floating_point / 부동소수점수,floating_point_number
또한 이것들은 길이(i.e. 차지하는 비트,bit 수)와도 밀접한 관련, 특히 fpn은 precision(정밀도,precision?)이. - int8(~= 바이트,byte) int16 int32 int64 ... / float16 float32 float64 ... / ...
https://wiki.haskell.org/Generic_number_type
순서형,order_type ? or 순서타입,order_type ? - 순서형,order_type / rel 순서,order0 포함 자연수,natural_number
정수,integer : 음수,negative_number and 영,zero and 양수,positive_number
부동소수점,floating_point / 부동소수점수,floating_point_number
또한 이것들은 길이(i.e. 차지하는 비트,bit 수)와도 밀접한 관련, 특히 fpn은 precision(정밀도,precision?)이. - int8(~= 바이트,byte) int16 int32 int64 ... / float16 float32 float64 ... / ...
https://wiki.haskell.org/Generic_number_type
type_invariant
{
type_invariant ?
MKL class_invariant
}
1. type과 data type - TBD... ¶
// type과 data type 의 정확한 관계 tbw.
// =,data_type
// =,data_type
data_type
https://hut.mearie.org/data-type/
Data_type
자료형
Data_type
Sub: 추상자료형 추상자료타입 추상데이터형 추상데이터타입 abstract_data_type ADT (pagename TBD)
https://hut.mearie.org/data-type/
Data_type
자료형
Data_type
Sub: 추상자료형 추상자료타입 추상데이터형 추상데이터타입 abstract_data_type ADT (pagename TBD)
범주론,category_theory 범주,category가 상위주제이면 여기 타입,type페이지로 하고
CS > data_structure가 상위주제이면 데이터타입 자료타입 자료형 data_type 페이지로 할까?
CS > data_structure가 상위주제이면 데이터타입 자료타입 자료형 data_type 페이지로 할까?
2. 여러 타입들 ¶
/// -type
primitive_type =,primitive_type . primitive_type
primitive_data_type =,primitive_data_type . primitive_data_type
{
primitive data type
"primitive data type"
primitive data type
primitive_type =,primitive_type . primitive_type
primitive_data_type =,primitive_data_type . primitive_data_type
{
primitive data type
"primitive data type"
primitive data type
이건 PL마다 다를텐데 대개
- int 정수,integer - 정수형
- float - floating_point_number - 부동소수점,floating_point
- single precision
- double precision // 정밀도,precision
- single precision
- bool - boolean_type? boolean_data_type ? pagename?
- 가능한 값은 둘: true or false
- 가능한 값은 둘: true or false
JavaScript의 primitive data type : 7개.
https://developer.mozilla.org/en-US/docs/Glossary/Primitive
https://developer.mozilla.org/en-US/docs/Glossary/Primitive
string number bigint boolean undefined symbol null
opp. composite_type
primitive_type
원시_자료형
= https://ko.wikipedia.org/wiki/원시_자료형
Primitive_data_type
= https://en.wikipedia.org/wiki/Primitive_data_type
}
원시_자료형
= https://ko.wikipedia.org/wiki/원시_자료형
Primitive_data_type
= https://en.wikipedia.org/wiki/Primitive_data_type
}
Boolean_data_type: // or boolean_data_type ? boolean_data_type
{
literal로는
보통
lisp의 경우 특이하게
{
literal로는
보통
true
false
를 쓰고1 0
과 구분을 하지 않는 경우도 많고lisp의 경우 특이하게
t nil
을 쓰는 듯...?undefined, 0(int), 0.0(float) 등의 일부 값이 false로, 나머지는 true로, 이런게 자주 쓰이는데.. 정확한 명칭 및 rationale?
자연수타입,natural_number_type =자연수타입,natural_number_type =,natural_number_type . natural_number_type
{
natural numbers type
natural number type 일단 정규화때문에 어쩔수없이 pagename은 이랬는데, .........복수형이 better? 당연히 natural language로서의 English 표현은 복수형이 자연스럽다만.
{
natural numbers type
natural number type 일단 정규화때문에 어쩔수없이 pagename은 이랬는데, .........복수형이 better? 당연히 natural language로서의 English 표현은 복수형이 자연스럽다만.
composite_type =,composite_type . composite_type
composite_data_type =,composite_data_type . composite_data_type
{
composite_data_type =,composite_data_type . composite_data_type
{
이하 동의어들
aka compound_data_type or compound_type
composite와 차이?
"a composite data type or compound data type is"[1] 에 따르면 동의어같음.
composite와 차이?
"a composite data type or compound data type is"[1] 에 따르면 동의어같음.
aka aggregate_type { aggregate type https://foldoc.org/aggregate type aggregate type aggregate type "aggregate type" } 다만 이건 "may also refer to arrays, lists, etc."
// (singular? 가 아닌(primitive 말고, 개수가 항상 한개)) composite/compound/aggregate 에서만 할수있는건뭐가있을지
일단생각나는 대로 나열+추가 (정확하지 않음,chk.) 틀렸으면 그냥 지우지 말고 그 rational 을 적어놓을 것.
builtin_type
{
built-in_type
}
일단생각나는 대로 나열+추가 (정확하지 않음,chk.) 틀렸으면 그냥 지우지 말고 그 rational 을 적어놓을 것.
- traversal
- 반복,iteration - 반복자,iterator
- 열거,enumeration
- 길이,length ≠ 1 (rel. 크기,size)
- 루프,loop등에서 인덱스,index를 사용한 접근,acces
builtin_type
{
built-in_type
}
reference_type reference_type =,reference_type . reference_type
reference_type
참조 타입 - @n0lb00's Blog // of 자바스크립트,JavaScript
https://nolboo.kim/blog/2014/05/05/javascript-for-web-developer-6/
MKL
참조,reference
포인터,pointer ?
reference_type
참조 타입 - @n0lb00's Blog // of 자바스크립트,JavaScript
https://nolboo.kim/blog/2014/05/05/javascript-for-web-developer-6/
MKL
참조,reference
포인터,pointer ?
algebraic_data_type
{
대수적_자료형
Algebraic_data_type
https://foldoc.org/algebraic data type
... algebraic data type
}
{
대수적_자료형
Algebraic_data_type
https://foldoc.org/algebraic data type
(Or "sum of products type")
https://wiki.haskell.org/Algebraic_data_type... algebraic data type
}
// TODO 위아래 둘 구분
MKLINK abstract_data_type //바로위
ADDHERE
ADDHERE
ADDHERE
ADDHERE
ADDHERE
ADDHERE
ADDHERE
문자,character
의 type : character_type or character_data_type
{
보통, code_point를 표현하는 수,number (esp 0을 포함한 자연수) 와 다루는 방식이 비슷한??
의 type : character_type or character_data_type
{
보통, code_point를 표현하는 수,number (esp 0을 포함한 자연수) 와 다루는 방식이 비슷한??
문자열,string
의 type : string_type or string_data_type
{
일반적으로 PL에서 string이라 하면 character_string (string of character) 를 뜻하고
ADT로는
.. 문자,character의 시퀀스,sequence 로 다루는 데 문제없게
concrete_type / data_structure 쪽으로는 i.e. 구체적 구현,implementation까지 생각하려면
.. 인덱스,index를 사용한 접근,access, slicing concatenation 등 각종 연산,operation(i.e. 문자열연산,string_operation), dynamic_allocation( static_string , string_constant , immutable_string 인 경우 무관), ....등 생각할 게 많은데
의 type : string_type or string_data_type
{
일반적으로 PL에서 string이라 하면 character_string (string of character) 를 뜻하고
ADT로는
.. 문자,character의 시퀀스,sequence 로 다루는 데 문제없게
concrete_type / data_structure 쪽으로는 i.e. 구체적 구현,implementation까지 생각하려면
.. 인덱스,index를 사용한 접근,access, slicing concatenation 등 각종 연산,operation(i.e. 문자열연산,string_operation), dynamic_allocation( static_string , string_constant , immutable_string 인 경우 무관), ....등 생각할 게 많은데
해시테이블,hash_table
aka associative_array ? - 연관_배열 Associative_array
aka ...
딕셔너리,dictionary or 사전,dictionary?
{
key-value
aka associative_array ? - 연관_배열 Associative_array
aka ...
딕셔너리,dictionary or 사전,dictionary?
{
key-value
ordered_dictionary? ... { ordered dictionary ordered dictionary ordered dictionary ordered dictionary "ordered dictionary" }
}
4. Topics ¶
type_casting
{
Forcing a variable to behave as a type other than the one originally intended for it[2]
... type casting type casting
}
{
Forcing a variable to behave as a type other than the one originally intended for it[2]
... type casting type casting
}
type_coercion
{
coercion 영어사전 => https://dict.naver.com/search.nhn?dicQuery=coercion&query=coercion&target=dic&query_utf=&isOnlyViewEE=
}
{
coercion 영어사전 => https://dict.naver.com/search.nhn?dicQuery=coercion&query=coercion&target=dic&query_utf=&isOnlyViewEE=
즉 강제시키는것
... type coercion type coercion}
// 위아래 same?
curr at 추론,inference
type_error 를 최소화하거나 막는
aka type_soundness (type 건전성soundness)
compile time에 타입이 검사된다면 static type checking 언어.
runtime에 타입이 검사된다면 dynamic type checking 언어.
runtime에 타입이 검사된다면 dynamic type checking 언어.
MKLINK
자동형변환/자동형전환/coercion
QQQ weak일때는 이게 무난하고 (대신 알 수 없는(silent한) 버그가 생길 수 있고) strong일때는 이게 까다로운 것?
자동형변환/자동형전환/coercion
QQQ weak일때는 이게 무난하고 (대신 알 수 없는(silent한) 버그가 생길 수 있고) strong일때는 이게 까다로운 것?
type_arithmetic =,type_arithmetic . type_arithmetic
{
타입시스템 타입체계 .... 중 TBD. -> 타입체계 가 가장 무난한 듯
다른 번역들:
자료형 체계
형 체계
....
{
type arithmetic
타입산술 ?
https://wiki.haskell.org/Type_arithmetic
"type arithmetic"
type arithmetic
Up: 타입,type 산술,arithmetic
}
타입체계,type_system =타입체계,type_system =,type_system . type_system 타입체계type arithmetic
타입산술 ?
https://wiki.haskell.org/Type_arithmetic
"type arithmetic"
type arithmetic
Up: 타입,type 산술,arithmetic
}
{
타입시스템 타입체계 .... 중 TBD. -> 타입체계 가 가장 무난한 듯
다른 번역들:
자료형 체계
형 체계
....
contrast with: structural_type_system "s, where comparisons are based on the structure of the types in question and do not require explicit declarations."[3]
nominative_type_system
= https://en.wiktionary.org/wiki/nominative_type_system
명목적_자료형_체계
}
= https://en.wiktionary.org/wiki/nominative_type_system
AKA: syn. name-based type system, nominal type system
Nominal_type_system명목적_자료형_체계
}
structural_type_system
}
}
위 둘 비교
NominativeAndStructuralTyping
unified_type_system =,unified_type_system . unified_type_system
{
NominativeAndStructuralTyping
unified_type_system =,unified_type_system . unified_type_system
{
unified type system
}
Twin:
type_annotation =,type_annotation . type_annotation
{
type annotation
'type hint'?
{
type annotation
'type hint'?
syn? chk. type_hint
애너테이션,annotation명시적으로: manifest_typing ... http://wiki.c2.com/?ManifestTyping
암시적으로: implicit_typing ... http://wiki.c2.com/?ImplicitTyping
암시적으로: implicit_typing ... http://wiki.c2.com/?ImplicitTyping
https://en.wiktionary.org/wiki/type_annotation x 2024-1
} // type annotation ... type annotation type annotation
} // type annotation ... type annotation type annotation
Twin
Type_signature
= https://en.wikipedia.org/wiki/Type_signature
= https://en.wikipedia.org/wiki/Type_signature
"type signature or type annotation"
타입_시그니처https://en.wiktionary.org/wiki/type_signature x 2024-1
} // type signature ... type.signature type signature type signature
} // type signature ... type.signature type signature type signature
type_class =,type_class . type_class | =,typeclass typeclass
{
type class
AKA typeclass (via typeclass )
{
type class
AKA typeclass (via typeclass )
https://en.wiktionary.org/wiki/type_class
= https://en.wikipedia.org/wiki/Type_class
"(programming) A type system construct that supports ad hoc polymorphism (independent of the type_hierarchy), first pioneered in Haskell."(2024-01-13)
Type_class= https://en.wikipedia.org/wiki/Type_class
타입족 ?
https://en.wiktionary.org/wiki/type_constructor x 2024-1
} // type constructor ... type.constructor type constructor
} // type constructor ... type.constructor type constructor
서브타이핑
(subtyping : aka subtype_polymorphism or inclusion_polymorphism - 다형성,polymorphism의 일종, via Polymorphism_(computer_science))
(subtyping : aka subtype_polymorphism or inclusion_polymorphism - 다형성,polymorphism의 일종, via Polymorphism_(computer_science))
... subtype subtype
}
subtyping =,subtyping =,subtyping . subtyping
{
curr see also 다형성,polymorphism
}
subtyping =,subtyping =,subtyping . subtyping
{
curr see also 다형성,polymorphism
supertype =,supertype =,supertype . supertype
{
supertype
= https://en.wiktionary.org/wiki/supertype "The data type represented by a superclass."
{
supertype
= https://en.wiktionary.org/wiki/supertype "The data type represented by a superclass."
subtype and supertype
{
{
recursive_type =,recursive_type . recursive_type
recursive_data_type
{
recursive type
recursive data type
recursive_data_type
{
recursive type
recursive data type
inductive_type =,inductive_type . inductive_type
inductive_data_type
{
귀납,induction? - VG 귀납,induction
inductive_data_type
{
귀납,induction? - VG 귀납,induction
바로위 recursive_type과 비교.
https://en.wikipedia.org/wiki/Inductive_type
}
mentions
... inductive.typestructural_induction =,structural_induction . structural_induction { Structural_induction = https://en.wikipedia.org/wiki/Structural_induction }
}
dependent type
Return_type
}
= https://en.wikipedia.org/wiki/Return_type
"the return type (or result_type) defines and constrains the data type of the value returned from a subroutine or method."
... Return.type"the return type (or result_type) defines and constrains the data type of the value returned from a subroutine or method."
}
/// -typing
static_typing =,static_typing =,static_typing . static_typing
{
StaticTyping = http://wiki.c2.com/?StaticTyping
{
StaticTyping = http://wiki.c2.com/?StaticTyping
dynamic_typing =,dynamic_typing =,dynamic_typing . dynamic_typing
{
= http://wiki.c2.com/?DynamicTyping
{
duck_typing =,duck_typing =,duck_typing . duck_typing
DynamicTyping덕 타이핑 ... 이 최선?
오리 타이핑 ... 도 문제 없을텐데?
rel. 외연성,extensionality duck_test
Twins:
duck_typing = https://en.wiktionary.org/wiki/duck_typing
Duck_typing = https://simple.wikipedia.org/wiki/Duck_typing
Duck_typing = https://en.wikipedia.org/wiki/Duck_typing
duck typing
duck typing
덕 타이핑
define: duck typing
오리 타이핑 ... 도 문제 없을텐데?
rel. 외연성,extensionality duck_test
Twins:
duck_typing = https://en.wiktionary.org/wiki/duck_typing
Duck_typing = https://simple.wikipedia.org/wiki/Duck_typing
Duck_typing = https://en.wikipedia.org/wiki/Duck_typing
duck typing
duck typing
덕 타이핑
define: duck typing
= http://wiki.c2.com/?DynamicTyping
// 아래 둘은 type_strength ...라는 개념으로 분류가능. https://rosettacode.org/wiki/Type_strength 에 따르면 PL들은 strongly typed / weakly typed / untyped 셋으로 구분.
// 아래 둘 비교. https://wiki.python.org/moin/StrongVsWeakTyping
// 아래 둘 비교. https://wiki.python.org/moin/StrongVsWeakTyping
weak_typing = https://en.wiktionary.org/wiki/weak_typing
"A system that does not place any restriction on the interactions between objects of different data types." (2023-11-18)
WeakTyping = http://wiki.c2.com/?WeakTypingstrong_typing = https://en.wiktionary.org/wiki/strong_typing
"A system that places any of various kinds of restriction on the interactions between objects of different data types." (2023-11-18)
StrongTyping = http://wiki.c2.com/?StrongTypingweak/strong, static/dynamic을 비교한 사분면,quadrant은 typing_quadrant
{
https://wiki.c2.com/?TypingQuadrant
{
https://wiki.c2.com/?TypingQuadrant
8. MISC ¶
C언어(+ 거기서 유래한 C++) 표준 types 이름을 _t suffix 로 하는 관례가 있다. 그냥 int long ...을 쓰는 것보다 확실히 명확함.
- size_t
- ssize_t
- ptrdiff_t
- 그러고보니 유닉스도.
- pid_t
- uint8_t ....이건 size(비트,bit 수)가 확실히 명확함. 이게 너무 늦게 C 표준에 추가된 듯 싶다, 요새 언어는 이걸 기본 탑재하고 나오는 추세. Rust 등
MFC에서 클래스는 C prefix 붙이고
(hungarian notation같은) identifier name에 뭔가를 수식하는 관습을 최대한 버리려고 노력한(? 내생각) C#이지만 인터페이스,interface를 에서는 I prefix 로 시작하는 관습이... chk
갈수록 prefix/suffix notation/convention같은것 배제하고 클래스/타입 이름은 대문자로 시작하는, 인스턴스/변수 이름은 소문자로 시작하는 것으로 구분하는게 그냥 대세인듯(보기 편하니까? readability)
이상 conventions는 sigil로 명확히 구분 가능한 PL에서는 의미가 없는 듯 싶고
아무튼 이런거 나중에 모으거나 정리하거나 삭제하거나.
9. MKLINK ¶
클래스,class
인스턴스,instance
인스턴스화 instantiation ? - 인스턴스화,instantiation - 보통 Object instantiation 연산자,operator는
구조체,struct
변수,variable
펑션,function - return type return_type
상수,constant
객체,object
값,value
ADT abstract_data_type - 추상_자료형
자료구조,data_structure - 자료_구조 자료구조
collection
상속,inheritance
인스턴스,instance
인스턴스화 instantiation ? - 인스턴스화,instantiation - 보통 Object instantiation 연산자,operator는
new
. 이거 C++에서 유래? chk구조체,struct
변수,variable
펑션,function - return type return_type
상수,constant
객체,object
값,value
ADT abstract_data_type - 추상_자료형
자료구조,data_structure - 자료_구조 자료구조
collection
상속,inheritance
10. .NET System.Type class ¶
isa 클래스,class
Type 클래스 (System) | Microsoft Learn
https://learn.microsoft.com/ko-kr/dotnet/api/system.type?view=net-8.0
Type 클래스 (System) | Microsoft Learn
https://learn.microsoft.com/ko-kr/dotnet/api/system.type?view=net-8.0
rel 반영,reflection
----
- [1] Composite_data_type
- [2] Gilmore PHP 4
- [3] Nominal_type_system첫 문단 마지막 문장