Lecture
A software idiom is a way of expressing some non-elementary construct typical of one or more programming languages. Generally speaking, an idiom is a typical way to express a task, an algorithm or a data structure that is not embedded in the language at the primitive level, or vice versa, a non-trivial way to use the built-in language elements.
The term is often used in a broad sense, including as a synonym for the term design pattern, and knowledge of idioms in this case often serves as an indicator of fluency in this language.
In a narrower sense, an idiom can be a reproduction in the language of elements of a semantically different language, which in this language can also be applicable, but not provoked by the language itself (that is, not included in its idioms). From this position, many patterns in object-oriented design are considered as ideomatic reproduction of elements of functional languages [.
In languages like BASIC, the idiom for a single increment of a variable's value is:
i = i + 1
A shortened version in C-like languages:
i + = 1; / * i = i + 1; * / ++ i; / * same result * / i ++; / * same result * /
Pascal contains a procedure for a similar purpose:
i: = i + 1; Inc (i); (* same result *)
Idiom copy-and-swap
In most languages, the exchange of values between two variables is as follows:
temp = a; a = b; b = temp;
In Perl, it looks more elegant:
($ a, $ b) = ($ b, $ a);
Pascal:
while true do begin do_something (); end;
There are many ways to organize infinite loops in C-like languages, but the following example most clearly shows this:
for (;;) { do_something (); }
Perl supports both C-syntax and other options:
do_something () while (1); # Short Endless Loop similarly while (1) {do_something ()};
# Using a "naked block" and the redo operator { do_something (); redo; }
Ada:
loop do_something; end loop;
Python:
while true: do_something ()
In many languages there is an implementation of an associative array, the so-called. hash table.
Implementing an associative array in Perl:
my% elements = map {$ _ => 1} @elements;
Zed Shaw, the author of the book Learn Ruby The Hard Way, notes that attitudes towards idioms in the developer community suggests that the use of idioms should be categorized as morality, because when writing in natural language that requires clarity of presentation, idioms should be avoided [3 ]. He gives the following example from Ruby Styleguide [4]:
arr = [1, 2, 3] # bad for elem in arr do puts elem end # good arr.each {| elem | puts elem}
Using the for loop according to the official Ruby style is not welcome, and the .each construct should be used instead. Shaw's position is that learners of programming languages should study not only the idioms of a particular programming language, but also alternative coding methods - this avoids indoctrination and facilitates the transition to other languages.
Comments
To leave a comment
Software and information systems development
Terms: Software and information systems development