Файл: Языки гипертекстовой разметки (Базовая иерархия языков).pdf

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

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

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

Добавлен: 25.06.2023

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

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

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

Обе указанных системы используют трансляторы с ЯСК и набор макрокоманд, которые также являются операторами автокода.

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

Макрос

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

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

Макрос одинаково может работать, как с программами, так и с данными[25].

Машинно - независимые языки

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

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

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

Проблемно - ориентированные языки

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


Проблемных языков очень много, например:

  • Фортран, Алгол – языки, созданные для решения математических задач;
  • Simula, Слэнг – для моделирования;
  • Лисп, Снобол – для работы со списочными структурами.
  • Об этих языках рассказано дальше.

Универсальные языки

Универсальные языки были созданы для широкого круга задач: коммерческих, научных, моделирования и т.д. Первый универсальный язык был разработан фирмой IBM, ставший в последовательности языков Пл/1. Второй по мощности универсальный язык называется Алгол-68. Он позволяет работать с символами, разрядами, числами с фиксированной и плавающей запятой. Пл/1 имеет развитую систему операторов для управления форматами, для работы с полями переменной длины, с данными организованными в сложные структуры, и для эффективного использования каналов связи. Язык учитывает включенные во многие машины возможности прерывания и имеет соответствующие операторы. Предусмотрена возможность параллельного выполнение участков программ.

Программы в Пл/1 компилируются с помощью автоматических процедур. Язык использует многие свойства Фортрана, Алгола, Кобола. Однако он допускает не только динамическое, но и управляемое и статистическое распределения памяти[28].

Диалоговые языки

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

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

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

Одним из примеров диалоговых языков является Бэйсик.

Бэйсик использует обозначения подобные обычным математическим выражениям. Многие операторы являются упрощенными вариантами операторов языка Фортран. Поэтому этот язык позволяет решать достаточно широкий круг задач[29].


Непроцедурные языки

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

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

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

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

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

Становление непроцедурного программирования

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

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


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

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

Заканчивая исторический экскурс хотелось бы особо отметить, что непроцедурное программирование – одна из немногих областей, в которых отечественная наукоемкое производство находится на передовых рубежах. Несколько коллективов РАН, ведущих соответствующие разработки высоко котируются в мире. К сожалению, Российское правительство практически не финансирует развитие этого стратегического направления отечественной научной технологии, а существенным источником финансирования работ в течении длительного времени были заказы от НАСА и министерства обороны США[31].

Критерии выбора среды и языка разработки программ

Критерии выбора среды разработки программ

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

  1. Редактор – это средство для создания и изменения исходных файлов, которые содержат написанную на языке программирования программу.

Условно редакторы делятся на два типа.

Первый тип работает с последовательностью символов в текстовых файлах и обеспечивают расширенную функциональность – подсветку синтаксиса, сортировку строк, конвертацию кодировок, показ кодов символов и т.п. Часто такие редакторы называют редакторами кода, поскольку основное их назначение – это написание исходных кодов компьютерных программ. Примеры таких редакторов: Emacs (один из самых мощных по возможностям многоцелевой, свободный редактор); jEdit (свободный редактор на Java); Kate (мощный расширяемый свободный текстовый редактор с подсветкой синтаксиса для массы языков программирования и разметки); Notepad (входит в состав Microsoft Windows); Vim (один из самых мощных по возможностям редактор для программистов); EditPlus (текстовый редактор для Windows, предназначенный для программирования и веб-разработки) и др.


Второй тип редакторов имеет расширенные функции форматирования текста, внедрения в него графики и формул, таблиц и объектов. Такие редакторы часто называют текстовыми процессорами и предназначены они для создания текстовых документов. К таким текстовым процессорам можно отнести Microsoft Word, WordPad и др.

  1. Компилятор – транслирует символы из исходного файла в объектный модуль, который содержит команды в машинном коде для конкретного компьютера.
  2. Компоновщик или редактор связей – собирает объектные файлы отдельных компонентов программы и разрешает внешние ссылки от одного компонента к другому, формируя исполняемый файл.
  3. Загрузчик – копирует исполняемый файл с диска в память и инициализирует компьютер перед выполнением программы.
  4. Отладчик – это средство, которое дает возможность программисту управлять выполнением программы на уровне отдельных операторов для диагностики ошибок. Позволяет выполнять пошаговую трассировку (пошаговое выполнение программы с остановками на каждой команде или строке), отслеживать, устанавливать или изменять значения переменных в процессе выполнения программы, устанавливать и удалять контрольные точки или условия остановки и т.д.
  5. Средства тестирования – автоматизирует процесс тестирования программ, создавая и выполняя тесты и анализируя результаты тестирования.
  6. Интерпретатор – выполняет исходный код программы в отличие от компилятора, переводящего исходный файл в объектный[32].

Критерии выбора языка разработки программ

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

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

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