logo search
217 Информационные технологии в ЭИС

4.3. Системы программирования.

Составной частью системного (общего) программного обеспечения являются системы программирования с соответствующими языками программирования. Системы программирования предназначены для совершенствования процесса разработки и отладки программ, т.е. для повышения эффективности и производительности труда программистов.

Комплекс средств, включающих в себя входной язык программирования (исходный язык), транслятор, машинный язык, библиотеки стандартных программ, средства отладки оттранслированных программ и компоновки их в единое целое, называется системой программирования.

Так как каждое семейство ЭВМ имеет свой собственный, специфический внутренний (машинный) язык и может выполнять лишь те команды, которые записаны на этом языке, то для перевода исходных программ на машинный язык используются специальные программы – трансляторы. Работа всех трансляторов строится по одному из 2х принципов: интерпретации или компиляции.

Интерпретация осуществляет пошаговую трансляцию и немедленное выполнение оттранслированного оператора исходной программы. Трансляторы – интерпретаторы поддерживают диалоговый режим, их легче разрабатывать, обходятся дешевле, чем компиляторы с того же языка. Однако при интерпретации программа на машинном языке не сохраняется, и поэтому при каждом запуске исходной программы на выполнение ее нужно (пошагово) транслировать заново. Кроме этого, интерпретирующая команда должна находиться в памяти ЭВМ в течение всего процесса выполнения исходной программы, т.е. занимать определенный объем памяти.

При компиляции процессы трансляции и выполнение программы разделены во времени. Сначала компилируемая программа преобразуется в набор объектных модулей на машинном языке, которые затем собираются (компонуются) в единую машинную программу, готовую к выполнению в виде файла на магнитном диске. Это программа может быть выполнена многократно без повторной трансляции. Следовательно, для одной и той же программы трансляция методом компиляции обеспечивает более высокую производительность вычислительной системы при сокращении требуемой оперативной памяти.

Большая сложность в разработке компилятора по сравнению с интерпретатором с того же самого языка объясняется тем, что компиляция включает два действия: анализ, т.е. определение правильности исходной программы в соответствии с правилами построения языковых конструкции входного языка, и синтез - генерирование эквивалентной программы в машинных кодах.

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

Языки программирования, или алгоритмические языки, классифицируются: по степени их зависимости от вычислительной машины, по назначению (ориентация на ту или иную сферу применения), по специфике организационной структуры языковых конструкции и т.п. (рис.4.1.).

С учетом зависимости от ЭВМ языки программирования подразделяются на машинно - зависимые и машинно - независимые.

К машинно – зависимым языкам относятся машинные (т.е. языки, непосредственно используемые для управления работой отдельных устройств ЭВМ) и машинно – ориентированные языки (в отличие от машинных языков требуют предварительной трансляции на машинный язык программ, составленных с их помощью).

Машинный язык является внутренним языком ЭВМ и представляет собой систему инструкций и данных, которые не требуют предварительной трансляции и могут непосредственно интерпретироваться и исполняться аппаратными средствами ЭВМ.

К машинно – ориентированным языкам относятся: автокоды, языки символического кодирования и ассемблеры. Особое место в системе программирования занимают ассемблеры.

Ассемблер представляет собой мнемоническую (условную)запись машинных команд и позволяет получить высокоэффективные программы на машинном языке. Язык ассемблера используется для разработки системного программирования, т.е. программирования микропроцессора, разработки операционных систем, драйверов, программ увязки взаимодействия отдельных компонентов прикладных программ и т.д. Однако его использование требует высокой классификации программиста и больших затрат времени на составление и отладку программ.

Машинно - независимые языки (или языки высокого уровня) не требуют от пользователя знания специфики ЭВМ, на которой реализуется программа решения задачи. Решение задачи на этих языках описывается в наглядном, достаточно легко воспринимаемом виде. Для них характерны: возможность написания выражений, символическая идентификация переменных, вызов функций по именам и т.д.

Машинно-независимые языки классифицируются на процедурно – ориентированные, проблемно – ориентированные и объектно-ориентированные.

Процедурно – ориентированные (универсальные) языки эффективны для описания алгоритмов решения широкого класса задач. Это языки: Фортран, Кобол, ПЛ/1, Бейсик, Паскаль, Ада и др.

Проблемно – ориентированные языки предназначены для описания процессов обработки информации в более узкой, специфической области. Языками этой группы являются: РПГ, Лисп, АПЛ, GPSS и др.

Объектно-ориентированные языки ориентированы на разработку программных приложений для широкого круга разнообразных по сфере приложения задач, имеющих общность в реализуемых компонентах (например, при взаимодействии с БД, работе в условиях функционирования корпоративных сетей организаций или взаимодействия с глобальной сетью Internet). Объектно-ориентированный подход в программировании позволяет применять одни и те же (типовые) архитектурные и концептуальные решения для быстрого создания эффективных программных приложений. Наиболее известные языки этого класса – Delphi, Visual Basic, Java и др.

Обособленное, промежуточное положение между машинно-независимыми и машинно-зависимыми языками занимает язык Cu, создание которого явилось результатом попытки объединения достоинств, присущих языкам обоих классов:

- в плане максимального использования возможностей конкретной вычислительной архитектуры, благодаря чему программы на языке Cu компактны и работают эффективно;

- в плане максимального использования мощных выразительных возможностей современных языков высокого уровня.

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

Основное достоинство алгоритмических языков высокого уровня - возможность описания программ решения задач в форме, максимально удобной для восприятия человеком.

РЕЗЮМЕ.

Вопросы для самоконтроля и задания.

  1. Для чего необходимо классифицировать программное обеспечение ИС?

  2. В чем различие между операционной системой и операционной оболочкой.

  3. Назовите функции операционных систем.

  4. Расскажите о видах интерфейса пользователя, применяемых в разных операционных системах.

  5. Каковы особенности операционной системы Windows 98?

  6. Перечислите функции ОС Windows 98 по обслуживанию файловой структуры.

  7. Отличие Windows 98 от Windows 95.

  8. Дайте структуру главного меню Windows 98.

  9. Дайте характеристику наиболее популярных операционных оболочек.

  10. Какие программные средства называются утилитами и каковы их функции?

  11. Какие утилиты входят в Norton Navigator?

  12. Что входит в состав системы программирования?

  13. В чем принципиальное различие между интерпретацией и компиляцией программы?

  14. Как классифицируются языки программирования?

  15. Самостоятельно осуществите работу с файлами и папками в Windows 95/98. Файловые операции.

    1. Создайте новую папку на диске (например, А:) в папке Мой компьютер. Это делается следующим образом: дважды щелкните мышью на значке диска А:, в меню Файл выберите команду Создать, в появившемся подменю выберите пункт Правка, после чего появится значок Новая папка, выберите команду Переименовать в меню Файл, замените подпись Новая папка на имя Моя папка, в результате в окне появится папка Моя папка.

    2. Скопировать в созданную папку все файлы из текущей рабочей папки, например файлы из Excel \ Example \.

    3. Создать ярлык для новой папки и переместить его на рабочий стол.

    4. Выделить несколько расположенных подряд файлов в рабочей папке. Переместить выделенные файлы в другую папку.

    5. Удалить несколько (ненужных) файлов командой Удалить в меню Файл или нажатием кнопки Удалить. Какой способ лучше?

    6. Найти некоторый файл документа по команде Файлы и папки в меню Поиск, учитывая следующие критерии: имя, расширение, размер, дату последней модификации, заголовок какого-нибудь раздела или содержание отрывка текста из документа.

    7. Вызвать контекстное меню, щелкнув правой кнопкой мыши на пустой области рабочего стола. Выбрать команду Упорядочить значки, расположить значки в алфавитном порядке.

    8. В окне Windows выбрать любой текстовый файл и просмотреть его с помощью команды Быстрый просмотр.

    9. Просмотреть сводную информацию о любом несетевом диске, вызвав на экран диалоговое окно Свойства следующими способами: выбрав команду Свойства из меню Файл; щелкнув правой кнопкой мыши по значку диска и выбрав нужную команду из контекстного меню; щелкнув по кнопке Свойства на панели инструментов; выделив значок диска и нажав Alt + ENTER. Определите оптимальный способ вызова окна Свойства.

    10. Завершите работу с Windows 95/98.

  16. Выполните самостоятельную работу по теме «Стандартные программы для работы с текстовыми и графическими документами». (Текстовый редактор Word Pad, графический редактор Paint).

  17. Произвести просмотр, переименование, удаление, редактирование, добавление, поиск файлов с использованием операционной оболочки Norton Commander.

Тесты для самоконтроля знаний.

  1. Программное обеспечение ИС делится на:

а) операционные системы и прикладные программы

в) системное и прикладное

с) иерархические и фасетные системы

d)однозадачные и сетевые системы

e) оно не делится. Это интегрированная система.

  1. Какая из основных элементов системного программного обеспечения управляет вычислительным процессом?

a) операционная система

в) операционная оболочка

с) средства технического обслуживания

d) системы программирования

e) утилиты.

  1. По какому признаку ОС делятся на командные и объектно – ориентированные?

    1. по количеству процессоров

    2. по разрядности кода ОС

с)по типу интерфейса

d)по типу доступа пользователя к ЭВМ

e) признак отсутствует

  1. Какой пункт главного меню Windows 98 открывает доступ к некоторым логическим папкам пользователя, в которых он может использовать наиболее часто используемые документы?

    1. программы

    2. найти

с) избранное

d) документы

e) настройка

  1. Среди перечня оболочек наибольшую популярность имеет:

    1. DOS NAVIGATOR

    2. Microsoft Internet Explorer

    3. WinRAR

d) Norton Commander

e) Dask Board for Windows

  1. Назовите утилиту пакета Norton Navigator, которая упрощает навигацию папок с использованием контекстного меню.

    1. Norton File Monger

    2. Norton Taskbar

c) Norton Folder Navigator

    1. Norton Navigator Control

    2. Norton Indexing

  1. Какой из элементов не входит в состав системы программирования?

    1. транслятор

    2. библиотека стандартных программ

    3. языки программирования

    4. входной язык

е) сервисные программы

  1. К каким языкам относится язык символического кодирования:

    1. машинным

b)машинно – ориентированным

с) проблемно – ориентированным

d) процедурно – ориентированным

e) объектно – ориентированным

  1. По какому признаку делятся алгоритмические языки на машинно – зависимые и машинно – независимые?

    1. по назначению

    2. по специфике структуры языковых конструкций

с) в зависимости от вычислительной машины

d) признак не указан

e) в зависимости от транслятора

  1. Какой язык требует высокой квалификации программистов?

    1. Cu

    2. Java

c) Ассемблер

d) Лисп

e) Delphi

Карта ответов на тесты самоконтроля по теме 4.

Номер вопроса

Правильный ответ

Ссылка на тему (подтему), поясняющая правильный ответ

1

B

4.1

2

A

4.1

3

C

4.1

4

C

4.1

5

D

4.2

6

C

4.2

7

E

4.3

8

B

4.3

9

C

4.3

10

C

4.3