Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методическое пособие 569

.pdf
Скачиваний:
7
Добавлен:
30.04.2022
Размер:
2.46 Mб
Скачать

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

1.Выполнение основных операции с файлами: копирование, перенос, удаление, создание, поиск и др.

2.Универсализм по отношению к любым файлам и

каталогам.

3.Вывод информации b о том или ином файле или

каталоге.

4.Обладание интуитивным, удобным, простым, наглядным интерфейсом.

5.Обладать расширенным набором операций по работе с файлами, большим, чем стандартный файл-менеджер ОС.

6.Поддержка максимального количества встроенных архиваторов.

7.Возможность просмотра большинства известных текстовых, мультимедийных файлов.

8.Поддержка сетевых протоколы, включая Internet-

протоколы.

9.Обладание встроенными средствами обслуживания дисков, дублируя стандартные средства ОС.

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

Рассмотрим несколько самых популярных программ данного класса:

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

41

стали сильно походить на эту программу.

Far Manager является так называемым консольным (псевдографическим) приложением Windows очень похожим на Norton Commander даже по части цветовой схемы. Поддерживает множество различных функций и позволяет самому добавлять различные возможности с помощью плагинов(plugins).

Total Commander (бывший Windows Commander) создан швейцарским программистом Кристианом Гислером по образу и подобию Norton Commanderа, используют, похоже, большинство пользователей Windows. Для выполнения своей основной задачи - работы с файлами ТС имеет двухпанельный однооконный интерфейс с командной строкой и большим набором "горячих " клавиш, существенно ускоряющих выполнение многих рутинных процессов. А благодаря большому количеству дополнительных функций(разрезание файлов на куски, удобная работа с архивами, с документами, встроенный мощный FTP-клиент и т.д.) TC позволяет отказаться от использования многих вспомогательных утилит.

6. Инструментальное программное обеспечение

Внастоящее время разработка любого программного обеспечения осуществляется с помощью систем программирования.

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

Вних обычно включаются следующие инструментальные средства:

трансляторы с языков высокого уровня,

которые

реализуются

в

виде

компиляторов

и

интерпретаторов;

 

 

 

 

 

Транслятор (англ. translator — переводчик) — это

программа-переводчик.

Она

преобразует

программу,

 

 

42

 

 

 

 

написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд.

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

Интерпретатор (англ. interpreter — истолкователь, устный переводчик) переводит и выполняет программу строка за строкой.

-интегрированная среда разработки;

-средства создания и редактирования текстов программ;

-обширные библиотеки стандартных программ и функций;

-отладочные программы, т.е. программы, помогающие находить и устранять ошибки в программе;

-"дружественная" к пользователю диалоговая среда;

-встроенные макроассемблеры (машинноориентированные языки);

-встроенная мощная справочная служба и т.д.

Ядро системы программирования составляет язык программирования (ЯП). Под языком программирования будем понимать алфавит, систему записи и набор правил,

определяющих синтаксис программы.

Эволюция языков программирования:

ЯП первого поколения были строго машинно-

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

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

43

и по сей день они используются для создания минимального по объему и максимального по производительности ПО.

В1954 году начинается третье поколение ЯП: в недрах корпорации IBM группой разработчиков во главе с Джоном Бэкусом (John Backus) был создан язык программирования Fortran. Значение этого события трудно переоценить. Это

первый язык программирования высокого уровня. Впервые программист мог по-настоящему абстрагироваться от особенностей машинной архитектуры. Ключевой идеей, отличающей новый язык от ассемблера, была концепция подпрограмм. Напомним, что это современные компьютеры поддерживают подпрограммы на аппаратном уровне, предоставляя соответствующие команды и структуры данных (стек) прямо на уровне ассемблера, в 1954 же году это было совершенно не так. Поэтому компиляция Fortran’а была процессом отнюдь не тривиальным. Кроме того, синтаксическая структура языка была достаточно сложна для машинной обработки в первую очередь из-за того, что пробелы как синтаксические единицы вообще не использовались. Язык Фортран использовался (и используется по сей день) для научных вычислений. Он страдает от отсутствия многих привычных языковых конструкций и атрибутов, компилятор практически никак не проверяет синтаксически правильную программу с точки зрения семантической корректности (соответствие типов и проч.). В нем нет поддержки современных способов структурирования кода и данных.

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

44

появляются новые его диалекты и реализации.

В1960 году командой во главе с Петером Науром (Peter Naur) был создан язык программирования Algol. Этот язык дал начало целому семейству Алгол-подобных языков (важнейший представитель — Pascal). В 1968 году появилась новая версия языка. Она не нашла столь широкого практического применения, как первая версия, но была весьма популярна в кругах теоретиков. Язык был достаточно интересен, так как обладал многими уникальными на так момент характеристиками.

