программирование императивный декларативный
Программирование можно рассматривать как искусство, науку, ремесло. Программирование — это искусство получения ответов от машины. Для этого в узком смысле нужно составить специальный код для технического устройства, а в широком — разработать программы на языках программирования, т.е. не просто составить код, а выполнить интеллектуальную работу по составлению высокоразумных программ для решения различных задач во всех сферах человеческой деятельности.
Программирование — процесс описания последовательности действий решения задачи средствами конкретного языка программирования и оформление результатов описания в виде программы. Эта работа требует точности, аккуратности и терпения. Команды машине должны формулироваться абсолютно четко и полно, не должны содержать никакой двусмысленности.
На начальном этапе составлением программ для ЭВМ занимались сами изготовители вычислительных машин. Постепенно, с развитием техники, этот процесс из рутинной работы превратился в интеллектуальную деятельность, сравнимую с искусством, т.к. трудоемкое, ручное составление программ было подобно решению сложных комбинационных задач, которое требовало научных знаний и мастерства. Возникла потребность в людях со специальной подготовкой и особым складом ума, которых называют программистами. Овладев необходимыми знаниями, научившись грамотно и творчески применять их в повседневной работе, программист может стать незаменимым специалистом в своей области деятельности. Отмечается, что «программист должен обладать способностью первоклассного математика к абстрактному и логическому мышлению в сочетании с эдисоновским талантом сооружать все что угодно из О и 1. Он должен сочетать аккуратность бухгалтера с проницательностью разведчика, фантазию автора детективов с трезвой практичностью экономиста».
Программист — одна из самых востребованных специальностей в современном обществе.
С 1970-1980-х гг. программирование как новая научная дисциплина занимается методами разработки программных продуктов. Оно включает комплекс вопросов, связанных с написанием спецификаций, проектированием, кодированием, тестированием и функционированием программ для ЭВМ. Для разработки программного обеспечения применяются следующие методы: математические, инженерных расчетов и управления.
Уровень программирования определяется четырьмя взаимосвязанными факторами развития: возможностями компьютеров, теорией и языками, искусством и технологией программирования.
Языки программирования, их классификация и развитие
... трудоемкость процесса составления программ ( особенно на машинных языках и ЯСК), плохо защищенного от появления ошибок; низкая скорость программирования; невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов. Машинно-ориентированные языки ...
Профессиональное программирование — вполне прагматичная деятельность, направленная на получение реального программного продукта, которое требует высокой теоретической подготовленности не только в области знания языков программирования и принципов создания программ, но и в области математики, системного анализа, исследования операций, системотехники и др. Программист должен хорошо ориентироваться в уже имеющемся программном обеспечении вычислительной техники и автоматизированных систем, программной защите информации, стандартизации и лицензировании программных продуктов.
Системным программированием, т.е. разработкой средств системного программного обеспечения (ПО) и системы программирования, занимаются системные программисты. Прикладным программированием, т.е. разработкой прикладных программ, занимаются прикладные программисты. Умение хорошо программировать — основное условие успешной профессиональной деятельности программиста. Научиться этому можно, лишь многократно программируя разные задачи, проходя путь от ее постановки до работающей программы.
Для непосредственного решения задач программист должен:
- осознать задачу;
- составить план общего решения;
- выполнить план, т.е. преобразовать его в определенную последовательность действий;
- проверить результат решения, убедиться в его правильности.
Чтобы все это выполнить, специалист должен многое знать и уметь.
1. Основные понятия программирования
Программирование — процесс создания компьютерных программ.
В узком смысле под программированием понимается написание инструкций (программ) на конкретном языке программирования (часто по уже имеющемуся алгоритму — плану, методу решения поставленной задачи).
Соответственно, люди, которые этим занимаются, называются программистами, а те, кто разрабатывают алгоритмы — алгоритмистами.
В более широком смысле под программированием понимают весь спектр деятельности, связанный с созданием и поддержанием в рабочем состоянии программ — программного обеспечения ЭВМ. Иначе это называется «программная инженерия» («инженерия ПО»).
Сюда входят анализ и постановка задачи, проектирование программы, построение алгоритмов, разработка структур данных, написание текстов программ, отладка и тестирование программы (испытания программы), документирование, настройка (конфигурирование), доработка и сопровождение.
Транслятор
В зависимости от назначения и / или способа написания программ различают:
- Прикладное программирование [applicationprogramming] — разработка и отладка программ для конечных пользователей, например бухгалтерских, обработки текстов и т.п.
— Системное программирование [systemprogramming] — разработка средств общего программного обеспечения, в том числе операционных систем, вспомогательных программ, пакетов программ общесистемного назначения, например: автоматизированных систем управления, систем управления базами данных и т.д.
— Декларативное (логическое, продукционное) программирование [declarativeprogramming, logicalprogramming] — метод программирования, предназначенный для решения задач искусственного интеллекта. В указанном контексте программа описывает логическую структуру решения задачи, указывая преимущественно, что нужно сделать, не вдаваясь в детали, как это делается. Используются языки программирования типа Пролог.
Особенности применения теории графов при решении задач и в практической ...
... И для этого мы поставим некоторые задачи, которые мы рассмотрим позже, такие как: изучить теорию графов, основные понятия графов и как применять их на примере, какие способы существуют, чтобы ... -, электроснабжения. Датой рождения этой теории можно считать 1736 год, когда была опубликована статья Леонарда Эйлера, посвященная решению головоломки под названием «Задача о кёнисберских мостах». Долгое ...
— Объектно-ориентированное программирование, объектное программирование, ООП [OOP — Object-OrientedProgramming] — метод программирования, основанный на использовании концепции объекта, абстрагирующего конкретные его реализации в предметной области. При этом данные тесно связываются с выполняемыми над объектами процедурами. Например, круг на экране монитора может рассматриваться как объект, данные о котором характеризуют положение (координаты) центра, величину радиуса, толщину и цвет линии. Процедуры, связанные с этим объектом, — перемещение, изменение размера, стирание и т.д. Объектно-ориентированное программирование разрабатывалось и усовершенствовалось в 1960-1970-х гг. В настоящее время используется в ряде языков программирования высокого уровня (Си++, Java, Смолток, ObjectLisp и др).
В начале 90-х гг. была выявлена потребность в выработке единых спецификаций, которые должны позволить программным продуктам различных фирм взаимодействовать друг с другом в общей информационной среде. Решение указанной задачи взяла на себя фирма OMG (США).
Выработанная ею идеология «Бизнес-объекта» к 1997 г. получила достаточно широкое распространение при выработке промышленных программных приложений. Основу этой идеологии составляет «Общая архитектура брокера объектных запросов» — COBRA (CommonObjectRequestBrokerArchitecture), центральной частью которой является спецификация на программный продукт (ORB — ObjectRequestBroker), представляющий собой набор доменов или динамических библиотек, обеспечивающих взаимодействие различных программ в распределенной компьютерной среде. Кроме того, фирма OMG разработала спецификации обмена данными между брокерами различных фирм-производителей — GIOP (GeneralInter ORB Protocol), а с той же целью для Internet — HOP (InternetInter ORB Protocol).
Поддержкой и развитием бизнес-объектной технологии занимается организованный в рамках OMG специальный комитет — BODTF (BusinessObjectDomainTaskForce).
В 1998 г. этим комитетом была выпущена спецификация (BOCA — BusinessObjectComponentArchitecture), регламентирующая построение программных систем из компонент-объектов, созданных на основе технологии CORBA/IIOP. Подробнее см. [407, 423, 434].
- Параллельное программирование [concurrentprogramming] — разработка программ, обеспечивающих одновременное (параллельное) выполнение операций, связанных с обработкой данных.
— Процедурное (процедурно-ориентированное) программирование [procedure-orientedprogramming] — метод программирования, в соответствии с которым программы пишутся как перечни последовательно выполняемых команд. При этом используются процедурно-ориентированные языки программирования.
— Структурное программирование, модульное программирование [structuredprogramming, modularprogramming] — метод написания программ небольшими независимыми частями — модулями, каждый из которых связан с какой-либо процедурой или функцией. При этом результирующая программа организуется в виде совокупности взаимосвязанных по определенным правилам модулей. Это упрощает разработку сложных программных продуктов и их тестирование.
«Разработка методической поддержки базового курса информатики ...
... программирования в базовом курсе информатики. Создать сайт учителя. Структура дипломной работы. конспекты уроков по темам, в которых и зложение теоретического материала сопровождается примерами и задачами ... программистом программы ... программирования, изучают структуру вычислительных алгоритмов, учатся составлять программы на языке Паскаль. Паскаль – универсальный язык программирования, ...
— Функциональное программирование [functionalprogramming] — метод программирования, основанный на разбиении алгоритма решения задачи на отдельные функциональные модули, а также описании их связей и характера взаимодействия. Для функционального программирования наиболее широко используются языки НОРЕ и ML. Элементы функционального программирования реализуются также другими языками, например Си.
— Эвристическое программирование [hueristicprogramming] — метод программирования, основанный на моделировании мыслительной деятельности человека. Используется для решения задач, не имеющих строго формализованного алгоритма или связанных с неполнотой исходных данных.
Алгоритм [algorithm] — 1. последовательность действий (операций) и правил их выполнения или команд, предназначенных для решения определенной задачи или группы задач. 2. предписание, определяющее ход вычислительного процесса, связанного с преобразованием данных от некоторого их исходного состояния к требуемому результату. Формальные описания алгоритмов аналогичны представлениям основных частей программ, которые их реализуют, поэтому многое, что относят к описанию конкретных программ, применимо к алгоритму, и наоборот.
Некоторые виды алгоритмов:
Адаптивный алгоритм [adaptivealgorithm] — алгоритм, обладающий свойством настраиваться на условия применения.
Линейный алгоритм [serialalgorithm] — алгоритм, не содержащий ветвей и циклов, все элементы которого выполняются последовательно.
Логический алгоритм [logicalalgorithm] — алгоритм решения логической задачи.
Алгоритм маршрутизации [routingalgorithm] — алгоритм решения задачи определения оптимального пути, по которому будут передаваться данные в коммуникационной сети.
Параллельный алгоритм [parallelalgorithm] — алгоритм, в котором часть или все операции независимы и могут выполняться одновременно (параллельно).
Последовательный алгоритм [sequentialalgorithm] — 1. алгоритм, все действия которого выполняются последовательно. 2. алгоритм обслуживания, реализующий принцип очереди — «первый на входе — первый на выходе» [FIFO — FirstInput — FirstOutput].
Циклический алгоритм [round-robinalgorithm] — алгоритм обслуживания в системах с разделением времени, при котором задача, использовавшая выделенный ей ресурс времени центрального процессора, прерывается и помещается в конец очереди.
Программа [program, routine] — 1.последовательность операций, в том числе нескольких параллельных, выполняемых ЭВМ для достижения поставленной цели или задачи. 2.описание на языке программирования или в машинном коде действий, которые должна выполнить ЭВМ в соответствии с алгоритмом решения конкретной задачи или группы задач (синоним — машинная программа).
3.упорядоченная последовательность команд, подлежащих обработке.
Создание программы
... алгоритмы. Псевдокод используется для разработки алгоритмов, которые потом должны быть преобразованы в структурированную программу на любом языке программирования. Псевдокод подобен разговорному языку; он удобный и дружелюбный, но это не язык программирования. Программы ... символьными переменными (табл. 8). Таблица 8 Функции для работы с символьными переменными Функция Назначение CHR$ (N) ...
Некоторые понятия, связанные с термином «программа»
Машинная программа [computer (machine) program] — программа, написанная на машинном языке (в машинном коде).
Структура программы [programstructure] — общая схема построения программы, рассматривающая ее составные компоненты (программные блоки) и взаимосвязи между ними.
Спецификация программы, программная спецификация [programspecification] — точная и полная формулировка определенной задачи или группы задач, содержащая сведения, необходимые для построения ее алгоритма (программы) или решения. Содержит описание результата, который должен быть достигнут с помощью конкретной программы, а также того, что для достижения этого результата программа должна делать без упоминания, как достигнут указанный результат.
Верификация программы [programverification] — 1. установление любым корректным методом факта соответствия программы заданным целям ее создания или приобретения — установление правильности программы. 2. формализованный контроль или проверка работоспособности программы.
Отладка программы [debugging] — обнаружение, локализация и устранение ошибок в компьютерной программе.
Отладчик [debugger] — программа, предназначенная для анализа поведения другой программы, обеспечивающая ее трассировку (отслеживание и распечатку выполняемых программой команд, изменений переменных или данных о других событиях, связанных с выполнением программы), останов в указанных точках или, при выполнении указанных условий, просмотр и изменение ячеек памяти, регистров процессора и команд программы.
Трассировка [trace] — метод проверки правильности функционирования программ при их выполнении путем отображения изменений всех значений переменных. Этим достигается сокращение поиска ошибочных команд, из-за которых переменные принимают неверные значения. Трассировка выполняется при помощи ввода в проверяемую программу специальных команд или с использованием специальных сервисных программ.
Тестирование программы [programtesting] — проверка программы в рабочих условиях с некоторым специально созданным (тестовым) массивом данных в целях определения ее работоспособности в соответствии с заданными критериями оценки.
Испытания программы [programverificationandvalidation] — всесторонняя (по формализованным признакам — «Verification» и общей субъективной оценке — «Validation») проверка и тестирование программы при сдаче ее в эксплуатацию или аттестации.
Подпрограмма [subroutine] — небольшая часть программы, связанная с реализацией какой-либо повторяющейся функции, процедуры или операции и вызываемая для выполнения из разных мест программы.
В зависимости от того, являются ли подпрограммы частью разработки использующей их программы или заимствуются из других программ, они подразделяются на внутренние подпрограммы [internalsubroutines] и внешние подпрограммы [externalsubroutines]. В качестве последних могут использоваться и так называемые стандартные подпрограммы или программы [standardsubroutines, standardprograms] — программы, помещенные в библиотеку программ.
Программное обеспечение, ПО [software] — совокупность программных средств, управляющих работой ЭВМ и / или автоматизированной системы, а также документация, необходимая для эксплуатации этих средств. Различают общее и прикладное (специальное) программное обеспечение.
«Блочное программирование в Scilab»
... как систему разработки высокотехнологичных приложений. 1 Программирование в Scilab В Scilab встроен мощный язык программирования с поддержкой объектов. Работа в Scilab может ... x xk, то цикл считается завершенным, и управление передается следующему за телом цикла оператору. Если ... корня по формуле ±√y1, иначе оба корня вычисляются по формуле ±√y2. Программа решения биквадратного уравнения на sci-языке ...
Программная документация [programdocumentation] — комплект документов, содержащих полное описание программы и необходимый состав сведений для ее распространения (в том числе продажи) и использования.
2. Императивное и декларативное программирование
Парадигма программирования-это совокупность идей и понятий, определяющих стиль написания компьютерных программ. Это способ концептуализации, определяющий организацию вычислений и структурирование работы, выполняемой компьютером.
Основными парадигмами программирования являются императивное и декларативное программирования.
Императивное программирование, Декларативное программирование
Согласно первому определению, программа «декларативна», если она описывает каковом нечто, а не как его создать. Например, веб-страницы на HTML декларативны, так как они описывают что должна содержать страница, а не как отображать страницу на экране. Этот подход отличается от языков императивного программирования, требующих от программиста указывать алгоритм для исполнения.
Согласно второму определению, программа «декларативна», если она написана на исключительно функциональном, логическом или языке программирования с ограничениями. Выражение «декларативный язык» иногда употребляется для описания всех таких языков программирования как группы, чтобы подчеркнуть их отличие от императивных языков.
3. Этапы создания программ
Программирование — это процесс создания (разработки) программы, который может быть представлен последовательностью следующих шагов:
Спецификация, Разработка алгоритма, Кодирование
4. Отладка — это процесс поиска и устранения ошибок. Ошибки в программе разделяют на две группы: синтаксические (ошибки в тексте) и алгоритмические. Синтаксические ошибки — наиболее легко устраняемые. Алгоритмические ошибки обнаружить труднее. Этап отладки можно считать законченным, если программа правильно работает на одном-двух наборах входных данных.
Тестирование, Создание справочной системы, Создание установочного диска
4. Языки программирования
Язык программирования — язык, предназначенный для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, определяющих внешний вид программы и действия, которые выполнит исполнитель (обычно — ЭВМ) под её управлением. Язык программирования предназначен для написания компьютерных программ, которые представляют собой набор правил, позволяющих компьютеру выполнить тот или иной вычислительный процесс, организовать управление различными объектами, и т.п.
Языки программирования бывают двух уровней:
- низкого уровня;
- высокого уровня.
Языки программирования низкого уровня.
Трансляторы делятся на:
1. Компиляторы — превращают текст программы в машинный код, который можно сохранить и после этого использовать уже без компилятора (примером является исполняемые файлы с расширением *.exe).
2. Интерпретаторы — превращают часть программы в машинный код, выполняют его и после этого переходят к следующей части. При этом каждый раз при выполнении программы используется интерпретатор.
«Программирование высокого уровня» на тему «Ежедневник». — ...
... и выполняет функции планировщика задач с будильником. Основанием для разработки является задание на курсовую работу по дисциплине «Программирование высокого уровня» на тему «Ежедневник». программа должна обладать понятным интерфейсом и относительной простотой ...
Примером языка низкого уровня является ассемблер. Языки низкого уровня ориентированы на конкретный тип процессора и учитывают его особенности, поэтому для переноса программы на ассемблере на другую аппаратную платформу ее нужно почти полностью переписать. Определенные различия есть и в синтаксисе программ под разные компиляторы. Правда, центральные процессоры для компьютеров фирм AMD и Intel практически совместимы и отличаются лишь некоторыми специфическими командами. А вот специализированные процессоры для других устройств, например, видеокарт и телефонов содержат существенные различия.
Языки низкого уровня, как правило, используют для написания небольших системных программ, драйверов устройств, модулей стыков с нестандартным оборудованием, программирование специализированных микропроцессоров, когда важнейшими требованиями являются компактность, быстродействие и возможность прямого доступа к аппаратным ресурсам.
Ассемблер — язык низкого уровня, широко применяется до сих пор.
Языки программирования высокого уровня.
Сейчас в среде разработчиков считается, что языки программирования, которые имеют прямой доступ к памяти и регистров или имеют ассемблерные вставки, нужно считать языками программирования с низким уровнем абстракции. Поэтому большинство языков, считавшихся языками высокого уровня до 2000 года сейчас уже таковыми не считаются.
К основным языкам программирования высокого уровня относятся:
- Фортран — первый язык программирования высокого уровня, имеющий транслятор.
- Кобол — один из старейших языков программирования, предназначенный, в первую очередь, для разработки бизнес-приложений.
- Алгол — название ряда языков программирования, применяемых при составлении программ для решения научно-технических задач на ЭВМ.
- Бейсик (BASIC) — универсальный код символических инструкций для начинающих, семейство высокоуровневых языков программирования.
- Паскаль (PASCAL) — язык программирования общего назначения.
- PascalABC.NET — это язык программирования Паскаль нового поколения, включающий классический Паскаль, большинство возможностей языка Delphi, а также ряд собственных расширений.
- Java — объектно-ориентированный язык программирования.
- Си (C) — язык программирования, во многом похож на Паскаль.
- C++ — компилируемый статически типизированный язык программирования общего назначения.
- Objective-C — компилируемый объектно-ориентированный язык программирования, используемый корпорацией Apple, построенный на основе языка Си и парадигм Smalltalk.
- Smalltalk (произносится [смомлток]) — объектно-ориентированный язык программирования с динамической типизацией.
- C# (произносится «си шарп») — объектно-ориентированный язык программирования.
- Delphi (Демлфи) — императивный, структурированный, объектно-ориентированный язык программирования.
Заключение
В настоящее время происходит активное развитие информационных технологий. Повышение мощности компьютерной техники требует разработки нового программного обеспечения, способного выполнять разнообразные задачи по обработке информации. Появление нового поколения операционных систем требует разработку совместимых версий программного обеспечения. Специалисты предприятий всего мира уже не могут представить себе работу без вычислительной техники. Автоматизированное рабочее место повышает скорость и качество работы.
Информатика программирование : Генератор электрических колебаний высокой частоты
... выходного тока Im1. Этот сдвиг возникает на очень высоких частотах и при правильном выборе лампы или транзистора угол ψ2≈00. Сдвиг фаз на угол ψ3 между напряжением Umвых ... автогенератор. 1.2 Процесс самовозбуждения В момент включения источника питания во всех цепях генератора проходят кратковременные импульсы токов. Так как одиночный импульс образует сплошной спектр колебаний, ...
Программирование представляет собой вид высокоинтеллектуальной деятельности по разработке программного обеспечения. Составляется алгоритм будущей программы, который затем представляется в виде машинного текста, понятного для компьютера.
Для разработки программ используются различные языки программирования. Хороший программист должен уметь составлять алгоритмы решения и знать сразу несколько языков.
Различают языки низкого и высокого уровня. К языкам низкого уровня относятся языки Ассемблера, которые приближены к машинным кодам. Языки высокого уровня ориентированы не на систему команд, а на систему операторов, что позволяет писать большие и сложные программы. Языки высокого уровня BASIC и Pascal отличаются простотой освоения и поэтому используются преимущественно для обучения начинающих программистов. Язык Delphi удобен для работы с базами данных. Язык Фортран ориентирован для реализации вычислительных и финансовых задач, удобен для работы со сложными математическими формулами. Язык ада используется для автоматизации задач управления устройствами. Кобол является самым простым языком высокого уровня, предназначенным для решения разнообразных задач.
Таким образом, программирование играет большую роль во всех сферах человеческой жизни, помогает создавать программы для работы, как дома, так и для решения вычислительных, бухгалтерских, графических и других задач.
Список использованной литературы
[Электронный ресурс]//URL: https://inzhpro.ru/referat/razrabotki-programm/
1. Бьярне Страуструп. Программирование: принципы и практика использования C++, исправленное издание = Programming: PrinciplesandPracticeUsing C++. — М.: Вильямс, 2011. — С. 1248. — ISBN 978-5-8459-1705-8.
2. Иан Грэхем. Объектно-ориентированные методы. Принципы и практика / Пер. с англ. — 3-е изд. — М.: Вильямс, 2004. — 880 с.
3. Роберт У. Себеста. Основные концепции языков программирования = ConceptsofProgrammingLanguages / Пер. с англ. — 5-е изд. — М.: Вильямс, 2001. — 672 с. — 5000 экз. — ISBN 5-8459-0192-8 (рус.), ISBN 0-201-75295-6 (англ.).
4. Вольфенгаген В.Э. Конструкции языков программирования. Приёмы описания. — М.: Центр ЮрИнфоР, 2001. — 276 с. — ISBN 5-89158-079-9.
5. Основы информатики и вычислительной техники. Методические указания к выполнению курсовой работы для студентов факультета предпринимательства и управления специальности Э 03. 02. 00 «Экономическая информатика». Фурунжиев Р.И. — Ротапринт БАТУ, Мн.: 2000. — 25 с.
6. Бондарев В. — М., Рублинецкий В.И., Качко Е.Г. Основы программирования. — Харьков: Фолио, Ростов н/Д: Феникс, 1997. — 368 с.
7. Есаян А.Р. и др. Информатика. — М.: Просвещение, 1991.
8. Степанов А.Н. Информатика: учебное пособие для студентов вузов, обучающихся по гуманитарным и социально-экономическим направлениям и специальностям / А.Н. Степанов. — СПб. [и др.], 2007. — 764 с.: ил. — На тит. л.: Издательская программа 300 лучших учебников для высшей школы. — Рекомендовано МО.
O Л. В. Канторовиче и линейном программировании
... для решения задач, которые позже стали называть задачами линейного программирования. Все ... успешно развивалась и достигла высочайшего уровня, - спорить не приходится, но ... был известный семинар Фихтенгольца-Канторовича на математико-механическом факультете ... стояли В.И.Смирнов, Г.М.Фихтенгольц и, как основной мотор, - Л.В., а позже ... опубликованной в "Успехах"). Эти работы были отмечены сталинской премией; ...