Лекция
Привет, сегодня поговорим про программная идиома , обещаю рассказать все что знаю. Для того чтобы лучше понимать что такое программная идиома , настоятельно рекомендую прочитать все из категории Разработка программного обеспечения и информационных систем.
программная идиома — способ выражения некой не-элементарной конструкции, типичный для одного или нескольких языков программирования. Вообще говоря, идиома представляет собой типовой способ выразить задачу, алгоритм или структуру данных, не встроенные в язык на уровне примитивов, либо наоборот, нетривиальный способ использования встроенных элементов языка.
Термин часто используется в широком смысле, в том числе в качестве синонима термина шаблон проектирования, и знание идиом в этом случае часто служит показателем свободного владения этим языком.
В более узком смысле, идиома может представлять собой воспроизведение в языке элементов семантически иного языка, которые в данном языке тоже могут быть применимы, но не провоцируются самим языком (то есть не входят в число его идиом). С этой позиции многие шаблоны в объектно-ориентированном проектированиирассматриваются как идеоматическое воспроизведение элементов функциональных языков[ .
В языках типа BASIC идиома для единичного приращения значения переменной выглядит так:
i = i + 1
Укороченный вариант в C-подобных языках:
i += 1; /* i = i + 1; */ ++i; /* тот же результат */ i++; /* тот же результат */
Pascal содержит процедуру аналогичного назначения:
i := i + 1; Inc(i); (* тот же результат *)
Идиома copy-and-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()
Во многих языках имеется реализация ассоциативного массива, т. Об этом говорит сайт https://intellect.icu . н. хеш-таблица.
Реализация ассоциативного массива в Perl:
my %elements = map { $_ => 1 } @elements;
Автор книги «Learn Ruby The Hard Way» Зед Шоу отмечает, что отношение к идиомам в сообществах разработчиков говорит о том, что применение идиом следует отнести к категории нравов, так как при письме на естественном языке, требующем четкости изложения, идиом следует избегать[3]. Им приводится следующий пример из «Ruby Styleguide»[4]:
arr = [1, 2, 3] # bad for elem in arr do puts elem end # good arr.each { |elem| puts elem }
Использование цикла for, согласно официальному стилю Ruby, не приветствуется, а вместо него следует использовать конструкцию .each. Позиция Шоу состоит в том, что изучающие языки программирования должны изучать не только идиомы конкретного языка программирования, но и альтернативные способы кодирования — это позволяет избежать индоктринации облегчает переход на другие языки.
Надеюсь, эта статья про программная идиома , была вам полезна, счастья и удачи в ваших начинаниях! Надеюсь, что теперь ты понял что такое программная идиома и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Разработка программного обеспечения и информационных систем
Из статьи мы узнали кратко, но содержательно про программная идиома
Комментарии
Оставить комментарий
Разработка программного обеспечения и информационных систем
Термины: Разработка программного обеспечения и информационных систем