В1963 году в Дартмурском колледже (Dartmouth College) был создан язык программирования BASIC (Beginners’ All-Purpose Symbolic Instruction Code — многоцелевой язык символических инструкций для начинающих). Язык задумывался в первую очередь как средство обучения и как первый изучаемый язык программирования. Он предполагался легко интерпретируемым и компилируемым. Надо сказать, что BASIC действительно стал языком, на котором учатся программировать (по крайней мере, так было еще несколько лет назад; сейчас эта роль отходит к Pascal). Было создано несколько мощных реализаций BASIC, поддерживающих самые современные концепции программирования (ярчайший пример — Microsoft Visual Basic).

В1964 году все та же корпорация IBM создала язык PL/1, который был призван заменить Cobol и Fortran в большинстве приложений. Язык обладал исключительным богатством синтаксических конструкций. В нем впервые появилась обработка исключительных ситуаций и поддержка параллелизма. Надо заметить, что синтаксическая структура языка была крайне сложной. В силу таких особенностей разработка компилятора для PL/1 была исключительно сложным делом. Язык так и не стал популярен вне мира IBM.

В1970 году Никлаусом Виртом был создал язык программирования Pascal. Язык замечателен тем, что это первый широко распространенный язык для структурного

45

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

В 1972 году Керниганом и Ритчи был создан язык программирования C. Он создавался как язык для разработки операционной системы UNIX. C часто называют «переносимым ассемблером», имея в виду то, что он позволяет работать с данными практически так же эффективно, как на ассемблере, предоставляя при этом структурированные управляющие конструкции и абстракции высокого уровня (структуры и массивы). Именно с этим связана его огромная популярность и поныне. И именно это является его ахиллесовой пятой. Компилятор C очень слабо контролирует типы, поэтому очень легко написать внешне совершенно правильную, но логически ошибочную программу.

Прежде всего, использование ЯВУ определяется наличием для него транслятора. В общем случае работа компилятора состоит из четырех основных фаз:

1.Лексический анализ - на основе исходного модуля идентифицируются различные символы и классифицируются на ключевые слова, числовые значения и т.д.

2.Синтаксический анализ - определяются синтаксические соотношения ключевых слов и строится структурный фундамент программы.

3.Генерация объектного модуля, который соответствует структуре разобранной компилятором

46

программе.

4. Оптимизация объектного модуля с целью повышения эффективности работы.

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

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

1.Проектирование программ сверху вниз

2.Модульное программирование(процедуры и

функции)

3.Структурное кодирование (запись на ЯП)

Языки четвертого поколения носили непроцедурный

характер, т.е. программы на таких языках описывают только что надо делать, но не как это сделать. Типичными примерами являются языки искусственного интеллекта или логического программирования. Родоначальником таких языков стал язык Prolog, появившийся в 1971 году.

Вторым направлением эволюции ЯВУ явилось появление объектно-ориентированных языков программирования.

В объектно-ориентированном программировании имеют дело с тремя базовыми элементами:

-объектами, которые представляют собой многократно используемые программные модули, содержащие связанные данные и процедуры. Структурно объекты состоят из 2 элементов: свойств и методов. Свойства - это переменные элементы, изменяющие состояние объекта, а методы - процедуры и функции, определяющие функционирование объекта.

-событиями, которые происходят с данными

47

объектами - классами объектов, экземпляры которых

используются при программировании.

Первым объектно-ориентрованным языком был язык Simula (1967). Этот язык был предназначен для моделирования различных объектов и процессов, и объектно-ориентированные черты появились в нем именно для описания свойств модельных объектов.

Популярность объектно-ориентированному программированию принес язык Smalltalk, созданный в 1972 году. Язык предназначался для проектирования сложных графических интерфейсов и был первым по-настоящему объектно-ориентированным языком. В нем классы и объекты

— это единственные конструкции программирования. Большим недостатком Smalltalk являются большие требования к памяти и низкая производительность полученных программ.

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

Также весьма важным направлением развития языков программирования являются языки параллельного программирования, которые ориентированны на создание ПО для устройств параллельной архитектуры (многопроцессорные комплексы и т.д.).

Большинство компьютерных архитектур и языков программирования ориентированы на последовательное выполнение операторов программы. В настоящее время, однако же, существуют программно-аппаратные комплексы, позволяющие организовать параллельное выполнение

48

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

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

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

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

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

49

достаточно большое количество таких языков, перечислим основные:

Язык JavaScript был создан в компании Netscape Communications в качестве языка для описания сложного поведения веб-страниц. Интерпретируется браузером во время отображения веб-страницы. По синтаксису схож с Java и (отдаленно) с C/C++. Имеет возможность использовать встроенную в браузер объектную функциональность, однако подлинно объектно-ориентированным языком не является.

VBScript был создан в корпорации Microsoft во многом в качестве альтернативы JavaScript. Имеет схожую область применения. Синтаксически схож с языком Visual Basic (и является усеченной версией последнего). Так же, как и JavaScript, исполняется браузером при отображении вебстраниц и имеет ту же степень объектно-ориентированности.

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

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

К пятому поколению языков программирования также можно отнести языки искусственного интеллекта, экспертных систем и баз знаний, а также естественные языки.

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

50