Programming idiom
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)
|
A programming idiom or code idiom is a syntactic fragment that recurs frequently across software projects and has a single semantic role [1], often expressing a special feature of a recurring construct in one or more programming languages. Developers recognize programming idioms by associating and giving meaning to one or more code fragments. The idiom can be seen as a concept underlying a pattern in code, which is represented in implementation by contiguous or scattered code fragments. These fragments are available in several programming languages, frameworks or even libraries. Generally speaking, a programming idiom is a natural language expression of a simple task, algorithm, or data structure that is not a built-in feature in the programming language being used, or, conversely, the use of an unusual or notable feature that is built into a programming language.
Knowing the idioms associated with a programming language and how to use them is an important part of gaining fluency in that language, and transferring knowledge in the form of analogies from one language or framework to another.
The adverbial or adjectival use of the term often takes the meaning of using a programming language in a typical way. For example, an idiomatic way to manage dynamic memory in C would be to use the C standard library functions malloc and free. Such code would be well intelligible to somebody familiar with C, and would be unlikely to cause issues with software portability to different computing platforms. On the other hand, if the code would forgo the use of these standard functions, and instead request memory using the system call sbrk to achieve some special behaviour, that could be considered non-idiomatic; it would require more effort to understand and not be portable to non-Unix-like systems.
Examples of simple idioms
Printing Hello World
One of the most common starting points to learn a program or notice the syntax differences between a known language and a new one.[2]
It has several implementations, among them the code fragments for C++:
std::cout << "Hello World\n";
For Java:
System.out.println("Hello World");
Inserting an element in an array
This idiom helps developers understand how to manipulate collections in a given language, particularly inserting an element x at a position i in a list s and moving the elements to its right.[3]
Code fragments:
For Python:
s.insert(i, x)
For JavaScript:
s.splice(i, 0, x);
For Perl:
splice(@s, $i, 0, $x)
See also
- Algorithmic skeleton
- Embedded SQL (kind of "standard idiom" to use in any language)
- Idiom
References
- ^ "Mining Idioms from Source Code. Miltiadis Allamanis, Charles A Sutton. FSE 2014: Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering November 2014 Pages 472–483". arxiv.org.
- ^ "Print Hello World". www.programming-idioms.org.
- ^ "Insert element in list". www.programming-idioms.org.
External links
- programming-idioms.org shows short idioms implementations in most mainstream languages.
- C++ programming idioms from Wikibooks.