~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 4D3D77AAD2DA5330E43A689C9ABFD3D3__1716540420 ✰
Заголовок документа оригинал.:
✰ Data-driven programming - Wikipedia ✰
Заголовок документа перевод.:
✰ Программирование, управляемое данными — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Data-driven_programming ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/4d/d3/4d3d77aad2da5330e43a689c9abfd3d3.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/4d/d3/4d3d77aad2da5330e43a689c9abfd3d3__translat.html ✰
Дата и время сохранения документа:
✰ 16.06.2024 10:33:30 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 24 May 2024, at 11:47 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Программирование, управляемое данными — Википедия Jump to content

Программирование, управляемое данными

Из Википедии, бесплатной энциклопедии

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

Связанные парадигмы [ править ]

Программирование, управляемое данными, похоже на программирование, управляемое событиями , в том, что оба они структурированы как сопоставление с образцом и результирующая обработка и обычно реализуются с помощью основного цикла , хотя обычно они применяются к разным областям. Модель условие/действие также похожа на аспектно-ориентированное программирование , где при точки соединения достижении pointcut (условия) выполняется (действие). Похожая парадигма используется в некоторых платформах трассировки , таких как DTrace , где перечисляются зонды (точки измерения) и связанные с ними действия, которые выполняются при выполнении условия.

Адаптация абстрактных типов данных методов проектирования к объектно-ориентированному программированию приводит к проектированию, управляемому данными. [2] Этот тип проектирования иногда используется в объектно-ориентированном программировании для определения классов во время разработки программного обеспечения.

Приложения [ править ]

Программирование, управляемое данными, обычно применяется к потокам структурированных данных для фильтрации, преобразования, агрегирования (например, для вычисления статистики) или вызова других программ. Типичные потоки включают файлы журналов , значения, разделенные разделителями , или сообщения электронной почты, особенно для фильтрации электронной почты . Например, программа AWK может принимать в качестве входных данных поток операторов журнала и, например, отправлять все на консоль, записывать операторы, начинающиеся с ПРЕДУПРЕЖДЕНИЯ, в файл «ПРЕДУПРЕЖДЕНИЕ» и отправлять электронное письмо системному администратору, если какая-либо строка начинается с "ОШИБКА". Он также может записывать, сколько предупреждений регистрируется в день. В качестве альтернативы можно обрабатывать потоки значений, разделенных разделителями, обрабатывая каждую строку или агрегированные строки, например сумму или макс. В электронной почте такой язык, как procmail, может указывать условия, которым должны соответствовать некоторые электронные письма, а также действия, которые следует предпринять (доставить, вернуть, отклонить, переслать и т. д.).

Некоторые языки, управляемые данными, являются полными по Тьюрингу , например AWK и даже sed, в то время как другие намеренно очень ограничены, особенно для фильтрации. Крайним примером последнего является pcap , который состоит только из фильтрации, причем единственным действием является «захват». Менее экстремально: у sieve есть фильтры и действия, но в базовом стандарте нет переменных или циклов, а разрешены только операторы фильтрации без сохранения состояния: каждый входной элемент обрабатывается независимо. Переменные позволяют состояние, которое позволяет выполнять операции, которые зависят от более чем одного входного элемента, такие как агрегирование (суммирование входных данных) или регулирование (разрешить не более 5 писем в час от каждого отправителя или ограничить повторение сообщений журнала).

Языки, управляемые данными, часто имеют действие по умолчанию: если ни одно условие не соответствует, строко-ориентированные языки могут напечатать строку (как в sed) или доставить сообщение (как в sieve). В некоторых приложениях, таких как фильтрация, сопоставление может выполняться исключительно (то есть только первый оператор сопоставления), тогда как в других случаях все применяются операторы сопоставления. В любом случае несоответствие какому-либо шаблону может быть «поведением по умолчанию» или может рассматриваться как ошибка, которая должна быть обнаружена с помощью оператора catch-all в конце.

Преимущества и проблемы [ править ]

Хотя преимущества и проблемы могут различаться в зависимости от реализации, у этой парадигмы есть несколько больших потенциальных преимуществ и проблем. Функциональность просто требует, чтобы он знал абстрактный тип данных переменных, с которыми он работает. Функции и интерфейсы можно использовать для всех объектов с одинаковыми полями данных, например, «позицией» объекта. Данные могут быть сгруппированы в объекты или «сущности» в соответствии с предпочтениями практически без последствий.

Хотя проектирование, управляемое данными, действительно предотвращает объединение данных и функциональности, в некоторых случаях программирование, управляемое данными, приводит к плохому объектно-ориентированному проектированию , особенно при работе с более абстрактными данными. Это связано с тем, что объект или сущность, управляемый исключительно данными, определяется способом его представления . Любая попытка изменить структуру объекта немедленно приведет к поломке зависящих от него функций.

Например, можно представить направления движения как серию перекрестков (две пересекающиеся улицы), на которых водитель должен повернуть направо или налево. Если перекресток (в США) представлен в данных почтовым индексом (5-значным номером) и двумя названиями улиц (текстовыми строками), при обнаружении города, улицы которого пересекаются несколько раз, могут возникнуть ошибки. Хотя этот пример может быть слишком упрощенным, реструктуризация данных является довольно распространенной проблемой в разработке программного обеспечения либо для устранения ошибок, повышения эффективности, либо для поддержки новых функций.

Языки [ править ]

См. также [ править ]

Ссылки [ править ]

  1. ^ Перейти обратно: а б с Штутц, Майкл (19 сентября 2006 г.). «Начало работы с GAWK: основы языка AWK» . РазработчикWorks . ИБМ . Архивировано из оригинала 20 мая 2011 года . Проверено 23 октября 2010 г. [AWK] часто называют языком, управляемым данными — операторы программы описывают входные данные, которые необходимо сопоставить и обработать, а не последовательность шагов программы.
  2. ^ Вирфс-Брок, Ребекка ; Вилкерсон, Брайан (1989). «Объектно-ориентированное проектирование: подход, основанный на ответственности». Материалы конференции «Объектно-ориентированные системы, языки и приложения программирования — OOPSLA '89» . Нью-Йорк: ACM . стр. 71–75. дои : 10.1145/74877.74885 . ISBN  0897913337 . S2CID   7372657 .
  3. ^ «Кложур» . www.clojure.org . Проверено 5 июня 2018 г.
  4. ^ Иерусалимский, Роберто; де Фигейредо, Луис Энрике; Селес, Вальдемар (3 февраля 2017 г.). «Справочное руководство по Lua 5.3» . www.lua.org . Проверено 5 июня 2018 г.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 4D3D77AAD2DA5330E43A689C9ABFD3D3__1716540420
URL1:https://en.wikipedia.org/wiki/Data-driven_programming
Заголовок, (Title) документа по адресу, URL1:
Data-driven programming - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)