Skip to content

Instantly share code, notes, and snippets.

@michaeljklein
Last active October 31, 2017 21:32
Show Gist options
  • Save michaeljklein/e0263bd14915fb08617c2c7f32518a34 to your computer and use it in GitHub Desktop.
Save michaeljklein/e0263bd14915fb08617c2c7f32518a34 to your computer and use it in GitHub Desktop.

polymorphism:

categorical polymorphism: use with any categories that fit the explicit requirements

  • categorical polymorphism: use with any categorization (type-system) of categories that fits
  • durational polymorphism: use with any length of categories (digraph width) that fits
  • semantic polymorphism: use with any categorical semantics (associative + identity) that fit
  • natural polymorphism: use with any categorical enumeration (e.g. categorical induction) that fits

durational polymorphism: use with any models of duration that fit the explicit requirements

  • categorical polymorphism: use with any categorization (type-system) of durations that fits
  • durational polymorphism: use with any durational length (number of epsilons) that fits
  • semantic polymorphism: use with any durational semantics (partial-order) that fit
  • natural polymorphism: use with any durational enumeration (e.g. poset-distance) that fits

literal polymorphism: use with any system of literals that fit the explicit requirements

  • categorical polymorphism: use with any categorization (type-system) of literals that fits
  • durational polymorphism: use with any literal length (number of units) that fits
  • semantic polymorphism: use with any literal semantics (total-order) that fit
  • natural polymorphism: use with any literal enumeration (e.g. tree-depth) that fits

natural polymorphism: use with any model of natural numbers that fits the explicit requirements

  • categorical polymorphism: use with any categorization (type-system) of natural numbers that fits
  • durational polymorphism: use with any natural number duration (finite set cardinality) that fits
  • semantic polymorphism: use with any natural number semantics (..) that fit
  • natural polymorphism: use with any natural number enumeration (e.g. natural inductive series) that fits

The paper is Flock 0.n

  • Cat 0.n
  • Dur 0.n
  • Lit 0.n
  • Nat 0.n

A complete specification of an implementation/parser/compiler/etc is Flock 1.n

  • Cat 1.n
  • Dur 1.n
  • Lit 1.n
  • Nat 1.n
Flock.Cat.Dur.Lit.Nat

We call "the Flock language" the singular language which is intended to unify all Flock languages

  • Likewise, we may refer to "The Haskell-Flock language", which is intended to unify Flock's relation to Haskell
  • Likewise, we may refer to "The Ruby-Flock language", which is intended to unify Flock's relation to Ruby
  • Likewise, we may refer to "The C-Flock language", which is intended to unify Flock's relation to C
  • Likewise, we may refer to "The Circuit-Flock language", which is intended to unify Flock's relation to Circuits
  • Likewise, we may refer to "The Category-Theory-Flock language", which is intended to unify Flock's relation to Category theory
  • In general, we call the language which is intended to unify Flock's relation to an existing language, "Lang": "Lang-Flock"
  • In general, we call the language which is intended to unify Flock's relation to a language within Flock, "Sublang", "Flock-Sublang"
    • These may be combined: "Lang-Flock-Sublang", e.g. "Haskell-Flock-Categorical"
@michaeljklein
Copy link
Author

michaeljklein commented Oct 22, 2017

Working title: `Flock: A Free Language of Categorical Knowledge"

In honor:

  • In honor of Alan Turing, we call the language intended to unify Flock with Turing machines simply "Turing-Flock".
  • In honor of Alonzo Church, we call the language intended to unify Flock with lambda calculus simply "Church-Flock".
  • In honor of Albert Einstein, we call the language intended to unify Flock with Einsteinian physics simply "Einstein-Flock".

One might call the paper "Michael-Flock", and the resulting language "Klein-Flock". Thus the paper is: "Klein-Michael-Flock" or "Klein, Michael: Flock", or more specifically: "Klein, Michael J.: Flock"

http://www.evanmiller.org/a-review-of-perl-6.html

Perl 6 lacks a strong “hook”, and it’s also kind of slow.
It’s therefore difficult, but not impossible, to pique the reader’s interest with a hold-my-beer demonstration.
(If you’d like one, see Why I’m Learning Perl 6.)
Instead, I’ll start with small examples.

To be considered a perfect implementation of Flock, you must specify the implementation's relation to the model exactly and explicitly, prove the implementation, etc.
But perfection is an ideal and Flock has room for imperfection.

  • For example, computation may be probabilistic, deterministic, high-level, low-level, etc.
Perl 6 really consists of a language specification (Perl 6.c; the c is for Christmas),
a compiler (called Rakudo),
and a virtual machine (called MoarVM).
There’s a reason for the multiplicity of monikers:
  the Perl 6 folks believe no implementation ought to be privileged over the others.

Flock really is just a language specification, with explicitly prior languages as super-languages and explicitly dependent languages as sub-languages.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment