Skip to content

Latest commit

 

History

History
50 lines (34 loc) · 3.96 KB

july.md

File metadata and controls

50 lines (34 loc) · 3.96 KB

July 2022

Suffocating your programs with type definitions means you've already decided that whatever fancy architecture you've built should not be changed without a suitable amount of analysis paralysis.

Find of the Month

  • Jeremy Bowers (2020), Why Duck Typing Is Safehttp://www.jerf.org/iri/post/2954
    1. The interface must be simple enough to accidentally implement.
    2. The objects have to get mixed up.
    3. Something bad has to actually happen.

    I'm not claiming the combination of these three things is impossible. It isn't. My point is that this is exceedingly rare, and it should be treated as such. It is not something one should spend precious, precious design budget on in a language's design to avoid.

@jcubic repos

Couple pretty interesting concepts here...

Logic

  • Spencer Mortensen (2020), Logic as Algebrahttps://spencermortensen.com/articles/boolean-algebra/

    The algebraic method [of constructing proofs] treats logic like high school algebra, where the values are limited to {0,1} instead of C, and the operators are the boolean operators. Constructing a proof amounts to solving a system of equations.

  • Prabhakar Ragde (2022), Logic and Computation Intertwinedhttps://cs.uwaterloo.ca/~plragde/flaneries/LACI/

    This flânerie is about the formalization of the idea of proof, and its application in computer science.

Model Verification

  • eclipse.org (2022), The Epsilon Unit Testing Framework (EUnit)https://www.eclipse.org/epsilon/doc/eunit/

    EUnit is an unit testing framework specifically designed to test model management tasks, based on EOL and the Ant workflow tasks. It provides assertions for comparing models, files and directories. Tests can be reused with different sets of models and input data, and differences between the expected and actual models can be graphically visualized. This chapter describes how tests are organized and written and shows two examples of how a model-to-model transformation can be tested with EUnit. This chapter ends with a discussion of how EUnit can be extended to support other modelling and model management technologies.

  • dafny-lang (2022), dafny: verification-aware programming languagehttps://github.com/dafny-lang/dafny

    Dafny is a verification-ready programming language. As you type in your program, Dafny's verifier constantly looks over your shoulder, flags any errors, shows you counterexamples, and congratulates you when your code matches your specifications. When you're done, Dafny can compile your code to C#, Java, JavaScript or Go (more to come!), so it can integrate with your existing workflow.

Diagrams

TLA+