- 21. Назначение и виды языков программирования. Составные компоненты системы программирования.
- 22. Назначение и классификация служебных программных средств.
- 1.4. Назначение и классификация языков программирования
- 1.4.1. Машинно-ориентированные языки
- 1.4.2. Машинно-независимые языки
- 3. Назначение и классификация языков программирования.
21. Назначение и виды языков программирования. Составные компоненты системы программирования.
Язык программи́рования — формальный язык, предназначенный для записи компьютерных программ.
Языки программирования разделяются на две основные категории языки высокого уровня и языки низкого уровня :
§ Язык высокого уровня — Язык программирования, средства которого обеспечивают описание задачи в наглядном, легко воспринимаемом виде, удобном для программиста. Он не зависит от внутренних машинных кодов ЭВМ любого типа, поэтому программы, написанные на языках высокого уровня, требуют перевода в машинные коды программами транслятора либо интерпретатора. К языкам высокого уровня относят Фортран , ПЛ/1 , Бейсик , Паскаль , Си , Ада и др. Примеры: Python, Ruby, JavaScript, Common Lisp.
§ Язык низкого уровня — Язык программирования, предназначенный для определенного типа ЭВМ и отражающий его внутренний машинный код (“машинный язык “, “ машинно-ориентированный язык “ и “ язык ассемблера “). Примеры: C, C++, Assembler.
Системы программирования — это комплекс инструментальных программных средств, предназначенный для работы с программами на одном из языков программирования. Системы программирования предоставляют сервисные возможности программистам для разработки их собственных компьютерных программ.
В настоящее время разработка любого системного и прикладного программного обеспечения осуществляется с помощью систем программирования, в состав которых входят:
• трансляторы с языков высокого уровня;
• средства редактирования, компоновки и загрузки программ;
• макроассемблеры (машинно-ориентированные языки);
• отладчики машинных программ.
Системы программирования, как правило, включают в себя
• текстовый редактор (Edit), осуществляющий функции записи и редактирования исходного текста программы;
•загрузчик программ (Load), позволяющий выбрать из директория нужный текстовый файл программы;
• запускатель программ (Run), осуществляющий процесс выполнения программы;
• компилятор (Compile), предназначенный для компиляции или интерпретации исходного текста программы в машинный код с диагностикой синтаксических и семантических (логических) ошибок;
• отладчик (Debug), выполняющий сервисные функции по отладке и тестированию программы;
• диспетчер файлов (File), предоставляющий возможность выполнять операции с файлами: сохранение, поиск, уничтожение и т.п.
22. Назначение и классификация служебных программных средств.
- Диспетчеры файлов (файловые менеджеры). С их помощью выполняется большинство операций согласно обслуживанию файловой структуры копирования, перемещения, переименования файлов, создания каталогов (папок), уничтожения объектов, поиск файлов и навигация в файловой структуре. Базовые программные средства содержатся в составе программ системного уровня и устанавливаются вместе с операционной системой.
- Средства сжатие данное (архиваторы). Предназначенные для создания архивов. Архивные файлы имеют повышенную плотность записи информации и соответственно, эффективнее используются носители информации.
- Средства диагностики. Предназначенные для автоматизации процессов диагностирования программного и аппаратного обеспечения. Их используют для исправления ошибок и для оптимизации работы компьютерной системы.
- Программы инсталляции (установление). Предназначенные для контроля за добавлением в текущую программную конфигурацию нового программного обеспечения. Они следят за состоянием и изменением программной среды, фиксируют и протоколируют образования новых связей. Простые средства управления установлением и уничтожением программ содержатся в составе операционной системы, могут использоваться и дополнительные служебные программы.
- Средства коммуникации. Позволяют устанавливать комбинации с отдаленными компьютерами, передают известие электронной почтой, пересылают файловые сообщения и тому подобное.
- Средства пересмотра и воссоздания. Преимущественно для работы с файлами, их должны загрузить в «родную» прикладную систему и внести необходимые исправления.
- Средства компьютерной безопасности. К ним относятся виды пассивной и активной защиты данных их повреждения, несанкционированного доступа, пересмотра и изменения данных. Средства пассивной защиты — это служебные программы, предназначенные для резервного копирования. Средства активной защиты — антивирусное программное обеспечение. Для защиты данных от несанкционированного доступа, их пересмотра и изменения используют специальные системы.
1.4. Назначение и классификация языков программирования
Основная идея автоматизации программирования заключается в отказе от написания программ непосредственно в машинных кодах. Программа пишется на некотором входном языке. Входные языки делятся на следующие группы : 1) машинно-ориентированные языки; 2) процедурно-ориентированные языки; 3) объектно-ориентированные языки; 4) проблемно-ориентированные языки; 5) языки четвертого поколения (4GL).
1.4.1. Машинно-ориентированные языки
Программы, написанные на языках данной группы, могут выполняться только на тех компьютерах, для которых разработаны соответствующие языки. Данные языки относятся к языкам низкого уровня . Уровень языка определяется отношением количества машинных команд, необходимых для реализации некоторой средней программы, к количеству операндов языка, необходимых для написания данной программы. Чем ближе это соотношение к единице, тем ниже уровень языка. К языкам низкого уровня относятся языки символического кодирования, автокоды, ассемблеры. Недостатки данной группы языков – трудоемкое программирование, машинная ориентированность, высокие требования к уровню подготовки программистов.
1.4.2. Машинно-независимые языки
Вторая – пятая группы языков относятся к машинно-независимым языкам высокого уровня. Написанные на них программы могут быть выполнены на любых компьютерах, имеющих транслятор с данного языка. 9
Вторая группа. Процедурно-ориентированные языки. Языки данной группы первоначально предназначались для решения конкретного класса задач – инженерных, научно-технических, обработки экономической информации, обработки списков, моделирования и т.д. Со временем большинство из языков данной группы развивалось и превратилось в достаточно мощные универсальные языки программирования. Ниже дана краткая характеристика первых версий языков данной группы. Фортран . Разработан в 1956 г. Предназначался для решения инженерных и научно-технических задач. Предоставлял пользователю большие возможности для обработки числовых данных, но располагал бедными средствами для работы с символьными строками. Алгол (1958г.). Первый язык с блочной структурой. Располагал бедными средствами ввода-вывода. Предназначался для решения широкого круга математических задач. Кобол (1959г.). Язык, ориентированный на решение коммерческих (планово-экономических) задач. В Коболе особое место было отведено понятиям записи, файла, описанию поля, предусматривались широкие возможности для манипулирования данными. Бейсик (1965г.). Первоначально был разработан как язык для обучения программированию. Являлся упрощенной версией Фортрана. Предоставлял широкие средства для диалога, но имел ограниченные возможности по сравнению с другими языками высокого уровня. ПЛ/1 (1965г.). Сочетал в себе многие черты Алгола, Кобола и Фортрана. Являлся одним из самых универсальных языков программирования. Располагал большим числом средств, что делало его весьма сложным для изучения и использования. Паскаль (1971г.). Основан на Алголе. Являлся языком с блочной структурой, способствовал структурному подходу к программированию. Располагал большим набором управляющих операторов. Широко используется в настоящее время в персональных компьютерах. Си (1972г.). Первоначально был разработан для мини-ЭВМ, использующих операционную систему UNIX. Включал средства для проектирования на уровне ассемблера, средства для эффективного использования аппаратуры. Поэтому считался наиболее эффективным в плане скорости выполнения программы и необходимой памяти. Нашел широкое применение при написании программ вычислительного характера и программ операционных систем. Ада (1979г.). Представлял собой расширение языка Паскаль для больших машин. Являлся существенно структурированным языком. Был особенно удобен при использовании в системах реального времени. 10
3. Назначение и классификация языков программирования.
Программы пишутся на ЯП. В отличие от живых языков, языки программирования более просты, поскольку состоят из ограниченного набора слов, предназначенных исключительно для записи алгоритмов. Любая фраза на языке программирования должна подчиняться синтаксису этого языка. Программы на языке программирования вводят в компьютер как обычный текст, а тот, зная, что это текст — программа, преобразует его к виду удобному для исполнения.
Так, язык АЛГОЛ был в свое время создан международной ассоциацией ученых для написания и публикации алгоритмов. Для решения задач в области коммерции был специально разработан язык КОБОЛ, для компьютерной обработки текстов был создан язык ПРОЛОГ, для обучения студентов программированию был придуман языки БЕЙСИК и ЛИСП, для сложных математических расчетов — ФОРТРАН, для облегчения программирования аппаратуры компьютеров — язык СИ.
Основные назначение языков программирования. — быть средством программирования: формулирования программ и их реализации на ЭВМ.
Следует учитывать, что реальные программы выполняются в среде определенной ос. Операционная система представляет собой специальный программный комплекс. В настоящее время наиболее популярными операционными системами являются операционные системы фирмы Microsoft (MS-DOS, MS Windows), а также операционные системы семейства UNIX(Linux и др.). Если к абстрактной вычислительной машине добавить операционную систему, получим виртуальную машину. Программы пишутся для абстрактной вычислительной машины, а для виртуальной машины создаются трансляторы и среды разработки и отладки программ.
Для написания программ на низком уровне абстракции используются языки программирования низкого уровня. Языки низкого уровня используются для очень подробного и детального описания операций, настолько детального, что при этом учитывается архитектура компьютера, устройство его центрального процессора. Такие языки называются машинными кодами и ассемблерами. Ассемблер дает несколько более удобный способ записи программ в машинных кодах. Программа на ассемблере получается длинной, следовательно увеличивается вероятность появления ошибок. Для составления такой программы требуется знание архитектуры компьютера, это увеличивает трудоемкость программирования. Программа оказывается привязанной к конкретной архитектуре. Все это можно считать недостатками программирования на языках низкого уровня. Преимуществом является возможность «выжать» из компьютера все что можно, и прежде всего — максимум быстродействия.
Языки программирования высокого уровня были созданы для того, чтобы преодолеть недостатки низкоуровневого программирования. Они позволяют использовать различные операции, не заботясь о деталях их реализации на конкретной архитектуре. Программы при этом оказываются более короткими, надежными и универсальными, а процесс их составления сокращается. Языки высокого уровня бывают четырех видов: императивные (процедурные), функциональные , логические , объектно-ориентированные .