conferences | speakers | series

Concept Programming, from ideas to code

home

Concept Programming, from ideas to code
FOSDEM 2020

Programming is the art of turning ideas into code. Ideas and code do not live in the same space. Any translation is lossy. Concept programming is a cross-language approach that focuses on this translation process, and helps identify often overlooked classes of issues.

Ideas and code do not live in the same space. Consequently, any translation is lossy. But this loss is not immediately visible. For example, how does your programming language coerce you into coding a concept as simple as "maximum" or list in a way that is generally full of warts? Concept programming is a cross-language approach that focuses on this translation process, and helps identify often overlooked classes of issues. It separates the "concept space" and the "code space", and focuses on how the mechanics in one space translate (or not) into the other.

It introduces a few core ideas:

  • Syntactic noise is the difference in look between code and concept. For example, in Lisp, you write (+ 1 2)

  • Semantic noise is the difference in behavior between code and concept. For example, in C, text is null-terminated.

  • Bandwidth is the amount of the concept space covered by the code. For example, the "+" operator has higher bandwidth in C++ than in C

  • Signal/noise ratio is the amount of code that does not carry any useful concept. For example, curly braces and semi-colons in C.

Speakers: Christophe de Dinechin