Программирование
Программирование — раздел информатики, изучающий теорию, методы и технологию разработки программного обеспечения для электронных вычислительных машин (ЭВМ). В узком смысле П. — этап решения какой-либо задачи с помощью ЭВМ, ограниченный разработкой и отладкой программ, или же собственно процесс создания программ.
Электронная вычислительная машина может эффективно работать, демонстрируя сложные формы деятельности, во многом аналогичные интеллектуальным, только в том случае, если она руководствуется однозначными инструкциями. Инструкции предписывают компьютеру, какие операции (вычислительные и вспомогательные) и в какой последовательности необходимо осуществить для достижения поставленной цели. Совокупность таких инструкций называют алгоритмом, а последовательность команд, реализующих этот алгоритм, — программой. Программа должна указывать, из каких ячеек памяти взять информацию (адрес), какие операции с ней надо выполнить (арифметические, логические), куда поместить (новый адрес) и (или) направить результаты обработки (на дисплей, печать, в устройства внешней памяти и др.).
Во «внутреннем мире» ЭВМ информация записывается, хранится, обрабатывается, пересылается между отдельными устройствами с помощью электрических сигналов. Соответственно и управление этими процессами осуществляется электронными устройствами: процессору и вспомогательному оборудованию ЭВМ присуще восприятие определенных последовательностей электрических сигналов. Физическая природа сигналов делает их труднодоступными для восприятия и осознания человеком. Отсутствию или присутствию сигналов ставится в однозначное соответствие определенное сочетание нулей и единиц (в 8- или 16-ричной системах исчисления так называемый двоичный код).
Общей задачей П. является написание с помощью формальных языков, служащих средством общения между человеком и ЭВМ (языки П.), оптимальных по определенным критериям (времени исполнения, объему используемой памяти, универсальности и пр.) программ. Арсенал живых (т.е. употребляемых в настоящее время) языков П., посредством которых команды программы связываются с определенными кодами и соответствующими им электрическими сигналами, в настоящее время составляет несколько сотен. Как правило, названия языков П. сокращенно отражают основное назначение языка (АЛГОЛ — ALGOrithmic Language — алгоритмический язык, ФОРТРАН — FORmula TRANslatig language — язык перевода формул, БЕЙСИК — аббревиатура английского названия «Универсальный символический инструктивный код для начинающих» ПЛ/1 — Programming Ganguage — язык программирования и др. Сам язык включает набор команд (операторов), предписывающих ЭВМ выполнение законченных действий (например, в ФОРТРАНЕ используется около 20 английских слов: READ — прочитать, RETURN — вернуться, GO ТО — перейти и др.), которые вместе с дополнительной информацией в виде цифр и букв указывают ЭВМ, какую операцию и с какими данными необходимо выполнить. Совпадение результата действия оператора с общепринятым смысловым или бытовым значением команды (как, например в фортране) является характерной особенностью так называемых языков П. высокого уровня, появившихся относительно недавно (60-е гг.). На ранних этапах развития вычислительной техники программы для ЭВМ писались машинными кодами («машинными словами») — громоздкими последовательностями цифр. Числовой способ выражения инструкций не позволял следить за смыслом составляемых из них «текстов» программ. Дополнительные ограничения возникали в связи с тем, что в различных конструкциях машин по-разному решались проблемы хранения электрических сигналов и управления ими. Соответственно каждый из типов ЭВМ был приспособлен к пониманию только своих команд и их сочетаний. В связи с этим профессия программиста долгое время являлась уделом избранных, а процесс П. был недоступен для неспециалистов. Это долгое время обусловливало почти полное отчуждение пользователя от ЭВМ. Создание языков П. высокого уровня — систем нотации машинных команд, близких к понятиям формулирования задач в определенных предметных областях, в значительной степени способствовало устранению барьера между пользователем и ЭВМ.
В настоящее время П. стало одной из наиболее рентабельных областей научного прогресса (объем продаж программных продуктов превышает аналогичные показатели для собственно ЭВМ — технических устройств, в которых они применяются, составив в 1988 г. только для США приблизительно 25 млрд. долларов). Вся современная стратегия использования ЭВМ — происходящий и углубляющийся процесс их широкого использования почти во всех сферах человеческой деятельности — наряду с достижениями микроэлектроники базируется на успехах П., которое развивается в трех взаимосвязанных направлениях теоретическое П.
изучает принципы и способы построения программ, имея конечной целью автоматический (с помощью ЭВМ) синтез программ для решения любых задач; системное П. направлено на создание комплексов программ длительного и массового использования, обеспечивающих пользователям максимум удобств и возможностей (с помощью посредников или самостоятельно) для применения вычислительной техники при решении основного множества универсальных задач; прикладное П. обслуживает конкретные (в т.ч. уникальные или узкоспециальные) потребности в применении ЭВМ представителями различных областей науки и практики.Наиболее очевидный прогресс в П. достигнут в сфере разработки системного программного обеспечения. Его основа — комплекс программ, постоянно находящихся в памяти ЭВМ для осуществления взимосвязи человека с машиной и управления различными ее устройствами (так называемые операционные системы). Знание возможностей и особенностей операционных систем является основой успешного применения ЭВМ в интересах пользователя любой специальности.
Машины разных типов и марок, имеющие одинаковые операционные системы и позволяющие выполнять программы, написанные для других ЭВМ с такой же операционной системой, называют совместимыми (IBM-совместимыми называют, например, выпускаемые различными производителями компьютеры, совместимые с ЭВМ типа IBM РС. совместимы машины единой серии ЕС и др.). Операционные системы представляют собой комплекс программ, связывающих все устройства ЭВМ в единое целое. Они обеспечивают запуск ЭВМ и ее внешних устройств (стартовая программа), управление очередностью выполнения программ (так называемая программа-диспетчер), ввод программ в оперативную память (программа-загрузчик), поиск информации на внешних устройствах (работа с файлами), учет состояния и ресурсов памяти (администратор) и т.д. Современные версии операционных систем кроме своего основного предназначения обеспечивают возможность инициации комплексных заданий ЭВМ с помощью одной или нескольких простых команд на почти «человеческом языке». Работа на персональных ЭВМ сопровождается, как правило, появлением на экране ясных подсказок и комментариев (указание ошибок и способов их исправления; предписание очередности и характера действий по исполнению задания и пр.), что среди прочих причин и создает компьютерам репутацию «умных». Однако на самом деле «интеллект» серийных ЭВМ в значительной мере обусловлен достижениями П.
в области создания «дружественного интерфейса» — программного обеспечения, максимально приспособленного к образу мышления и нуждам далеких от специфических проблем П. пользователей. Области повседневной работы, для которых создаются пакеты прикладных программ, охватывают самые разнообразные и распространенные интересы пользователей.К ним относятся: подготовка текстовых и графических материалов от простейшего редактирования текста до сложнейшего создания цветных негативов для массового тиражирования печатной продукции (настольная типография), многообразные способы обработки информационных материалов на основе так называемых систем управления базами данных (СУБД) — средства работы с различными документами (электронные каталоги, «досье» и таблицы); осуществление разнообразных расчетных и проектных работ вплоть до подготовки рабочих чертежей изделий — системы автоматического проектирования (САПР); многочисленные пакеты прикладных программ для математической обработки данных, моделирования и прогнозирования (см. Математические методы в медицине); экспертные системы — максимально «интеллектуализированные» пакеты прикладных программ, предусматривающие активное участие пользователя в процессе принятия решений в различных областях деятельности на основе совокупности объективных данных и обобщенного опыта квалифицированных специалистов, и многие другие. Как правило, современные пакеты прикладных программ ориентируются для работы в диалоговом (интерактивном) режиме: ЭВМ и пользователь взаимно обмениваются информацией через систему вопросов и ответов. Инициация в ведении диалога может принадлежать как человеку, так и компьютеру. Интерактивный режим удобен и в значительной степени имитирует наиболее распространенные поведенческие и интеллектуальные формы действия человека. Параллельно с ростом вычислительных возможностей и доступности ЭВМ все более реальным становится решение проблемы, поставленной еще на заре компьютерной эры: максимального сближения интеллектуальных качеств человека и компьютера, слияния их способностей в единый человекомашинный сверхинтеллект, в котором взаимодополняются и используются все их уникальные особенности. Новый уровень понимания П. как подхода по обеспечению беспрепятственного обмена (ввода — вывода) информации в системе человек — машина, как технологии переработки информации любой структуры и вида в ЭВМ — ключевых вопросов разработки интеллектуальных систем ближайшего будущего — стал одной из причин объединения усилий создателей микропроцессорной техники и программных средств в рамках информатики,
от которой ожидается значительный прогресс.Другой важной проблемой, осознание которой стимулировало ускоренное развитие П., явилось возникновение конфликтной ситуации между максимально возможной производительностью программиста (за рабочий день специалист высшей квалификации может составить программу или ее блок «длиной» в несколько сотен операторов) и постоянно растущей производительностью ЭВМ (современный персональный компьютер производит порядка 1 миллиона операций в секунду, а супер-ЭВМ — миллиарда). Путь устранения этого противоречия на основе создания универсальных пакетов прикладных программ, позволяющих пользователю самостоятельно или с привлечением специалиста адаптировать их к собственным проблемам, является развитием традиционного направления и поэтому, по мнению экспертов недостаточно радикален для того, чтобы разрешить эту проблему. Подсчитано, что если пытаться распространить существующие методы П. на удовлетворение потенциальных потребностей пользователей в программных продуктах, то необходимо в 3—4 раза повысить производительность труда программистов и в 10—20 раз увеличить надежность (время работы без отказов) программ. С учетом устойчивой тенденции к приросту парка машин (в последнее пятилетие каждые полгода в мире происходит удвоение общей емкости памяти ЭВМ всех классов) это означает, что никакое разумное увеличение числа программистов не в состоянии уже в обозримом будущем обеспечить пользователей гаммой готовых программ, соответствующих как потенциальному многообразию областей применения ЭВМ, так и разрешаемых с их помощью задач. Прогноз показывает, что для полного использования производительности парка ЭВМ ожидаемая потребность в программистах соизмерима с численностью населения земного шара, если не будут найдены новые подходы к программированию.
Глубокая по сути, а не по формальной имитации (как это имеет место в простейших диалоговых системах), «интеллектуализация» является магистральным направлением работ, осуществляемых во многих странах с целью создания «автоматического программиста», которому достаточно дать задание на обычном (или профессиональном) языке, чтобы оно было преобразовано в программу решения этой задачи на ЭВМ. Специалисты предполагают, что к началу 21 в. все ЭВМ будут оснащены такими устройствами. Однако разработка «универсальных» (в виде пакетов) прикладных программ, действующих в интерактивном режиме, все более мощных и удобных, еще много лет будет ведущей задачей программирования.
Ваш комментарий