Elements of Programming

Stanford · 45K views · 2011 · 1:18:21

Open on YouTube

C, C++, Rust, Go & systems languagesProgramming language designSoftware architecture & designtalk

Why Stack Overflow recommends it

Stack Overflow users link it when explaining generic programming, the STL's design lineage, and how mathematics relates to programming, citing Stepanov directly.

Recommended by 3 people across 3 different months, 2013 to 2024.

What it is

A November 2010 Stanford talk in which Alexander Stepanov and Paul McJones present their book Elements of Programming. They argue that programming is a mathematical discipline and explain the thinking behind generic programming and the book's approach.

What people said

Strong rec Evgeny Panasyuk · 2013-04 · Stack Overflow · on “Is there a standard abstraction for semirings or monoids in C++?”

SGI STL [LINK] has MonoidOperation [LINK] concept. For instance power [LINK] function is implemented for MonoidOperation . Boost.Graph [LINK] library also defines Monoid concept [LINK] . In addition to already suggested [LINK] Elements of Programming [LINK] you may look to Notes on Programming [LINK] by Alexander Stepanov (one of authors of EoP ). Notes are freely available, and have some overlap with EoP book. There are style difference between EoP and Notes - EoP is very terse like math textbook, but Notes are more "informal" - there some small stories, etc. By the way, both have some discussion of referenced above power function implementation. P.S. there are great talks by Alexander Step

Recommends jjpcondor · 2014-03 · Stack Overflow · on “"Elements of Programming" real world examples?”

It is good to see Stepanov's talk given at StanfordUniversity. Is related to his book Elements of Programming. hhttps: [this video] He gives his view how programming and mathematics are related. I find it extremely interesting that Sean Parent (from Adobe Photoshop team) in 2007 has stated that: Photoshop has 3 millions LOC and by using STL (Standard Template Library) methodology it could be rewritten in only 30 kLOC, 100 times less - compression of magnitude 2! [LINK] I find it fascinating, that STL port (or should it be called rewrite or perhaps refactoring) enables such high, upto 2 orders of magnitude compression of source code of huge applications like MSWord or Adobe Photoshop. Here is an I

Recommends Dave Abrahams · 2024-10 · Stack Overflow · on “What is the meaning of "generic programming" in c++?”

Generic programming is *not* about writing code that is evaluated at compile time and is very specifically *not* template metaprogramming—“perish the thought,” says Alexander Stepanov [this video] , the father of generic programming. This post [LINK] characterizes generic programming correctly.