simplification   365
A Formal Verification of Rust's Binary Search Implementation
Part of the reason for this is that it’s quite complicated to apply mathematical tools to something unmathematical like a functionally unpure language (which, unfortunately, most programs tend to be written in). In mathematics, you don’t expect a variable to suddenly change its value, and it only gets more complicated when you have pointers to those dang things:

“Dealing with aliasing is one of the key challenges for the verification of imperative programs. For instance, aliases make it difficult to determine which abstractions are potentially affected by a heap update and to determine which locks need to be acquired to avoid data races.” 1

While there are whole logics focused on trying to tackle these problems, a master’s thesis wouldn’t be nearly enough time to model a formal Rust semantics on top of these, so I opted for a more straightforward solution: Simply make Rust a purely functional language!

Electrolysis: Simple Verification of Rust Programs via Functional Purification
If you know a bit about Rust, you may have noticed something about that quote in the previous section: There actually are no data races in (safe) Rust, precisely because there is no mutable aliasing. Either all references to some datum are immutable, or there is a single mutable reference. This means that mutability in Rust is much more localized than in most other imperative languages, and that it is sound to replace a destructive update like

p.x += 1
with a functional one – we know there’s no one else around observing p:

let p = Point { x = p.x + 1, ..p };
techtariat  plt  programming  formal-methods  rust  arrows  simplification  reduction  divide-and-conquer  correctness  project  state  functional  concurrency  direct-indirect  pls  examples
29 days ago by nhaliday
Making it easier to program and protect the web | MIT News
Adam Chlipala, an associate professor in MIT’s Department of Electrical Engineering and Computer Science and Computer Science (EECS) and Computer Science and Artificial Intelligence Laboratory (CSAIL), develops tools to help programmers generate and mathematically prove algorithms for cryptography, apps, and web services.
programming  theory  software  quality  security  mit  simplification
7 weeks ago by gilberto5757
ellipsis - Why is the subject omitted in sentences like "Thought you'd never ask"? - English Language & Usage Stack Exchange
This is due to a phenomenon that occurs in intimate conversational spoken English called "Conversational Deletion". It was discussed and exemplified quite thoroughly in a 1974 PhD dissertation in linguistics at the University of Michigan that I had the honor of directing.

Thrasher, Randolph H. Jr. 1974. Shouldn't Ignore These Strings: A Study of Conversational Deletion, Ph.D. Dissertation, Linguistics, University of Michigan, Ann Arbor

...

"The phenomenon can be viewed as erosion of the beginning of sentences, deleting (some, but not all) articles, dummies, auxiliaries, possessives, conditional if, and [most relevantly for this discussion -jl] subject pronouns. But it only erodes up to a point, and only in some cases.

"Whatever is exposed (in sentence initial position) can be swept away. If erosion of the first element exposes another vulnerable element, this too may be eroded. The process continues until a hard (non-vulnerable) element is encountered." [ibidem p.9]

Dad calls this and some similar omissions "Kiplinger style": https://en.wikipedia.org/wiki/Kiplinger
q-n-a  stackex  anglo  language  writing  speaking  linguistics  thesis  trivia  cocktail  parsimony  compression  simplification  multi  wiki  organization  technical-writing  protocol-metadata
march 2019 by nhaliday
Gitless
Gitless: a simple version control system built on top of Git
git  simplification  ui
november 2018 by floehopper
Advanced Visualization with react-vis – Towards Data Science
The line simplification trick matched with voroni selection is a neat trick
voroni  line  simplification  chart  diagram  javascript  webdev
may 2018 by asteroza
mourner/simplify-js: High-performance JavaScript polyline simplification library
Line edge simplification library. Originally for simplifying stuff like coastlines when zoomed out, but has relevant properties for making line charts easier/faster
canvas  javascript  line  simplification  coordinate  compressor  path  polygon  2D
may 2018 by asteroza
Data looks better naked — Darkhorse Analytics | Edmonton, AB
To illustrate how less ink is more effective, attractive and impactive we put together this animated gif. In it we start with a chart, similar to what we've seen in many presentations, and vastly improve it with progressive deletions and no additions.
chart  information  design  graph  simplification  tufte
march 2018 by fjordaan

Copy this bookmark:

description:

tags: