Краткая история и классификация языков программирования

Лекция 5

^ Программное обеспечение компьютера

План лекции:

1.
Уровни программного обеспечения

2.
Базовое программное обеспечение

3.
Системное программное обеспечение

4.
Служебное программное обеспечение

5.
Прикладное программное обеспечение

Новые термины и понятия: программа, программное обеспечение, базовое программное обеспечение, системное программное обеспечение, служебное программное обеспечение, прикладное программное обеспечение, операционная система, файловый менеджер.

^ 1. Уровни программного обеспечения

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

Программа (program, routine) – упорядоченная последовательность команд (инструкций) компьютеру для решения задачи. Конечная цель любой компьютерной программы – управление аппаратными средствами. Основные элементы программирования:

1.
Ввод данных

2.
Вычисления, действия

3.
Ветвление

4.
Условный и безусловный переход

5.
Цикл

6.
Вывод результатов

7.
Массивы

8.
Подпрограммы

И т.д.

Программное обеспечение – совокупность программ обработки данных.

Программное и аппаратное обеспечение в компьютере работают в неразрывной связи и непрерывном взаимодействии. Несмотря на то, что программное и аппаратное обеспечение рассматриваются раздельно, нельзя забывать, что между ними существует диалектическая связь, и раздельное рассмотрение их является условным.

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

Различают четыре уровня программного обеспечения:

  • базовый уровень;
  • системный уровень;
  • служебный уровень
  • прикладной уровень.

Следует отметить, что труд Н.А.Бернштейна (1947) О построении движений выделяет пять уровней, на которых строятся движения. Болеенизкие, базовые уровни отвечают за простейшие движения, более высокие – за сложные движения, однако, функционирование более высокихуровней невозможно без низких уровней.

^ 2. Базовое программное обеспечение

Самый низкий уровень программного обеспечения представляет базовое программное обеспечение. Оно отвечает за взаимодействие сбазовыми аппаратными средствами. Как правило, программные средства этого уровня входят непосредственно в состав базового оборудованияи хранятся в специальных микросхемах, называемых постоянными запоминающими устройствами (ПЗУ – Read Only Memory, ROM).Программы и данные записываются (прошиваются) в микросхемы ПЗУ на этапе производства и не могут быть изменены в процессеэксплуатации. Комплект программ находящихся в ПЗУ образует базовую систему ввода-вывода (BIOS – Basic Input Output System). Основноеназначение BIOS на этапе загрузки компьютера – проверить работоспособность системы.

В тех случаях, когда изменение базовых программных средств во время эксплуатации является технически целесообразным, вместо микросхемПЗУ применяют перепрограммируемые постоянные запоминающие устройства (ППЗУ). В этом случае содержание ППЗУ можно изменять.

^ Функции и назначения базовой системы ввода-вывода

BIOS самый близкий к аппаратуре компонент.

Основная функция BIOS заключается в управлении стандартными внешними и внутренними устройствами:

  • монитором
  • клавиатурой
  • дисководами
  • принтером
  • таймером

Вспомогательные функции реализуются при включении ПК на этапе загрузки.

  • тестирование аппаратного обеспечения, в том числе оперативной памяти. В случае обнаружения неисправности выводится индикация
  • инициализация векторов прерывания нижнего уровня (ранжирование устройств ПК по степени значимости, «важности»)
  • поиск сначала на гибком, затем на жестком диске программы-загрузки ОС и загрузка ОС в оперативную память

^ 3. Системное программное обеспечение

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

К системному программному обеспечению относятся:

  • операционная система
  • операционные оболочки
  • файловые менеджеры

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

На IBM-совместимых компьютерах устанавливаются следующие операционные системы:

  • MS-DOS (Microsoft Disk Operating System, фирма Microsoft) (в настоящее время устарела)
  • Windows 95, Windows 98, Windows 2000; Windows XP (фирма Microsoft)
  • UNIX (фирма Bell Laboratories)
  • Linux (разработчик Линус Торвальдс)

На компьютерах Macintosh чаще всего устанавливается Mac OS 10.

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

В настоящее время наибольшее распространение имеют:

  • Novel NetWare (фирма Novell)
  • Windows NT, Windows Server (фирма Microsoft)
  • LAN Server (Local Area Network)

Операционные-оболочки и файловые менеджеры. Во времена господства на IBM-совместимых компьютерах операционной системы MS-DOS пользователю было очень трудно с ней взаимодействовать. Это было связано с тем, что диалог с операционной системой проводился в виде ввода в компьютер команд с клавиатуры. Пользователь должен был помнить формат (правила записи) каждой команды, что вызывало определенные затруднения. Пользовательский интерфейс также оставлял желать лучшего. В связи с необходимостью облегчить пользователю взаимодействие с операционной системой появились операционные оболочки – специальные программы, предназначенные для облегчения общения пользователя с командами операционной системы. Самой популярной программой-оболочкой стала программа Norton Commander(фирма Symantec). Кроме того, в нашей стране использовались также другие операционные оболочки: Windows 3.1 – Windows 3.11 (фирма Microsoft); DOS Navigator (Rit Research Labs); FAR (Евгений Рошаль).

С появлением операционных систем, имеющих графический интерфейс, например, Windows 95, потребность в таких программах-оболочках отпала, однако те удобства, которые были предоставлены пользователям при базовых приемах работы с файлами (копирование, перемещение, переименование) были настолько велики, что появились программы под названием файловые менеджеры. В нашей стране наиболее распространена программа Windows Commander (рис.3.1).

^ 4.Служебное программное обеспечение

Расширением системного программного обеспечения компьютера является набор сервисных, дополнительно устанавливаемых программ,которые можно классифицировать по функциональному признаку следующим образом:

  • программы-утилиты
  • антивирусные программы
  • программы-архиваторы
  • языки программирования

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

В настоящее время широко распространены следующие программы-утилиты: ^ Norton Utilities, SiSoft Sandra (рис. 3.2), Fix-It, дающие исчерпывающую информацию о всех компонентах компьютера.

Антивирусные программы –программы, позволяющие обнаруживать и уничтожать компьютерные вирусы.

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

В настоящее время наиболее популярными антивирусными программами являются: ^ Dr Web, Norton Antivirus, Антивирус Касперского (KAV или AVP). Программа Dr Web (рис. 3.3) в 2000 году была признана лучшей в мире.

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

Архивация (упаковка) – помещение исходных файлов в архивный файл в сжатом или несжатом виде.

Разархивация (разупаковка) – процесс восстановления файлов из архива в точно таком виде, какой они имели до загрузки в архив.

В настоящее время самыми распространенными программами–архиваторами являются программы WinRAR (рис. 3.5) и WinZip.

Особенностью современных программ-архиваторов является создание самораспаковывающихся архивов. Архивы такого рода создаются в видеexe – файлов.

Языки программирования (Инструментальное ПО) служат для написания новых программ.

Программы для первых компьютеров приходилось писать на машинном языке, т.е. в кодах, непосредственно воспринимаемых компьютером. Это было очень тяжелой, малопроизводительной и кропотливой работой, в ходе которой можно было весьма легко ошибиться. Для облегчения процесса программирования в начале 50-х годов были разработаны системы, позволяющие писать программы не на машинном языке, а с использованием мнемонических обозначений машинных команд, имен точек программы и т.д. Такой язык для написания программ называетсяавтокодом, или языком ассемблера. Программы на ассемблере очень просто переводятся в машинные команды, это делается с помощью специальной программы, которая также называется ассемблером. Ассемблер и сейчас часто используется при программировании в тех случаях, когда требуется достичь максимального быстродействия и минимального размера программ либо наиболее полно учесть в программе особенности компьютера.

Однако написание программ на языке ассемблера все же весьма трудоемко. Для этого программист должен очень хорошо знать систему команд соответствующего компьютера, а в ходе работы ему приходится бороться не столько со сложностями решаемой задачи, сколько с переводом необходимых действий в машинные команды. Поэтому и после появления ассемблеров многие исследователи продолжали попытки облегчить процесс программирования, «научив» компьютеры понимать более удобные для человека языки составления программ. Такие языки стали называть языками программирования высокого уровня, а языки ассемблера и другие машинно-ориентированные языки — языками низкого уровня. Программы на языках высокого уровня либо преобразуются в программы, состоящие из машинных команд (это делается с помощью специальных программ, называемых трансляторами или компиляторами), либо интерпретируются с помощью программ-интерпретаторов.

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

Первый коммерчески используемый язык программирования высокого уровня Фортран был разработан в 1958 году в фирме IBM под руководством Джона Бэкуса. Этот язык был предназначен, прежде всего, для научных вычислений и он (в усовершенствованном варианте) до сих пор широко используется в данной области. Для других применений было разработано множество различных языков высокого уровня, но широкое распространение получили лишь немногие из них, в частности Си и Си++, Паскаль, Бейсик, Лого, Форт, Лисп, Пролог, в последнее время — Java, и др.

Краткая история и классификация языков программирования

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

Для того, чтобы облегчить общение человека с ЭВМ, были созданы языки программирования типа Ассемблер. Переменные величины стали изображаться символическими именами. Числовые коды операций заменились на мнемонические обозначения, которые легче запомнить. Язык программирования приблизился к человеческому языку, и отдалился от языка машинных команд.

Один из первых языков программирования – ^ Фортран (Formula Translation) был создан в середине 50-х годов. Благодаря своей простоте и тому, что на этом языке накоплены большие библиотеки программ Фортран, и в наши дни он остается одним из самых распространенных. Он используется для инженерных и научных расчетов, для решения задач физики и других наук с развитым математическим аппаратом.

Для решения экономических задач был создан язык программирования — ^ Кобол.

Расширение областей применения ЭВМ влечет за собой создание языков, ориентированных на новые сферы применения: Снобол – алгоритмический язык для обработки текстовой информации. Лисп — алгоритмический язык для обработки символов. Лисп находит широкое применение в исследованиях по созданию искусственного интеллекта.

В 1968 году был объявлен конкурс на лучший язык программирования для обучения студентов. Победителем стал язык Алгол-68, но широкого распространения не получил. Для этого конкурса Никлаус Вирт создал язык Паскаль, достаточно простой, удобный, с наличием мощных средств структурирования данных. Хотя Паскаль был разработан как язык для обучения программированию, он впоследствии получил широкое развитие и в настоящее время считается одним из самых используемых языков. Для обучения младших школьников Самуэлем Пайпертом был разработан язык Лого. Он отличается простотой и богатыми возможностями.

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

Необходимость разработки больших программ, управляющих работой ЭВМ, потребовала создания специального языка программирования СИ в начале 70-х г. Он является одним из универсальных языков программирования. В отличие от Паскаля, в нем заложены возможности непосредственного обращения к некоторым машинным командам и к определенным участкам памяти компьютера. Си широко используется как инструментальный язык для разработки операционных систем, трансляторов, баз данных и других системных и прикладных программ. Си – это язык программирования общего назначения, хорошо известный своей эффективностью, экономичностью, и переносимостью. Во многих случаях программы, написанные на Си, сравнимы по скорости с программами, написанными на языке Ассемблера. При этом они имеют лучшую наглядность, и их более просто сопровождать. Си сочетает эффективность и мощность в относительно малом по размеру языке.

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

В 80-х годах 20 века был создан язык Ада. Этот язык в дополнение к классическим свойствам, обеспечивает программирование задач реального времени и моделирования параллельного решения задач.

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

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

Следующую, существенно более многочисленную группу составляют языки программирования высокого уровня. Это Фортран, Алгол, Кобол, Паскаль, Бейсик, Си, Пролог и т.д. Эти языки машинно-независимы, т.к. они ориентированы не на систему команд той или иной ЭВМ, а на систему операндов, характерных для записи определенного класса алгоритмов. Однако программы, написанные на языках высокого уровня, занимают больше памяти и медленнее выполняются, чем программы на машинных языках.

К языкам сверхвысокого уровня можно отнести лишь Алгол-68 и APL. Повышение уровня этих языков произошло за счет введения сверхмощных операций и операторов.

Другая классификация делит языки на вычислительные и языки символьной обработки. К первому типу относят Фортран, Паскаль, Алгол, Бейсик, Си, ко второму типу — Лисп, Пролог, Снобол и др.

В современной информатике можно выделить два основных направления развития языков программирования: процедурное и непроцедурное.

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

Среди процедурных языков выделяют в свою очередь структурные и операционные языки. В структурных языках одним оператором записываются целые алгоритмические структуры: ветвления, циклы и т.д. В операционных языках для этого используются несколько операций. Широко распространены следующие структурные языки: Паскаль, Си, Ада, ПЛ/1. Среди операционных известны Фортран, Бейсик, Фокал.

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

В функциональных языках программа описывает вычисление некоторой функции. Обычно эта функция задается как композиция других, более простых, те в свою очередь разлагаются на еще более простые и т.д. Один из основных элементов в функциональных языках — рекурсия, то есть вычисление значения функции через значение этой же функции от других элементов. Присваивания и циклов в классических функциональных языках нет.

В логических языках программа вообще не описывает действий. Она задает данные и соотношения между ними. После этого системе можно задавать вопросы. Машина перебирает известные и заданные в программе данные и находит ответ на вопрос. Порядок перебора не описывается в программе, а неявно задается самим языком. Классическим языком логического программирования считается Пролог. Построение логической программы вообще не требует алгоритмического мышления, программа описывает статические отношения объектов, а динамика находится в механизме перебора и скрыта от программиста.

Можно выделить еще один класс языков программирования — объектно-ориентированные языки высокого уровня. На таких языках не описывают подробной последовательности действий для решения задачи, хотя они содержат элементы процедурного программирования. Объектно-ориентированные языки, благодаря богатому пользовательскому интерфейсу, предлагают человеку решить задачу в удобной для него форме. Примером такого языка может служить язык программирования визуального общения Object Pascal.

^ Языки описания сценариев, такие как Perl, Python, Rexx, Tcl и языки оболочек UNIX, предполагают стиль программирования, весьма отличный от характерного для языков системного уровня. Они предназначаются не для написания приложения с нуля, а для комбинирования компонентов, набор которых создается заранее при помощи других языков. Развитие и рост популярности Internet также способствовали распространению языков описания сценариев. Так, для написания сценариев широко употребляется язык Perl, а среди разработчиков Web-страниц популярен JavaScript.

^ 5. Прикладное программное обеспечение

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

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

  • офисные пакеты
  • графические редакторы
  • программы распознавания текста
  • программы обработки данных;
  • программы-переводчики
  • мультимедиа-программы
  • программы для работы в Интернете

Офисные пакеты

Данный класс включает перечень прикладных программ, предназначенных для широкого использования. В этот класс входят:

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

Наиболее распространенным пакетом этого класса является пакет Microsoft Office различных версий (97, 2003, 2007).

Графические редакторы

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

  • растровые редакторы;
  • векторные редакторы;
  • программные средства для создания и обработки трехмерной графики (3D — редакторы).

Растровые редакторы применяют в тех случаях, когда графический объект представлен в виде комбинации точек, образующих растр и обладающих свойствами яркости и света. Такой подход эффективен в тех случаях, когда информация о цвете элементов, составляющих объект важнее, чем информация об их форме. Это характерно для фотографий. Примером растровых редакторов являются: Adobe Photoshop, Microsoft Photo Editor, Photo Plus, FotoCanvas, Paint и др. Форматы: JPG, BMP, TIFF и др.

^ Векторные редакторы отличаются от растровых способом представления данных об изображении. Элементарным объектом векторного изображения является не точка, а линия. Такой подход характерен для чертежно-графических работ, в которых форма линий имеет большее значение, чем информация о цвете отдельных точек, ее составляющих. В векторных редакторах каждая линия рассматривается как математическая кривая третьего порядка и, соответственно, представляется не комбинацией точек, а математической формулой. Такое представление намного компактнее, чем растровое. Примером векторной графики являются программы: CorelDRAW 10, Adobe Dimensions, Adobe Illustrator, Macromedia Free Hand.

Редакторы трехмерной графики используются для создания трехмерных композиций. Они имеют две характерные особенности. Во-первых, они позволяют гибко управлять взаимодействием свойств поверхности изображаемых объектов со свойствами источников освещения, и, во-вторых, позволяют создавать трехмерную анимацию. Примерами программ трехмерной графики являются 3DS Max (3D Studio), Maya 3D Canvas и др.

Программы распознавания текста

Ввести со сканера текст в компьютер несложно, однако редактировать такой текст невозможно, так как страница с текстом представляет собой графический файл – обычную картинку. Однако существуют программы, способные перевести сканированный текст из графического в текстовый формат. Эти программы называются программами распознавания текста или OCR (Optical character Recognition). Примерами таких программ являются FineReader и GineiForm.

Программы обработки данных

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

В настоящее время разработано большое количество программ, осуществляющих статистическую обработку данных. К этим программам относятся: STATGRAPHICS plus for Windows, STATISTICA, SPSS, S-PLUS PRO 2000.

Более мощные пакеты, включающие в себя как решение различных вычислительных, математических и графических задач: MathCad 2001 Pro, 3D Grapher, Matlab 6, Mathematica 4.1, др.

Программы-переводчики позволяют осуществлять автоматизированный перевод текста с одного языка другие. В настоящее время наиболее распространены программы-переводчики PROMT, STILUS, Сократ.

Мультимедиа-программы

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

  • обучающие программы, например, «Анатомия», «Вышивание» и др
  • энциклопедии и энциклопедические словари, например, Большая Энциклопедия Кирилла и Мефодия, Большой энциклопедический словарь, Britannica, Microsoft Encarta, Толковый словарь Даля, Толковый словарь Ожегова, Передвижники, Классическая музыка
  • сборники эстрадной и классической музыки, содержащие текстовую, графическую и видеоинформацию об исполнителях: Romantic Hits, Madonna
  • компьютерные игры: 3D-Action (Doom, Quake); Adventure (Tomb Raider); Квесты (Гарри Потер); стратегии (Starkraft, Warkraft, Age of Empire), гонки (Need for Speed)
  • различные видеофильмы

Программы для работы в Интернете

  • электронная почта (OutlookExpress)
  • броузеры (Intrnet Explorer, Netscape communicator)
  • поисковые машины (Rambler, Яndex, Yahoo, Altavista)
  • редакторы Web-страниц (Word, Front Page Express)
  • программы для IP-телефонии

Литература

1.
Информатика: Учебник /Под ред. Н.В.Макаровой.– М.: Финансы и статистика, 1998.–c.

2.
Леонтьев В., Турецкий Д. Новейшая энциклопедия программ.– М.: Олма-Пресс, 2002.- С. 846 с.

Лекция 6.

Компьютерные сети

История появления и развития программирования и ЭВМ


Похожие статьи.

Понравилась статья? Поделиться с друзьями: