Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Программная идиома кратко

Лекция



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

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

Термин часто используется в широком смысле, в том числе в качестве синонима термина шаблон проектирования, и знание идиом в этом случае часто служит показателем свободного владения этим языком.

В более узком смысле, идиома может представлять собой воспроизведение в языке элементов семантически иного языка, которые в данном языке тоже могут быть применимы, но не провоцируются самим языком (то есть не входят в число его идиом). С этой позиции многие шаблоны в объектно-ориентированном проектированиирассматриваются как идеоматическое воспроизведение элементов функциональных языков[ .

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

Инкремент

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

 i = i + 1

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

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

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

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

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

Идиома 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. Позиция Шоу состоит в том, что изучающие языки программирования должны изучать не только идиомы конкретного языка программирования, но и альтернативные способы кодирования — это позволяет избежать индоктринации облегчает переход на другие языки.

Надеюсь, эта статья про программная идиома , была вам полезна, счастья и удачи в ваших начинаниях! Надеюсь, что теперь ты понял что такое программная идиома и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Разработка программного обеспечения и информационных систем

Из статьи мы узнали кратко, но содержательно про программная идиома
создано: 2015-05-09
обновлено: 2021-03-13
132437



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Разработка программного обеспечения и информационных систем

Термины: Разработка программного обеспечения и информационных систем