Файл: Системы программирования (Сущность систем программирования и их состав).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 22.05.2023

Просмотров: 256

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Введение

С появления первых компьютеров программисты серьезно задумывались над проблемой кодирования компьютерных программ. Уже с конца 40-х годов стали появляться первые примитивные языки программирования высокого уровня. В них программист записывал решаемую задачу в виде математических формул, а затем, используя специальную таблицу, переводил символ за символом, преобразовывал эти формулы в двухлитерные коды. В дальнейшем специальная программа (впоследствии названная интерпретатором) превращала эти коды в двоичный машинный код. Первый компилятор был разработан Г. Хоппер в начале 50-х годов; он осуществлял функцию объединения команд и в ходе трансляции производил организацию подпрограмм, выделение памяти компьютера, преобразование команд высокого уровня (в то время псевдокодов) в машинные команды. В дальнейшем компиляторы и интерпретаторы для языков Ассемблера стали развиваться и прочно вошли в практику компьютерного дела.

Идеи трансляции (перекодирования) одних символов в другие легли в основу создания различных языков программирования с соответствующими трансляторами - компиляторами и/или интерпретаторами. Отличие компиляторов от интерпретаторов заключается в процедуре трансляции текста в машинный код. Компилятор преобразует весь текст программы в последовательный набор машинных команд, который в дальнейшем отправляется на выполнение (пример компилятора с языка Паскаль). Интерпретатор же осуществляет трансляцию по принципу синхронного перевода. Каждая отдельная строка программного текста транслируется, а затем, после ее интерпретации, команды этой строки выполняются (пример языка Бейсик). Современные трансляторы с языков программирования высокого уровня, систем управления базами данных интегрируют в себе возможности и достоинства компиляторов и интерпретаторов, а в системы программирования добавляют различные сервисные утилиты по трансляции и отладке создаваемых программ.

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

Предмет исследования – системы программирования.

Цель исследования – углубленное исследование особенностей систем программирования и их применения.

Для достижения поставленных целей сформулированы следующие задачи:

  • изучить теоретические основы системы программирования;
  • рассмотреть особенности системы программирования CoDeSys при разработке программного обеспечения.

Методологической основой исследования являются учебная и методическая литература по информатике и посновам программирования, статьи в периодической печати и Интернет – ресурсы.

1. Теоретические основы систем программирования

1.1. Сущность систем программирования и их состав

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

Согласно ГОСТ 19781-90, система программирования (programming system) — система, образуемая языком программирования, компиляторами или интерпретаторами программ, представленных на этом языке, соответствующей документацией, а также вспомогательными средствами для подготовки программ к форме, пригодной для выполнения.

Современные системы программирования представляют пользователям широкие возможности и удобные программные средства разработки компьютерных программ и являются в основном интегрированными средами разработки приложений (IDE, Integrated Development Environment), ориентированными на определенный входной язык программирования. В состав современных систем программирования наряду с соответствующей документацией входят обычно следующие программные средства (рис.1):

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

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


текстовый редактор

Программа - отладчик

Транслятор (программа переводчик с конкретного алгоритмического языка на машинно- ориентированный)

Компоновщик (редактор связей)

программа, обеспечивающая запуск программы

текст программы, написанный на конкретном алгоритмическом языке.

отладка исходного текста программы (поиск и устранение ошибок)

программа на машинно- ориентированном языке

объединяются оттранслированные модули в единые загрузочные, готовые к выполнению

+ библиотека подпрограмм, + Help

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

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

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


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

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

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

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

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


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

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

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

Среди фирм — разработчиков систем программирования можно выделить наиболее крупные: Microsoft, Symantec, Borland.

Развитие инструментальных средств технологии программирования наряду с разработкой новых систем программирования связано также с разработкой методов и средств автоматизированного проектирования и сопровождения прикладных программ. Данное направление называется автоматизированным программированием, в котором выделяют CASE-технологию (Computer Aided Software Engineering — автоматизированный инжиниринг программных средств). Данная технология предназначена для автоматизации процессов разработки и реализации информационных систем. За счет использования CASE-технологии стоимость разработки программного обеспечения уменьшается в несколько раз.

Как отмечалось выше, системы программирования ориентированы на определенный язык программирования.