• A programming language can be studied from different aspects: syntax, semantics, and pragmatics.

    Does the expressive power of a programming language belong to the semantics of a programming language?

  • What does the expressive power of a programming language include? For example, is its expressive power all about Turing-completeness of the programming language?


  • $\begingroup$ I don't think that one can give an objective definition of expressive power that can distinguish between Turing complete languages. $\endgroup$ – adrianN Oct 5 '16 at 7:24
  • $\begingroup$ Programming languages don't have pragmatics, unless programming language theorists have co-opted that term to mean something other than what it means to linguists. Pragmatics is the study of how context influences meaning, such as how you tell whether somebody who says, "Yeah, right!" is enthusiastically agreeing or sarcastically disagreeing. Programming language semantics is fixed and doesn't depend on such context. $\endgroup$ – David Richerby Oct 5 '16 at 11:30

In a nutshell, the "expressive power" of a programming language, defined as the breadth of ideas that can be directly represented and communicated in it, is an issue that belongs to the semantic level.

In principle, the behavior of a program written in any language - that can be formally studied - is completely describable at the syntactic level, so you could say that any language that is Turing-complete is also equivalent in "expressive power" (in this wider sense).

This approach is not very practical, though. Very quickly, meaning becomes an important conceptual metaphor that allows us to think about programs and languages in a powerful way, and there's even an entire discipline dedicated just to this endeavor.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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