Vadim Zaytsev aka @grammarware

DYOL: Design Your Own LanguageType Analysis

Caveat emptor: these individual card pages are work in progress, and their content is in no way final!

Type Analysis

Components can be identified, explicitly or automatically, to belong to a particular type. Among other things, the type determines applicability and compatibility of components with one another. In complex scenarios (like a monadic bind) hard to understand components can only fit together in one possible way. Type equivalence rules can be based on names, structure, scopes, etc.

Matched affordances

The original design card was about making the physical form of the designed object compatible with other parts of the system only in one particular way, such as making bevelled corners on SIM cards, flash cards and connectors that make sure they cannot be inserted the wrong way around The type theory plays a similar role in software languages, making program/model components fit only when they conform to the type-imposed expectations.

Synonyms and similar terms

Type Checking
Can be used as a synonym for type analysis, but also as an umbrella term for type analysis and synthesis: all rules and actions around the type systems.
Type Synthesis
A complementary set of techniques to type analysis, used in software language implementations. The main difference is the direction of type computations: bottom up in synthesis and top down in analysis.
Type System
The set of rules combining all the types available in a software language, into one system with subtypes, conversions, etc.

Related cards

The DYOL toolkit was created and is maintained by Dr. Vadim Zaytsev a.k.a. @grammarware. Page last updated in March 2021.