stringtranslate.com

Идиома программирования

В компьютерном программировании идиома программирования или идиома кода — это группа фрагментов кода , разделяющих эквивалентную семантическую роль , [1] которая часто повторяется в проектах программного обеспечения , часто выражая особую особенность повторяющейся конструкции в одном или нескольких языках программирования или библиотеках . Это определение основано на определении слова « идиома », используемом в лингвистике. Разработчики распознают идиомы программирования, связывая значение (семантическую роль) с одним или несколькими синтаксическими выражениями внутри фрагментов кода (фрагментов кода). Идиому можно рассматривать как действие над концепцией программирования, лежащей в основе шаблона кода, который в реализации представлен смежными или разбросанными фрагментами кода. Эти фрагменты доступны на нескольких языках программирования, фреймворках и даже библиотеках. Вообще говоря, семантическая роль идиомы программирования — это выражение на естественном языке простой задачи, алгоритма или структуры данных , которая не является встроенной функцией используемого языка программирования, или, наоборот, использование необычной или примечательной функции. который встроен в язык программирования.

Знание идиом, связанных с языком программирования, и способов их использования является важной частью свободного владения этим языком. Это также помогает передавать знания в виде аналогий с одного языка или структуры на другой. Такие идиоматические знания широко используются в краудсорсинговых репозиториях, чтобы помочь разработчикам преодолеть барьеры программирования. [2] Сопоставление идиом кода с особенностями может быть полезным способом найти компромисс между обобщением и конкретикой. Выявляя общие шаблоны и идиомы, разработчики могут создавать мысленные модели и схемы, которые помогают им быстро понимать новый код и ориентироваться в нем. Более того, сопоставляя эти идиомы с особенностями и конкретными вариантами использования, разработчики могут гарантировать, что они применяют правильный подход, а не чрезмерно обобщают его. Один из способов сделать это — создать справочник или документацию, в которой общие идиомы сопоставляются с конкретными вариантами использования, подчеркивая, где их может потребоваться адаптировать или изменить для соответствия конкретному проекту или команде разработчиков. Это может помочь гарантировать, что разработчики работают с общим пониманием лучших практик и могут принимать обоснованные решения о том, когда использовать устоявшиеся идиомы, а когда адаптировать их в соответствии со своими конкретными потребностями.

Распространенным заблуждением является использование наречия или прилагательной формы термина как типичного использования языка программирования , что на самом деле относится к идиосинкразии. Идиома подразумевает, что семантика некоторого кода на языке программирования имеет сходство с другими языками или платформами. Например, своеобразным способом управления динамической памятью в C было бы использование функций стандартной библиотеки C malloc и free , тогда как идиоматический относится к ручному управлению памятью как к повторяющейся семантической роли, которая может быть достигнута с помощью фрагментов кода malloc в C или указателя = новый тип [число_элементов] в C++. В обоих случаях семантика кода понятна разработчикам, знакомым с C или C++, как только им будет раскрыто идиоматическое или своеобразное обоснование. Однако, хотя идиоматическое обоснование часто является общим для области программирования, идиосинкразическое обоснование часто связано с конкретной терминологией API.

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

Печать Привет, мир

Одна из наиболее распространенных отправных точек, чтобы научиться программировать или заметить синтаксические различия между известным языком и новым. [3]

Он имеет несколько реализаций, среди них фрагменты кода для C++ :

std :: cout << "Привет, мир \n " ;  

Для Явы :

Система . вне . println ( "Привет, мир" );

Вставка элемента в массив

Эта идиома помогает разработчикам понять, как манипулировать коллекциями на данном языке, в частности вставлять элемент x в позицию i в списке s и перемещать элементы вправо. [4]

Фрагменты кода:

Для Питона :

с . вставить ( я , х ) 

Для JavaScript :

с . сращивание ( i , 0 , x );  

Для Перла :

сращивание ( @s , $i , 0 , $x )   

Смотрите также

Рекомендации

  1. ^ Алламанис, Мильтиадис; Саттон, Чарльз (2014). «Майнинг идиом из исходного кода». Материалы 22-го Международного симпозиума ACM SIGSOFT по основам программной инженерии . стр. 472–483. arXiv : 1404.0417 . дои : 10.1145/2635868.2635901. ISBN 9781450330565. S2CID  2923536.
  2. ^ Самудио, Дэвид И.; Латоза, Томас Д. (2022). «Барьеры во фронтальной веб-разработке» (PDF) . Симпозиум IEEE 2022 по визуальным языкам и человекоцентричным вычислениям (VL/HCC) . стр. 1–11. дои : 10.1109/VL/HCC53370.2022.9833127. ISBN 978-1-6654-4214-5. S2CID  251657931.
  3. ^ «Напечатайте Hello World» . www.programming-idioms.org .
  4. ^ «Вставить элемент в список». www.programming-idioms.org .

Внешние ссылки