├── CoC.md ├── LICENSE.md └── README.md /CoC.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, gender identity and expression, level of experience, 9 | education, socio-economic status, nationality, personal appearance, race, 10 | religion, or sexual identity and orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at wjb@williamjbowman.com. All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html 72 | 73 | [homepage]: https://www.contributor-covenant.org 74 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License. 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # A Thesaurus For Programming Languages Jargon 2 | 3 | 4 | For now, this is list of synonyms for technical words that I want to stop 5 | keeping in my head and allow people to publicly contribute to/comment on. 6 | Maybe one day I'll turn it into structured data that a tool can consume. 7 | 8 | There's also a wiki for discussion: https://github.com/wilbowma/pl-thesaurus/wiki 9 | 10 | # Thesaurus 11 | 12 | - dependent function type, pi type, dependent product type, universal quantifier 13 | - This may be at odds with one's intuition, since, in non-dependent settings, product type can mean pair. 14 | It may help to note that we can implement (lazy) "product types" as a function from a tag to either the first or second component, whose type depends on the tag---that is, product types can be implemented with as a dependent functions (with `bool`, `if`, and large elimination). 15 | ``` 16 | A * B = Pi (x : bool) (if x then A else B) 17 | pi_1 M = M true 18 | pi_2 M = M false 19 | (M_1,M_2) = lambda x. if x then M_1 else M_2 20 | ``` 21 | - dependent pair type, sigma type, dependent sum type, existential quantifier, subset type, refinement type 22 | - This may be at odds with one's intuition, since, in non-dependent settings, sum type can mean tagged union. 23 | It may help to note that we can implement sum types as a pair of a tag plus its computational content, whose types depends 24 | on its tag---that is, sum types can be implemented with dependent pairs (with `bool`, `if`, and large elimination). 25 | ``` 26 | A + B = Sigma (x: bool) (if x then A else B)' 27 | inl y = (true, y) 28 | inr z = (false, z) 29 | case x of { inl y -> M | inr z -> N } = if (pi_1 x) then (M[pi_2 x]) else (N[pi_2 x]) 30 | ``` 31 | - pair (type), product (type), tuple (type) 32 | - sum (type), disjoint union (type), tagged union (type), variant (type), coproduct (type) 33 | - dependent types, type dependency 34 | - The latter form can be confusing because dependency has been used to refer to information flow, as in the Dependency Core Calculus. 35 | - certifying compilation, translation validation 36 | - Adjunction 37 | - When the categories are Posets, an adjunction is called a *Galois connection* 38 | - Monad, (Kleisli) triple, S4 possibility modality 39 | - When the category is a poset, a monad is called a *closure operator* 40 | - Strong Monad, S4 lax modality 41 | - Comonad, S4 necessity modality 42 | - When the category is a poset, a comonad is called an *interior operator* 43 | - Coreflection 44 | - When the categories are posets, it is called a Galois Insertion or Galois Injection 45 | - When the posets are domains/cpos, it is called an *embedding-projection pair* 46 | - Reflection (category theory) 47 | - when the categories are posets, it is called a Galois Surjection 48 | - Right adjoint (category theory) 49 | - In order theory, the right adjoint of a Galois connection is called the *upper adjoint* 50 | - In abstract interpretation, the right adjoint of a Galois connection is called the *Concretization function* 51 | - Left adjoint (category theory) 52 | - In order theory, the left adjoint of a Galois connection is called the *lower adjoint* 53 | - In abstract interpretation, the left adjoint of a Galois connection is called the *abstraction function* 54 | - metavariable, unification variable, flexible variable 55 | - variable, program variable, rigid variable 56 | - polymorphic instantiation, first-class polymorphism, impredicative polymorphism, impredicativity 57 | - This refers to being able to write types like `List (forall a. a -> a)` 58 | - While in common usage, 'impredicative polymorphism' and especially 'impredicativity' can be confused with 'impredicative universes', so is discouraged by some 59 | - impredicative universes, impredicativity 60 | - ⊤⊤-closure, ⊥⊥-closure, biorthogonality 61 | - axiom K, equivalence reflection, propositional extensionality 62 | 63 | # References 64 | 65 | - Intuitionistic S4 Modal Type Theory 66 | - [Pfenning and Davies, A Judgmental Reconstruction of Modal Logic](https://www.cs.cmu.edu/~fp/papers/mscs00.pdf) 67 | --------------------------------------------------------------------------------