Expression-oriented programming languages

Expression-oriented programming languages

An expression-oriented programming language is a programming language where (nearly) every construction is an expression and yields a value. Macro definitions, preprocessor commands, and declarations are often treated as statements in expression-oriented languages. Some expression-oriented languages introduce a void return type to be yielded by expressions that have only side-effects.

ALGOL 68 is an example of an expression-oriented language. Pascal is "not". All functional programming languages are expression-oriented.

Expression-orientation can be confusing in imperative programming languages, as many commands used normally as statements are in fact expressions. For example, assignment in the C programming language is an expression, not a statement. This allows for the following confusion: if (x = 1) { ... } else { /* this branch is never executed */ }The condition of the if is the result of the expression x = 1, which is 1. Thus the if will always execute the true branch. The above is often confused with: if (x = 1) { ... /* executed if x is 1 */ } else { ... /* executed if x is not 1 */ }For this reason, many programmers write the constant first in conditionals, as 1 = x is a syntax error, and mistyping = for = will not result in a bug.


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Look at other dictionaries:

  • Comparison of programming languages (object-oriented programming) — Programming language comparisons General comparison Basic syntax Basic instructions Arrays Associative arrays String operations …   Wikipedia

  • Object-oriented programming — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concurrent computing …   Wikipedia

  • Comparison of programming languages — Programming language comparisons General comparison Basic syntax Basic instructions Arrays Associative arrays String operations …   Wikipedia

  • Stack-oriented programming language — A stack oriented programming language is one that relies on a stack machine model for passing parameters. Several programming languages fit this description, notably Forth and PostScript, and also many Assembly languages (but on a much lower… …   Wikipedia

  • Comparison of programming languages (basic instructions) — Programming language comparisons General comparison Basic syntax Basic instructions Arrays Associative arrays String operations …   Wikipedia

  • Subject-oriented programming — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concurrent computing …   Wikipedia

  • Comparison of programming languages (mapping) — Programming language comparisons General comparison Basic syntax Basic instructions Arrays Associative arrays String operations …   Wikipedia

  • Comparison of programming languages (list comprehension) — Programming language comparisons General comparison Basic syntax Basic instructions Arrays Associative arrays String operations …   Wikipedia

  • Template Oriented Programming — In computer programming, Template oriented programming (TOP) is a programming paradigm that focuses on templates to accomplish a programmer’s goals. Template oriented programming is a more general version of generic programming in which the… …   Wikipedia

  • Aspect-oriented programming — (AOP) is a programming paradigm that increases modularity by allowing the separation of cross cutting concerns.Separation of concerns entails breaking down a program into distinct parts (so called concerns , cohesive areas of functionality). All… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”