Обсуждение:Императивное программирование
Эта статья тематически связана с вики-проектом «Информационные технологии», цель которого — создание и улучшение статей по темам, связанным с информационными технологиями. Вы можете её отредактировать, а также присоединиться к проекту, принять участие в его обсуждении и поработать над требуемыми статьями. |
тема не раскрыта
[править код]знания из этой статьи не помогут человеку разобраться с тем, что же такое императивное программирование 95.181.136.132 06:13, 19 июля 2015 (UTC)
Не следует ли объединить эту статью с Процедурное программирование? Суть одна, здесь больше истории, там - лучше описание понятия (ИМХО). 95.28.28.116 22:56, 8 декабря 2009 (UTC) Поляк Марк
- Нет, это ортогональные понятия. Так, процедурное программирование и объектно-ориентированное программирование обычно представляют собой императивное программирование. В английском разделе неплохо про это написано: en:Procedural programming#Comparison with imperative programming. — Claymore 10:03, 9 декабря 2009 (UTC)
Статью явно надо улучшать, ничего не понятно, и история тоже написана через пень-колоду. sergamena 23:59, 7 января 2011 (UTC)
В статье явно путается императивное программирование и программирование с мутабельным состоянием. Можно писать полностью иммутабельный императивный код, и там не будет никакого глобального состояния. Unnamed666 17:53, 20 октября 2013 (UTC)
что и как
[править код]Хорошо бы найти АИ на тему разницы "что" и "как" (я пока убрал из текста статьи): "Логические языки программирования, такие как Prolog, обычно определяют что надо вычислить, а не как это надо делать."
Многие знают ("слышали") о таком делении, но я пока не нашел, откуда "звон".
Из перевода этого источника нашел нечто близкое, но все-таки не совсем:
"Противопоставление функций и процедур отражает общее различие между описанием свойств объектов и описанием того, как что-то делать, или, как иногда говорят, различие между декларативным знанием и императивным знанием. В математике нас обычно интересуют декларативные описания (что такое), а в информатике императивные описания (как)."
"Декларативные и императивные описания тесно связаны между собой, как и математика с информатикой. Например, сказать, что ответ, получаемый программой, «верен», означает сделать об этой программе декла- ративное утверждение. Существует большое количество исследований, направленных на отыскание методов доказательства того, что программа корректна, и большая часть сложности этого предмета исследования свя- зана с переходом от императивных утверждений (из которых строятся программы) к декларативным (которые можно использовать для рассуждений). Связана с этим и такая важная область современных исследований по проектированию языков программирования, как исследование так называемых языков сверхвысокого уров- ня, в которых программирование на самом деле происходит в терминах декларативных утверждений. Идея состоит в том, чтобы сделать интерпретаторы настолько умными, чтобы, получая от программиста знание типа «что такое», они были бы способны самостоятельно породить знание типа «как». В общем случае это сделать невозможно, но есть важные области, где удалось достичь прогресса. Мы вернемся к этой идее в главе 4."