Что такое идиома программирования?

67
задан Corbin March 2 January 2010 в 05:17
поделиться

7 ответов

Идиома программирования является обычным способом кодировать задачу на определенном языке. Например, цикл часто пишется как это в C:

for (i=0; i<10; i++)

PHP поймет подобную конструкцию:

for ($i = 1; $i <= 10; $i++)

, Но этому препятствуют в PHP для цикличного выполнения по массиву. В этом случае Вы использовали бы:

foreach ($arr as $value)

принимая во внимание, что в Ruby, Вы использовали бы:

(1..10).each

для цикла, или:

array.each

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

52
ответ дан Christian Lescuyer 24 November 2019 в 14:43
поделиться

"Идиома" в (непрограммировании) языка является высказыванием или выражением, которое уникально для конкретного языка. Обычно что-то, что не следует "правилам" языка, и просто существует, потому что носители языка "просто знают", что это означает. (например, на английском языке мы говорим "в строке, но" " из строка" - который был бы идиоматичен)

Перемещение этого на арену программирования, мы получаем вещи как:

 if(c=GetValue())
 {...}

, который actaually означает:

 c = GetValue();
 if (c != 0)
 {....}

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

17
ответ дан James Curran 24 November 2019 в 14:43
поделиться

См. http://en.wikipedia.org/wiki/Programming_idiom

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

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

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

11
ответ дан Sam Hasler 24 November 2019 в 14:43
поделиться

От Википедия : идиома программирования является средством выражения повторяющейся конструкции на одном или нескольких языках программирования.

я предполагаю, что Вы уже снизились на ту дорогу хотя!

2
ответ дан Mat Nadrofsky 24 November 2019 в 14:43
поделиться

Идиома является термином от лингвистики. Это - группа слов, которые буквально не означают что говорить. Например, высказывание кого-то "находится под погодой", когда они не чувствуют себя хорошо. Та конкретная фраза прибыла от моряков, говорящих о пассажирах, страдающие морской болезнью пассажиры понизятся "погодные" деки, где движение поставок было меньше. Но большинство из нас не моряки и не знает буквального значения фразы.

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

2
ответ дан Jim C 24 November 2019 в 14:43
поделиться

Идиома является способом сказать что-то, что конкретно на данный язык. Например, вот горстка английские идиомы .

можно экстраполировать это для применения понятия к программированию.

1
ответ дан Aaron Palmer 24 November 2019 в 14:43
поделиться

Идиома - это «шаблон», который можно идентифицировать в нескольких местах.

Я бы не сказал, что это имеет какое-либо отношение к конкретный язык программирования.

Iterator foo;
foo.reset();
while (foo.next())
{
    print(foo.value());
}

Это отрывок того, что я бы назвал идиомой «для каждого», которая выражается немного по-разному в ряде языков.

Еще один отличный пример идиомы - Socket ]. Все платформы, претендующие на наличие сокетов, концептуально работают одинаково, то есть все они имеют примерно одинаковый интерфейс.

2
ответ дан 24 November 2019 в 14:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: