To avoid reinventing the discussion wheel, here is a list of OverloadedTypeRelatedTerms:
Type:
- An "explicit" type as typically tracked by a type-indicator-like "tag" or marker. Typically examinable via functions with names like getType() or typeName() that return a single name of a type, such as "numeric". Note that not all dynamic languages have a (detectable) explicit type indicator.
- An "implicit" type that can be re-phrased as "can be interpreted as". For example, the is_numeric() function in PHP may use parse-based examination of the variable value or contents such that a string with digits "can be interpreted as" a number. Multiple is_type_X()-like functions may return True at the same time. For example "0" (zero) may be a valid Boolean literal (or value) in some languages while also "being" a number. In other words, is_numeric("0") and is_boolean("0") may both return True.
Value:
- The "internal" result of an expression in a given language. In some models or implementation styles, an explicit type indicator is associated with these (see above). Generally internal values are not examinable directly via I/O, although some debuggers may show a representation of them in part or in whole.
- An alias for "literal". Generally considered incorrect usage, but common nevertheless. (Literals have precise definitions per syntax rules for a given language.)
- Parts of or the entire input and/or output. For example, a given field in a CSV (comma-delimited) output file could be called a "value". The definition of such a "value" generally is domain-specific or application-specific. For example, what's considered a "value" in a CSV file is from the perspective of the CSV definition or standard, and not the programming language itself (unless it perhaps has its own CSV library).
(More to come...)
--top
CategoryLanguageTyping, CategoryDefinition