Что такое идиома программирования?
Я вижу фразу "программная идиома", брошенную вокруг, как будто она обычно понимается. Тем не менее, в результатах поиска и stackoverflow я вижу все...
от микро:
- увеличение значения переменной
- представляя бесконечный цикл
- обмен значений переменных
средний:
- интеллекту
- RAII
- комментарии, стиль...
макрос:
- парадигма программирования или общие библиотечные функции как идиома
- модель процесса как идиома
- набор идиом равен новой парадигме
есть одно общее определение "языков программирования"? Поскольку "идиома программирования" используется во многих областях:
- микро: синтаксический нюанс или общие синтаксис
- средний: общий стиль и узоры
- макрос: парадигмы программирования как идиома
допустимо ли использовать эту фразу в любой из этих областей? Ответы до сих пор сосредоточены на синтаксических идиомах. Остальные тоже действительны?
10 ответов:
идиома программирования-это обычный способ кодирования задачи на определенном языке. Например, цикл часто пишется так в 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есть много много возможностей, чтобы написать цикл на этом языке. Использование идиомы делает его немедленно идентифицируемым опытными читателями. Затем они могут потратить свое время на более важные проблемы.
"идиома" в языке (не программирующем)-это высказывание или выражение, которое уникально для конкретного языка. Как правило, что-то, что не следует "правилам" языка, а просто существует, потому что носители языка "просто знают", что это значит. (например, в английском языке мы говорим "In line", но " out на строка " -- это было бы идиоматично)
перемещая это на арену программирования, мы получаем такие вещи, как:
if(c=GetValue()) {...}что actaually значит:
c = GetValue(); if (c != 0) {....}который каждый программист C/C++ понимает, но полностью сбивает с толку кого-то, кто приходит с другого языка программирования.
см.http://en.wikipedia.org/wiki/Programming_idiom
идиома программирования-это шаблон, алгоритм или способ структурирования кода. Говорить об идиомах программирования-это говорить о тех шаблонах, которые часто повторяются в коде или предлагать новые.
преимущества знакомства с идиомами, особенно большими, заключается в том, что при просмотре кода Вы можете увидеть несколько строк кода, но поскольку он знаком как конкретная идиома, вы можете мысленно представляйте и думайте о коде как об этой единственной идиоме вместо того, чтобы обязательно читать и понимать каждую строку индивидуально.
сказать, что код не является идиоматическим, значит сказать, что он не структурирует себя таким образом, чтобы позволить читателям эффективно думать о коде.
с Википедия: идиома программирования-это средство выражения повторяющейся конструкции на одном или нескольких языках программирования.
Я предполагаю, что вы уже были на этом пути, хотя!
идиома 'шаблон', который может быть идентифицирован в нескольких местах.
Я бы не сказал, что это имеет какое-то отношение к конкретному языку программирования.
Iterator foo; foo.reset(); while (foo.next()) { print(foo.value()); }Это фрагмент того, что я бы назвал "для каждой" идиомы, которая выражается немного по-разному в ряде языков.
еще один отличный пример идиомы гнездо. Все платформы, которые утверждают, что имеют сокеты, все работают концептуально одинаково кстати, то есть все они имеют примерно одинаковый интерфейс.
программист должен приобрести хорошие алгоритмы и идиомы.
Алан Джей Перлис - SICP предисловие
фразеологизм-это термин из лингвистики. Это группа слов, которые буквально не означают то, что говорят. Например, кто-то "под мухой", когда они не чувствуют себя хорошо. Эта конкретная фраза исходила от моряков, говорящих о пассажирах, страдающих морской болезнью, которые спускались ниже "погодных" палуб, где движение судов было меньше. Но большинство из нас не моряки и не знают буквального значения этой фразы.
в программировании многие, даже большинство инструкций являются не поняты широкой публикой, хотя это английские слова. например "для петли". Хотя они имеют смысл для программистов, они не имеют смысла для большинства других людей.
попасть в колею рано: сделать тот же процесс таким же образом. Накапливаются идиомы. Стандартизировать. Единственная разница(!) между Шекспиром и Вами был размер его списка идиом – не размер его словаря.
- Алан Перлис, эпиграммы в программировании
идиома-это способ сказать что-то особенное для данного языка. Например, вот несколько английские идиомы.
вы можете использовать это, чтобы применить концепцию программирования.
сначала рассмотрим значение слова Ideom, его можно суммировать как фразу, которая несет больше смысла и последствий, чем сумма слов. В программировании большинство фрагментов кода на самом деле идиоматичны.
идиома программирования может считаться описательной для класса решений, которые могут быть перенесены в различные случаи. Рассмотрим
while { ... }vsdo {} whileони идиоматичны, они содержат одни и те же слова, но порядок несет в себе важное различие. Точная формулировка будет отличаться по языку, но фундаментальное значение и последствия будут отличаться; напримерdo {} whileвсегда будет выполняться один раз, независимо от того, какой язык или операторы используются для его реализации. Как идиома это передаваемая форма идеи. Он может использоваться во многих обстоятельствах и выражаться разными словами (заявлениями/командами), но фундаментальный результат всегда будет одним и тем же.
Comments