paradigms   252

« 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
Programming Paradigms and Beyond
Overview of different programming paradigms. Especially from the teaching point-of-view.
programming  languages  paradigms  teaching 
june 2018 by drmeme

« earlier    

related tags

(programming  ***  2014  2017  6  abstraction  actors  agile  alan.kay  alternate_history  analysis  api  apis  architecture  article  backlinks  c#  c++  change  chile  choice  choose  class  clojure  cocoa  code  coding  comparison  complexity  compsci  computation  computer  computerscience  computing  concatenative  concurrency  concurrent  conventions  conways  course  creativity  culture  curry  d3  database  debate  declarative  decoupling  deschooling  design  designinspiration  determinism  devel  development  disagreement  distributed  docencia  docs  economics  education  edudsn  edx  engineering  erlang  ethics  fall  favorites  fbp  flow  flow_based_programming  for  forgotten  formalism  fowler  fp  freedom  fsharp  functional-programming  functional  fundamentalism  future  github  go  golang  graphql  grpc  gui  history  hn  how  howto  howwelearn  hub  hypertext  ide  ideas  idiom  imperative  important  incidental  innovation  inter  interactive  international  iq  java  javascript  joaquínaldunate  js  ken-robinson  landscapes  language)  language  languages  law  learning  lisp  list  literacy  literateprogramming  markdown  martin  mentalmodels  microservices  modeling  models  monolithic  mooc  mvc  mvvm  node.js  noflo  object-oriented-programming  ontology  oop  overview  oz  paper  paradigm  paradigmshifts  patterns  pd  pdf  perl  philosophy-of-engineering  philosophy  philosophy_of_science  pick  plt  pop  presentation  problemsolving  programinglanguages  programming-languages  programming  programming_languages  programminglanguages  projects  prolog  protocol-oriented  reactive  readit  reddit  research  rest  restful  restish  robots  rpc  ruby  rust  samharris  scheme  schooling  schools  science  six  smart-program  society  software  ssg  state  stephenwolfram  style  sweng  swift  swiftlang  switching  systems  teaching  technology  thinking  thisvsthat  to  to:read  topology  typology  ui  unix  unschooling  upenn  ux  verilog  videos  visual  visualization  web_avanzado  webdev  wikipedia  wolfram  worseisbetter 

Copy this bookmark: