recentpopularlog in


« earlier   
Programming paradigms for dummies: what every programmer should know
Adrian Collyer's review of Peter Van Roy's 2009 paper (and also book).

Two key properties of a programming paradigm are whether or not it has observable non-determinism, and how strongly it supports state.

Non-determinism is observable if a user can see different results from executions that start at the same internal configuration. This is highly undesirable… we conclude that observable nondeterminism should be supported only if its expressive power is needed.

Regarding state, we’re interested in how a paradigm supports storing a sequence of values in time. State can be unnamed or named; deterministic or non-determinstic; and sequential or concurrent. Not all combinations are useful!

The four most important programming concepts are records, lexically scoped closures, independence (concurrency) and named state.
programming  paradigms  programminglanguages  determinism  state 
february 2019 by drmeme
Category:Programming paradigm/Reflective - Rosetta Code
A programming language is said to be reflective if it has the integral ability to observe or change its own code as well as all aspects of its programming language (syntax, semantics, or implementation) at runtime. [1] Reflective programming languages includes features that allow it to ask about the current state of the program, e.g., by being able to inspect what classes are defined, what methods those classes define, or what instances of those classes have been created. This makes it far easier to write test harnesses and dynamic programs. However, one issue with reflective programming languages is that it is less clear when a part of the program has become actually unreachable as reflective techniques could be used to revive a reference to it.
paradigms  typology  programming_languages 
november 2018 by dicewitch

Copy this bookmark:

to read