6. ЭКСПЛУАТАЦИЯ ПРОГРАММЫ. Для программы, прошедшей отладку, разрабатывается эксплуатационная документация, после чего она готова для практического использования на компьютере. Разработанная программа и ее сопроводительная документация передается заказчику, который начинает ее эксплуатацию. Очень часто процесс решения задачи или создания программы на этом не завершается. В процессе эксплуатации не редко у пользователей возникают предложения по усовершенствованию и улучшению работы программы, о которых они сообщают разработчику программы для внедрения.
2.6. Системы программирования
При наличии десятков тысяч прикладных программ часто приходится сталкиваться с ситуацией, когда существующие программы не удовлетворяют или делают что-то недостаточно быстро или неэффективно. В этой ситуации единственный выход - написание собственной программы.
По природе своей компьютер может выполнять только простейшие операции, которые можно вводить одну за другой в его память прямо в машинных кодах. Изнурительная монотонность такой работы привела когда-то первых программистов к единственному решению - созданию ассемблеров, т. е. средств, упрощающих подготовку машинных кодов программ пользователей за счет написания их в некоторых мнемонических обозначениях с последующим автоматическим переводом. Дальнейшее развитие этих идей привело к созданию языков программирования высокого уровня, в которых длинные и сложные последовательности машинных операций были заменены одним единственным обозначающим их словом - оператор.
Специальные программы обеспечивают опосредованное "понимание" вычислительной машиной других языков программирования путем перевода текстов, составленных на этих языках, в тексты на машинном языке.
Под системой программирования понимают совокупность языка программирования и виртуальной машины, обеспечивающей выполнение реальной машиной программ, составленных на этом языке.
Языком программирования называют систему обозначений для точного описания алгоритмов для ЭВМ. Эти языки являются искусственными языками со строго определенным синтаксисом (строение предложения и правила сочетания слов) и семантикой (смысловое значение слов и оборотов речи), поэтому они не допускают свободного толкования конструкций, характерного для естественного языка (языка общения между людьми).
Языки программирования, если в качестве признака классификации взять синтаксис образования его конструкций, можно условно разделить на классы:
- машинные языки — языки программирования, воспринимаемые аппаратной частью компьютера (машинные коды);
- машинно-ориентированные языки (Ассемблера), которые отражают структуру конкретного типа компьютера (ассемблеры);
- алгоритмические языки (высокого уровня) — не зависящие от архитектуры компьютера языки программирования для отражения структуры алгоритма (Паскаль, Фортран, Бейсик и др.);
- процедурно-ориентированные языки — языки программирования, где имеется возможность описания программы как совокупности процедур (подпрограмм);
- проблемно-ориентированные языки — языки программирования, предназначенные для решения задач определенного класса (Лисп, РПГ, Симула и др.);
- интегрированные системы программирования.
Виртуальная машина - это программный комплекс, связывающий входной язык ЭВМ с другим, машинным языком. Виртуальная машина содержит транслятор и/или интерпретатор и может включать библиотеки подпрограмм, отладчик, компоновщик и другие сервисные средства.
Напомним, что транслятор представляет собой программу, осуществляющую перевод текстов с одного языка на другой. В системе программирования транслятор переводит программу с входного языка этой системы на машинный язык реальной ЭВМ (на которой функционирует данная система программирования или будет функционировать разрабатываемая программа) либо на промежуточный язык программирования, уже реализованный или подлежащий реализации. Одной из разновидностей транслятора является компилятор, обеспечивающий перевод программ с языка высокого уровня (приближенного к человеку) на язык более низкого уровня (близкий к ЭВМ), или машинозависимый язык. Другая разновидность транслятора - ассемблер, осуществляющий перевод программ с языка низкого уровня (языка Ассемблера) на машинный язык, имеющий примерно тот же уровень. Некоторые трансляторы служат для переноса программ с одной машины на другую. Программа, подающаяся на вход транслятора, называется исходной, а результат трансляции - объектной программой.
Диаметрально противоположными характеристиками обладает альтернативное средство реализации языка - интерпретатор. Интерпретатор представляет собой программный продукт, выполняющий предъявленную программу путем одновременного ее анализа и реализации предписанных ею действий. При использовании интерпретатора отсутствует разделение на две стадии (перевод и выполнение) и, более того, отсутствует явный перевод программы даже по частям перед очередным этапом выполнения. В действительности же распознается очередная конструкция программы и интерпретатором выполняются определяемые ею действия. После этого процессы анализа и реализации предписанных действий циклически повторяются.
Возможны и смешанные стратегии реализации языков программирования, например, трансляция на промежуточный язык с последующей интерпретацией промежуточной программы.
Программа на языке программирования состоит из последовательности операторов (инструкций), задающих те или иные действия. Основным является оператор присваивания, служащий для изменения содержимого областей памяти.
Выполнение программы сводится к последовательному выполнению операторов с целью преобразования исходного состояния памяти (т. е. значений переменных) в заключительное. Таким образом, с точки зрения программиста имеется программа и память, причем первая последовательно обновляет содержание последней.
Одним из важнейших классификационных признаков процедурных языков является их уровень. Уровень языка программирования определяется семантической (смысловой) емкостью его конструкций и его ориентацией на программиста-человека. Язык программирования (частично) ликвидирует семантический разрыв между методами решения задач машиной и человеком. Языки программирования, не зависящие от особенностей конкретной машины и ориентированные на широкий круг пользователей, считаются языками высокого уровня (по отношению к уровню машинных команд ЭВМ). Чем более язык ориентирован на программиста, тем выше его уровень.
Двоичный язык является не чем иным, как непосредственно машинным языком. В настоящее время такие языки программистами не применяются.
Шестнадцатиричный язык обеспечивает некоторое упрощение записи программы на машинном языке путем представления четырех двоичных цифр одной шестнадцатиричной. Этот язык используется в качестве дополнения к языкам высокого уровня, таким как Паскаль или СИ, для программирования критичных к времени выполнения фрагментов алгоритмов.
Язык Ассеблера - это язык, предназначенный для представления в удобочитаемой форме программ, записанных на машинном языке. Он позволяет программисту пользоваться мнемоническими кодами операций, по своему усмотрению присваивать символические имена регистрам ЭВМ и ячейкам памяти, а также задавать наиболее удобные в том или ином контексте схемы адресации. Кроме того, язык Ассемблера обеспечивает представление констант в различных системах счисления (например, в десятичной или шестнадцатиричной).
Язык Макроассемблера является расширением языка Ассемблера за счет включения макросредств и предоставляет средства определения и использования новых, более мощных команд как последовательностей базовых инструкций, что несколько повышает его уровень.
Языки Ассемблера и Макроассемблера применяются системными программистами-профессионалами с целью использования всех возможностей оборудования ЭВМ и получения эффективной, как по времени выполнения, так и по потребному объему памяти, программы.
Приведем краткий перечень наиболее распространенных языков программирования высокого уровня, которые имеют преимущественное распространение в настоящее время, причем имеют по несколько версий
Бейсик представляет собой простой язык программирования, разработанный в 1964 году для использования новичками. Работа в среде Бейсика первоначально велась только в режиме интерактивной (диалоговой) интерпретации. В настоящее время имеются и компиляторы с этого языка. В этом языке широко используются разного рода умолчания, что считается плохим тоном в большинстве современных языков. Несмотря на это, Бейсик очень популярен, в особенности на ПЭВМ. Существует множество его диалектов. Бейсик является одним из наиболее динамичных языков. Не без оснований этот язык иногда сравнивают с питоном, заглатывающим и переваривающим все новое, что появляется в других языках программирования. Уровень Бейсика нельзя определить однозначно. Современные диалекты весьма развиты и мало чем напоминают своего предка.
Язык Фортран был разработан в 1956 году, затем появились новые его версии Фортран-Н, Фортран-IV, Фортран-66, Фортран-77, Фортран-8х, Фортран-88. В свое время этот язык был поистине "рабочей лошадью" научных работников и широко используется в настоящее время, несмотря на его ограниченность и корявость. Он предоставляет пользователям большие возможности для обработки числовых данных, особенно комплексных чисел. Еще в версии Фортран-II впервые была реализована идея раздельной компиляции модулей, что дало возможность создавать библиотеки научных подпрограмм.
Язык программирования СИ первоначально разработан в 70-х годах. В настоящее время в СИ сочетаются достоинства современных высокоуровневых языков и возможность доступа к аппаратным средствам машины на уровне, который обычно ассоциируется с языком Ассемблера. СИ имеет синтаксис, обеспечивающий чрезвычайную краткость программ, а компиляторы, вследствие особенностей языка, способны генерировать быстрые и эффективные программы на машинном коде.
Язык программирования APL создан в 1969 году. К числу его основных преимуществ относятся богатый набор мощных операторов, позволяющих работать с многомерными массивами как с единым целым, атакже предоставление пользователю возможности определять собственные операторы. Основное его назначение - обработка массивов.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |


