Какие программы являются частью системы программирования

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

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

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

Информатика 10 класс (Урок№7 — Программное обеспечение (ПО) компьютеров и компьютерных систем.)

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

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

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

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

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

Почему Linux хорошо подходит для программирования?

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

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

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

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

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

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

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

· последовательное пошаговое выполнение результирующей программы на основе шагов по машинным командам или по оператором входного языка;

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

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

Для популярных языков программирования на IBM PC существует множество систем программирования. В качестве примеров таких систем программирования можно назвать Turbo C, Turbo C++, Turbo Pascal, Microsoft C, Microsoft Basic.

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

Язык СИ был разработан в 1972 г. Денисом Ричи для использования весьма ныне популярной операционной системы Unix. СИ соединяет свойства языка высокого уровня с возможностью эффективного использования ресурсов компьютера, которое обычно обеспечивается только при программировании на языке Ассемблера. СИ не очень прост в обучении и требует тщательности в программировании, но позволяет писать сложные и весьма высокоэффективные программы. Бьярном Страустрапом был разработан язык СИ++ — расширение языка СИ, реализующее популярные в последнее время концепции объектно-ориентированного программирования и облегчающее создание сложных программ.

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

Язык Бейсик был создан в 1964 г Томасом Куртом и Джоном Кемени как язык для начинающих, облегчающий написание простых программ. Существуют сотни различных версий бейсика, которые не полностью (а иногда и мало) совместимы друг с другом. Бейсик очень распространен на микрокомпьютерах, он легок в обучении, но мало подходит для написания больших и сложных программ. На IBM PC широко используются Quick Basic фирмы Microsoft и Turbo Basic фирмы Borland.

Читайте также:
Программа телефон на планшет Андроид

Кардинально облегчило жизнь программистов появление визуального программирвоания, возникшего в Visual Basic и нашедшего блестящее воплощение в Delphi и C++Builder фирмы Borland. Визуальное программирование позволило свести проектирование пользовательского интерфейса к простым и наглядным процедурам, которые дают возможность за минуты или часы сделать то, на что ранее уходили месяцы работы.

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

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

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

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

Basic: Microsoft Visual Basic;

Pascal: Borland Delphi;

C++: Borland C++Builder.

Источник: studopedia.org

Понятие, назначение и составные элементы систем программирования

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

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

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

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

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

Реализация языка – это системная программа, которая переводит (преобразует) записи на языке высокого уровня в последовательность машинных команд.

Имеется два основных вида средств реализации языка: компиляторы и интерпретаторы.

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

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

Следует заметить, что любой язык программирования может быть как интерпретируемым, так и компилируемым, но в большинстве случаев у каждого языка есть свой предпочтительный способ реализации. Языки Фортран, Паскаль в основном компилируют; язык Ассемблер почти всегда интерпретирует; языки Бейсик и Лисп широко используют оба способа.

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

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

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

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

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

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

§ высокое качество создаваемых программ;

§ возможность использования конкретных аппаратных ресурсов;

§ предсказуемость объектного кода и заказов памяти;

§ для составления эффективных программ необходимо знать систему команд и особенности функционирования данной ЭВМ;

§ трудоемкость процесса составления программ (особенно на машинных языках и ЯСК), плохо защищенного от появления ошибок;

§ низкая скорость программирования;

§ невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов.

Машинно-ориентированные системы по степени автоматического программирования подразделяются на классы:

1. Машинный язык. В таких системах программирования отдельный компьютер имеет свой определенный Машинный Язык (далее МЯ), ему предписывают выполнение указываемых операций над определяемыми ими операндами, поэтому МЯ является командным. Однако, некоторые семейства ЭВМ (например, ЕС ЭВМ, IBM/370/ и др.) имеют единый МЯ для ЭВМ разной мощности. В команде любого из них сообщается информация о местонахождении операндов и типе выполняемой операции. В новых моделях ЭВМ намечается тенденция к повышению внутренних языков машинно-аппаратным путем реализовывать более сложные команды, приближающиеся по своим функциональным действиям к операторам алгоритмических языков программирования.

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

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

Читайте также:
Для чего используется кнопка enter в программе word

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

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

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

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

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

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

Среди машинно-независимых систем программирования следует выделить:

1. Процедурно-ориентированные системы. Входные языки программирования в таких системах служат для записи алгоритмов (процедур) обработки информации, характерных для решения задач определенного класса. Эти языки, должны обеспечить программиста средствами, позволяющими коротко и четко формулировать задачу и получать результаты в требуемой форме. Процедурных языков очень много, например: Фортран, Алгол – языки, созданные для решения математических задач; Simula, Слэнг — для моделирования; Лисп, Снобол – для работы со списочными структурами.

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

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

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

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

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

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

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

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

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

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

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

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

Как известно, все версии Windows поддерживают многозадачность. В Windows 3.1 имеется только один тип многозадачности – основанный на процессах. В более передовых системах, таких как Windows 95 и Windows NT, поддерживается два типа многозадачности: основанный на процессах и основанный на потоках. Давайте рассмотрим их чуть подробнее.

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

Стоимость фиксированного набора потребительских товаров и услуг по субъектам Российской Федерации 1) , рубль, декабрь.

года
Республика Хакасия
Красноярский край
Кемеровская область

1) В набор товаров и услуг, разработанный для наблюдения за ценами, входит 83 наименования товаров и услуг.

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:

Источник: studopedia.ru

Какие программы являются частью системы программирования

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

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

Читайте также:
Счет депо депозитарных программ это

2) Проблемно-ориентированная СП получила свое название в те времена, когда языковые средства программирования привязывались к конкретным классам решаемых прикладных задач («проблем») — для научно-технических инженерных задач — язык FORTRAN, для экономических — COBOL, для «начинающих» — BASIC. Поэтому проблемно-ориентированная СП использует какой-либо язык высокого уровня, ей требуется дополнительное сложное ПО (компиляторы, интерпретаторы), её «выходной продукт» слабо связан с платформой разработки и достаточно понятен человеку-пользователю.

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

Машинно-ориентированная СП характеризуется следующим набором из пяти групп параметров:

— организация оперативной памяти, минимально-адресуемая единица, общий объем доступного адресного пространства, способы структуризации (слова, двойные слова и т.п.).

— организация регистров — общее их число, доступность, назначение, формат

— форматы данных — поддерживаемые типы данных, формы их представления в памяти

— система команд — форматы, способы доступа к памяти, виды адресации, группы по выполняемым функциям

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

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

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

Реализация же языка — это комплект программ, которым обеспечивается:

— поддержка операций с исходной программой: ввод, редактирование, сохранение текста; анализ синтаксических ошибок;

— подготовка синтаксически правильной программы к исполнению на конкретном вычислителе;

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

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

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

1) Файловая система для хранения текста программ — как правило, это общая часть программного обеспечения для различных систем на данном компьютере.

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

3) Транслятор для преобразования текста программы к виду, в котором она может исполняться, и указания ошибок, если преобразование не удаётся. Транслятором может быть не одна программа.

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

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

При программировании на языке программирования ASSEMBLER применение интерпретатора приводит к проигрышу по всем параметрам, поэтому для языков программирования низкого уровня применяются только программы-компиляторы.

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

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

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

Кроме перечисленных компонентов система программирования, как правило, включает в себя:

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

8) Редакторы внешних связей, собирающие программы из модулей.

10) Оптимизаторы, позволяющие автоматически улучшать программу, написанную на определённом языке.

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

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

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

Общая схема прохождения программы через систему программирования

Рисунок 1. Общая схема прохождения программы через систему программирования

Основные требования к системам программирования

Рассмотрим главные требования, которые предъявляются к современной системе программирования.

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

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

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

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

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

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

Источник: studbooks.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru