Методичка. Учебное пособие В. М. Лопатин издание второе, стереотипное 1 17
Скачать 4.33 Mb.
|
Представление алгоритма на языке программирования Следующим этапом после создания алгоритма является написание текста программы. О программе, выполняющей действия, предписанные алгоритмом, говорят, что она реализует данный алгоритм на языке программирования. Основная сложность создания программы заключается в том, что алгоритм формулируется на естественном человеческом языке, а программа, загружаемая в компьютер, представляет собой набор двоичных кодов – нулей и единиц. По- нятно, что перевести текст напрямую с естественного языка в набор двоичных цифр довольно сложно. В связи с этим в данный процесс вводится промежу- 5 / 15 91 точный этап – разработка текста программы на специальном языке, который называется языком программирования. Введение промежуточного этапа позволяет представить первую часть про- цесса создания программы как постепенный переход от естественногоязыка к языку более высокого уровня, чем машинный. Уровень языка программирования характеризуется степенью близости языка программирования и машинного языка. За начало отсчета уровней прини- мается машинный язык, уровень которого равен нулю. Язык человека рассмат- ривается как язык наивысшего уровня, алгоритмические языки относятся к язы- кам высокого уровня. В основе алгоритмического языка программирования заложены три базовых составляющих: алфавит – набор символов, используемый для написания программы; синтаксис – правила соединения символов в конструкции языка; семантика – принципы обозначения и толкования конструкций языка. Язык программирования – искусственный язык, в котором символы алфа- вита соединяются в соответствии с синтаксическими и семантическими прави- лами. Программирование на языках высокого уровня, очевидно, проще, чем на язы- ках машинного уровня. Оно не требует глубоких знаний устройства процессора и поэтому доступно людям, которые не являются специалистами в аппаратной части. В отличие от языка человека, в котором допускается некоторый произвол в выборе и образовании слов и предложений, языкам программирования свой- ственна строгость синтаксических и семантических правил. Алфавит, синтаксис и семантика языков программирования определяются, исходя из стремления приблизить их к языку человека, но вместе с тем обеспечить возможность про- граммного перевода алгоритма с языка программирования на машинный язык. Для языков высокого уровня создание текста программы, который называ- ется исходным модулем(рис. 27), выполняется вручную или с использованием автоматизированных средств, а перевод в машинные двоичные коды – в автома- тическом режиме с помощью транслятора [14]. Трансляция (от англ. translation – перевод) – преобразование программы, представленной на исходном языке программирования, в программу на другом языке. Рис. 27. Процесс создания программы в машинном коде 6 / 15 92 Для перевода исходного модуля в машинный код можно использовать два типа трансляторов: − интерпретаторы – программы, которые построчно переводят и испол- няют строки исходного кода (удобно для отладки и тестирования); − компиляторы – программы, которые на первом этапе осуществляют пе- ревод кода целиком с созданием объективного модуля – промежуточной про- граммы, в которой отсутствуют реальные адреса данных и встроенные подпро- граммы; на втором этапе к объективному модулю с помощью программы-сбор- щика подключаются необходимые адреса и подпрограммы. Результатом трансляции является исполняемый модуль – программа, ко- торая готова к загрузке, запуску и выполнению работы. Для создания программы на выбранном языке используется так называемая интегрированная система программирования, которая включает связан- ную совокупность программных продуктов для разработки программного обес- печения. В состав интегрированной системы программирования входят следую- щие средства. 1. Текстовый редактордля написания программы. Текст программы со- стоит из последовательности символов или ключевых слов на английском языке. Готовая программа называетсяисходным текстом,илиисходныммодулем. Для написания программы можно использовать любой текстовый редактор, но лучше – специальный. Специальные текстовые редакторы созданы для всех по- пулярных языков программирования, они позволяют проверять синтаксис языка и упрощать процесс разработки программы. 2. Программа-компилятор(или интерпретатор),которая переводит исход- ный текст в машинный код. В результате компилирования получается объектив- ный модуль, который требует дальнейшей обработки. Для каждого модуля ис- ходного текста создается отдельный объективный модуль. 3. Редактор связей (сборщик)обрабатывает все модули, созданные ком- пилятором, связывает их между собой, при необходимости добавляет стандарт- ные программы. В результате сборки на выходе появляется исполняемый модуль, который предназначен для работы на конкретном процессоре.Исполняемый модуль – это законченная программа, которая запускается на компьютере под контролем операционной системы. Файл исполняемого модуля имеет расшире- ние .exe. 4. Библиотека стандартных программ – совокупность программ, разра- ботанных на одном из языков программирования для решения типовых задач и расширения функциональных возможностей языка программирования. 5. Средства отладки программ – программные инструменты, предназна- ченные для наблюдения за пошаговым выполнением исследуемой программы с целью обнаружения и устранения ошибок. Перечисленные средства, входящие в состав интегрированной системы про- граммирования, образуют так называемую интегрированную среду разработки программ. В рамках этой среды используется весь комплекс имеющихся средств и обеспечиваются условия для создания новых программ в сжатые сроки 7 / 15 93 с высоким качеством конечного продукта. Интегрированная среда программиро- вания поддерживает полный цикл проектирования сложных программных про- дуктов от начального исследования объекта до оформления технической доку- ментации на завершающем этапе. Интегрированная среда программирования, усиленная технологиями автома- тизированного проектирования программ, образует современное средство разра- ботки – CASE-технологию. CASE-технология – это программный комплекс, ко- торый позволяет автоматизировать технологический процесс анализа, проекти- рования, разработки и сопровождения программных систем. Преимущества CASE-технологии выражаются в коллективной разработке программных систем путем подключения к локальной компьютерной сети и организации процесса экспорта и импорта программных фрагментов. Другим преимуществом новой технологии является возможность организационного управления всем проектом по созданию программных систем. Разновидности языков программирования Последовательное развитие технологий программирования привело к созда- нию несколько сотен языков программирования всевозможных принципов и структур. Одна из классификаций языков программирования, в которой отража- ется история развития и степень связи языка с вычислительной системой, пред- ставлена на рис. 28. Рис. 28. Классификация языков программирования 8 / 15 94 Представленные в данной классификации языки высокого уровня делятся на группы, деление на группы и выбор языка внутри группы зависят от специфики и сложности решаемой задачи. Группа процедурно-ориентированных языковотноситсяк компилиру- емым языкам высокого уровня, основанным на принципе последовательных дей- ствий в процессе решения задачи. Основное преимущество языков этой группы выражается в простоте их освоения, поскольку они достаточно отдалены от ма- шинного языка и близки по своей сути к естественному языку. Fortran– процедурно-ориентированный язык, созданный в середине 1950-х гг. На этом языке впервые было показано, что можно создать язык высокого уровня, который поддается компилированию. Принципы, заложенные при создании этого языка, позднее были использованы в других языках. Язык широко исполь- зуется для инженерных и научных расчетов и остается одним из самых востре- бованных. Cobol– язык начала 1960-х гг. для решения задач в области финансов. Отли- чается многословностью и громоздкостью, предназначен для работы с большими объемами данных. Basic– создан в 1960-х гг. в качестве учебного языка. Остается одним из са- мых простых языков и широко используется в образовательных целях. Pascal– относится к процедурным языкам структурного типа, в котором одним оператором можно обозначать целую структуру действий. Разработан в 1970-х гг. как язык, предназначенный для обучения программированию, но по- лучил широкое распространение не только в системе обучения. По причине про- стоты и доступности является одним из самых распространенных языков. С(Си)– также относится к языкам структурного типа. Разработан в 1970-х гг. как язык программирования общего назначения, в том числе с целью замены Ассемблера. Широко используется для создания операционных систем, баз данных и других сложных программ. Группа объектно-ориентированных языков программирования начала формироваться в 1980-х гг., когда объем работ по программированию уже приближался к пределу человеческих возможностей. В объектно-ориентирован- ном программировании (ООП) использован новый подход, который позволил расширить возможности программирования в части производительности. К объ- ектно-ориентированным относятся следующие языки программирования. С++ – объектно-ориентированное расширение языка С, созданное в 1980-х гг. Использование этого языка повышает производительность програм- мирования, но требует высокой профессиональной подготовки.Язык использу- ется для разработки различных платформ и систем, в том числе для создания операционных систем, серверных систем, прикладных программ. Благодаря своим достоинствам язык С++ является лидером по использованию среди уни- версальных языков высокого уровня. JavaScript– объектно-ориентированный язык, созданный в 1995 г. и пред- назначенный для описания последовательности операций. Один из основных языков, применяемых для создания web-сайтов. 9 / 15 95 СSharp (С#) – объектно-ориентированный язык программирования, создан- ный в конце 1990-х гг. При создании языка использованы лучшие идеи извест- ных языков программирования. Язык привязан к системе Windows, используется для разработки приложений операционной системы. К достоинствам языка С# относятся: − сохранение основных принципов и идей, заложенных в популярных язы- ках программирования С и С++, что облегчает переход программистов на новый язык; − упрощение и повышение надежности основных операций, выполняемых на языке С++; − наличие мощной библиотеки, которая поддерживает возможности постро- ения приложений различного типа. Группа скриптовых языков программированияпредназначена для со- здания программ, описывающих последовательность операций или сценариев, распространяемых в компьютерных сетях. Все скриптовые языки являются ин- терпретируемыми, а сами программы распространяются в исходных текстах. К числу скриптовых относятся следующие языки. HTML – первый язык для оформления web-документов. Содержит элемен- тарные команды форматирования (разметки) и вставки объектов. Получил ши- рокое использование в период становления Интернета, со временем получил зна- чительное обновление и дополнение. Perl – высокоуровневый интерпретируемый язык общего назначения с ши- рокими возможностями для обработки больших текстовых файлов. Использу- ется для решения широкого круга задач, в том числе в области web-разработок, сетевого программирования, графических интерфейсов. PHP – сценарный язык общего назначения, имеет большой набор средств для разработки web-приложений, является лидером среди языков, которые исполь- зуются для созданиядинамических сайтов. Каждый язык программирования имеет свои особенности и специфические области применения. Универсальные языки программирования наиболее ши- роко используются в разных областях деятельности, в частности: − системное программирование – С++, Java; − обработка данных – С++, Cobol, Java; − научные исследования – С++, Fortran, Java; − обработка сетевой информации – Perl, PHP, С++, Java. Степень использования и актуальность языков программирования меняется с течением времени, что связано с рядом факторов: − появление новых более удобных и простых технологий, использующих средства автоматизации; − удобство разработки и тестирования программ; − стоимость разработки программного обеспечения и др. 10 / 15 96 Прикладное программное обеспечение Прикладные программные продуктыпредназначены для решения кон- кретных задач, решаемых пользователем, например задач по обработке число- вых, текстовых или графических данных. Прикладные программы функциони- руют под управлением операционной системы и поэтому иногда называются приложениями операционной системы. Прикладные программы разрабатываются специалистами как для широкого, так и для узкого круга пользователей. Небольшие прикладные программы созда- ются пользователямидлясобственныхнужд. Тематика прикладных программ чаще всего тесно связана с профессиональной деятельностью пользователей, а общее число прикладных программ постоянно растет и постепенно приближа- ется к числу профессий, которыми владеют пользователи компьютера. История создания и развития прикладных программ началась с 70-х гг. XX в., когда были написаны первые программы для создания и обработки текстовых файлов. Спустя десятилетие появились программы для создания и редактирова- ния рисунков, далее до конца XX в. были созданы приложения для упорядочен- ного хранения и обработки больших объемов данных, для записи и прослушива- ния звуковых данных, для разработки и воспроизведения анимации, видео и мно- гое другое. Число областей применения прикладных программ с тех пор посто- янно растет, в рамках каждого применения наблюдается выпуск все более совер- шенных версий программных продуктов. С конца XX в. наиболее часто используемые программные продукты стали объединять в интегрированные пакеты. Программы, входящие в интегриро- ванные пакеты, характеризуются общим интерфейсом и возможностью переноса данных из одной программы в другую через буферобмена – промежуточное хранилище данных. К числу программ, которые включаются в число интегриро- ванных пакетов, чаще всего относятся текстовые редакторы, электронные таб- лицы, системы для управления базами данных, программы для создания презен- таций и др. Наибольшее распространение получили пакет MicrocoftOffice под операционной системой Windows и пакет OpenOffice под операционными систе- мами Windows и Linux. Другое направление развития прикладного программного обеспечения выра- жается в совместной разработке операционных систем и приложений, входящих в состав операционной системы. Приложения в составе операционной системы предназначены для выполнения работ, которые пользуются наибольшим спро- сом пользователей, например работ по поиску данных в сети Интернет. Для ра- боты с сетевыми данными в состав операционной системы включается брау- зер – программа для поиска и просмотра web-страниц. В состав операционной системы могут включаться также текстовые или графические редакторы ограни- ченной функциональности, предназначенные для решения простых задач или для начального обучения пользователей. Множество прикладных программ можно разделить на три категории и клас- сифицировать по видам деятельности (рис. 29). 11 / 15 97 Рис. 29. Классификация прикладного программного обеспечения по видам деятельности В представленной классификации отражен лишь принцип деления программ по категориям деятельности и показаны далеко не все прикладные продукты. В категории общего назначения представлены основные программы, которые находят самое широкое применение и установлены практически на каждом ком- пьютере. В каждой из программ общего назначения предусмотрены широкие возможности для работы специалистов различных направлений. Остановимся на некоторых прикладных программах и подробнее рассмотрим их возможности для работы специалистов технического профиля. 12 / 15 98 Редакторы текстов До появления компьютеров основным средством создания нетиражируемых текстовых документов являлась механическая печатная машинка. Технология механического печатания имела много недостатков: − печатный текст практически не мог корректироваться, поскольку выво- дился непосредственно на бумажный носитель; − текст не сохранялся в памяти, для создания ограниченного числа копий применялась печать через копировальную бумагу; − печать выполнялась одним шрифтом, для изменения шрифта приходилось менять печатную машинку; − процесс ввода и изменения текста отличался высокой трудоемкостью. С появлением компьютеров для редактирования текстов были разработаны специальные программы, которые назвали текстовыми редакторами. Текстовые редакторы позволяли редактировать набранный текст в элек- тронном виде и тем самым значительно упрощать работу с документами. Перво- начально текстовые редакторы использовались для создания компьютерных про- грамм, а впоследствии стали широко применяться при наборе различных тек- стов. Вслед за простыми текстовыми редакторами появились программы, которые предназначались для создания и внешнего оформления (форматирования) тек- ста. Более совершенные программы назвалитекстовыми процессорами,ко- торые позволяли не только форматировать текст, но и вставлять нетекстовые объекты (таблицы, рисунки и пр.). В России по мере развития компьютерной техники в 1980–1990-х гг. появи- лись и были популярны различные текстовые редакторы: − Лексикон – созданный в СССР в конце 1980-х гг. достаточно функцио- нальный текстовый редактор полностью на русском языке; − Фотон – текстовый редактор, созданный в 1989 г. в СССР на русском языке, получил в свое время широкое распространение; − Слово и Дело – российский текстовый редактор, популярный в начале 1990-х и созданный для редактирования несложных текстов; − Multi-Еdit – текстовый редактор (США), распространенный в 1990-х по причине богатых возможностей по редактированию текстов, в среде DOS был так же популярен, как MS Word в среде Windows; − ChiWriter – текстовый редактор (США), русская версия которого широко использовалась для создания научных текстов в 1990-х гг.; − MS Word – текстовый процессор фирмы Microsoft с широкими функцио- нальными возможностями, получивший широкое распространение в России и во всем мире с середины 1990-х. Общее число используемых текстовых редакторов значительно превышает приведенный перечень и обеспечивает разнообразные функциональные возмож- ности. Множество компьютерных программ для обработки текста принято клас- сифицировать по группам.По типу обрабатываемого объекта текстовые редакто- 13 / 15 99 ры делятся на четыре группы: простые редакторы, редакторы форматированных текстов, научные редакторы, издательские системы. 1. Простые текстовыередакторыиспользуются для написания простого текста (plain text) и относятся к самым используемым программам для создания заметок или небольших документов, небольших программ, web-страниц. Одним из известных в этой группе является редакторБлокнот в составе операционной системы Windows. Как правило, простые редакторы отличаются невысокой це- ной, бесплатным распространением, ограниченным объемом, мультиязычным интерфейсом. 2. Редакторыформатированныхтекстов(текстовые процессоры) предна- значены для работы со сложными документами, структура которых может со- держать вложенные документы, страницы, абзацы и т. д. Документ может вклю- чать также таблицы, диаграммы, рисунки, фотографии, звук и видео. При этом таблицы, диаграммы и рисунки могут быть созданы как в самом редакторе, так и в других приложениях. Существует большое количество редакторов формати- рованных текстов различной сложности. Наиболее распространенны в среде компьютерных пользователей редакторы MicrosoftWord, OpenOfficeWriter. 3. Редакторынаучныхтекстов обеспечивают подготовку и редактирование текстов, содержащих большое количество математических формул, графиков |