"... You need to understand the core language: is it algorithmic, functional, object-oriented? ..." - Effective Java, Joshua Bloch, 2ndEd. 2008. Foreword, p xiii

Functional: Lisp, OO: Java, but what is ( would Bloch mean by ) an algorithmic programming language?


I assume the author want to speak about imperative programming language. A (quite complete) map of the different programming paradigms and their relationship that a language may support is available here. An important note is that a language may support (more or less well) several paradigms.

  • +1 I like imperative better than procedural even though they mean the same thing. It's a good point about a single language supporting more than one style. – Caleb Aug 13 '11 at 6:47

Perhaps "procedural" is what's intended. Languages like C and Pascal, in which procedures are the main tool for structuring a program, are often called "procedural programming languages." You can think of a procedure as an implementation of an algorithm, so "algorithmic" would seem like a reasonable synonym for "procedural".


Most programming languages are algorithmic, like OO, functional, imperative and all that. The only type of languages I can think of that could be said being non-algorithmic are the reactive languages. But even the reactive languages are compiled to the algorithmic machine languages that is simulated by the reactive processor hardware, so under the hood even reactive languages are in fact algorithmic. The only way to really get away from algorithmic programming is to use processors with reactive machine language. They should be very common in the future.

Not the answer you're looking for? Browse other questions tagged or ask your own question.