Christopher Shank
12/23/2022, 5:48 PMThis chapter gives an introduction to all the main programming paradigms, their un- derlying concepts, and the relationships between them. We give a broad view to help programmers choose the right concepts they need to solve the problems at hand. We give a taxonomy of almost 30 useful programming paradigms and how they are related. Most of them differ only in one or a few concepts, but this can make a world of difference in programming. We explain briefly how programming paradigms influence language design, and we show two sweet spots: dual-paradigm languages and a definitive lan- guage. We introduce the main concepts of programming languages: records, closures, independence (concurrency), and named state. We explain the main principles of data abstraction and how it lets us organize large programs. Finally, we conclude by focus- ing on concurrency, which is widely considered the hardest concept to program with. We present four little-known but important paradigms that greatly simplify concurrent programming with respect to mainstream languages: declarative concurrency (both ea- ger and lazy), functional reactive programming, discrete synchronous programming, and constraint programming. These paradigms have no race conditions and can be used in cases where no other paradigm works. We explain why for multi-core processors and we give several examples from computer music, which often uses these paradigms.https://www.info.ucl.ac.be/~pvr/VanRoyChapter.pdf
More is not better (or worse) than less, just different.
– The paradigm paradox.
Jack Rusher
12/23/2022, 5:55 PMChristopher Shank
12/23/2022, 6:41 PMDuncan Cragg
12/23/2022, 7:31 PMKonrad Hinsen
12/23/2022, 7:44 PMDuncan Cragg
12/23/2022, 8:07 PMKonrad Hinsen
12/24/2022, 9:32 AMDuncan Cragg
12/24/2022, 2:18 PMKonrad Hinsen
12/25/2022, 8:38 AMDuncan Cragg
12/25/2022, 11:23 PMKonrad Hinsen
12/26/2022, 7:58 AMDuncan Cragg
12/26/2022, 12:27 PMKonrad Hinsen
12/26/2022, 8:14 PM