Идиома (программирование)

Идиома (программирование)

Программная идиома — выражение, обозначающее элементарную конструкцию, типичную для одного или нескольких языков программирования. Идиомы могут быть зафиксированы в принятом стиле программирования или документации конкретного языка.

Знание идиом языка и правил их применения является одним из показателей свободного владения языком программирования.

Содержание

Примеры простых идиом

Инкремент

В языках типа BASIC идиома для единичного приращения значения переменной выглядит так:

 i = i + 1

Укороченный вариант в C-подобных языках:

 i += 1;  /* i = i + 1;  */
 ++i;     /* тот же результат */
 i++;     /* тот же результат */

Pascal содержит процедуру аналогичного назначения:

 i := i + 1;
 Inc(i); (* тот же результат *)

Обмен значениями (swap)

В большинстве языков обмен значениями между двумя переменными выглядит следующим образом:

 temp = a;
 a = b;
 b = temp;

В Perl это выглядит элегантнее:

 ($a, $b) = ($b, $a);

Бесконечный цикл

Pascal:

 while true do begin
   do_something();
 end;

В C-подобных языках есть много способов организации бесконечных циклов, но нижеследующий пример наиболее очевидным образом показывает это:

 for (;;) {
   do_something();
 }

Perl поддерживает как C-синтаксис, так и другие варианты:

 do_something() while (1);  # Укороченный бесконечный цикл
 # аналогично
 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()

Выборка из ассоциативного массива

Во многих языках имеется реализация ассоциативного массива, т. н. хеш-таблица.

Реализация ассоциативного массива в Perl:

 my %elements = map { $_ => 1 } @elements;

Критика

Автор книги «Learn Ruby The Hard Way» Зед Шоу отмечает, что отношение к идиомам в сообществах разработчиков говорит о том, что применение идиом следует отнести к категории нравов, так как при письме на естественном языке, требующем чёткости изложения, идиом следует избегать[1]. Им приводится следующий пример из «Ruby Styleguide»[2]:

arr = [1, 2, 3]
 
# bad
for elem in arr do
  puts elem
end
 
# good
arr.each { |elem| puts elem }

Использование цикла for, согласно официальному стилю Ruby, не приветствуется, а вместо него следует использовать конструкцию .each. Позиция Шоу состоит в том, что изучающие языки программирования должны изучать не только идиомы конкретного языка программирования, но и альтернативные способы кодирования — это позволяет избежать индоктринации облегчает переход на другие языки.

См. также

Ссылки

Примечания


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Полезное


Смотреть что такое "Идиома (программирование)" в других словарях:

  • Идиома — В Викисловаре есть статья «идиома» Термин идиома (от греч. ἴδιος  собственный, свойственный) может означать: Фразеологизм  оборот речи, употребляющийся как единое целое …   Википедия

  • Идиома copy-and-swap — Идиома copy and swap  это идиома языка программирования C++, позволяющая разрабатывать устойчивые к исключениям операторы присваивания. Идиома базируется на идиоме Resource Acquisition Is Initialization. Идиома предполагает реализацию… …   Википедия

  • Получение ресурса есть инициализация — (англ. Resource Acquisition Is Initialization (RAII))  программная идиома объектно ориентированного программирования, смысл которой заключается в том, что получение некоторого ресурса совмещается с инициализацией, а освобождение  с …   Википедия

  • Разделение представления и содержания — Отделение содержания от представления (или «разделение формы и содержание») это общепринятая идиома, философия дизайна и методология, применяемая в контексте различных издательских технологических дисциплинах, включая информационный поиск,… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»