Системные средства языков программирования
Программные средства, используемые при разработке программ делятся на системные и инструментальные. В системном обеспечении основными являются операционные системы, инструментальные средства и технологии Windows, Mac OS X, Linux и т. п.
На олимпиадах по информатике и программированию с успехом используются только свободно распространяемые лицензионные инструментальные средства (в большинстве своём распространяются по лицензии GNU GPL). Из языков программирования на олимпиадах по программированию последние годы часто используются языки программирования Паскаль, C/C++ и Java.
Для ведения документации при разработках программ могут использоваться офисные пакеты программ (например, OpenOffice.org и Microsoft Office).
Общее описание языков программирования
Программирование — это искусство создавать программные продукты, которые написаны на языке программирования. Язык программирования — это формальная знаковая система, которая предназначена для написания программ, понятной для исполнителя (в нашем рассмотрении — это компьютер). Данный сайт предназначен для начинающих программистов, для чайников, для новичков, для детей, а также для профессионалов.
Язык программирования (англ. Programming language) — система обозначений для описания алгоритмов и структур данных, определенная искусственная формальная система, средствами которой можно выражать алгоритмы. Язык программирования определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполняет исполнитель (компьютер) под ее управлением.
Со времени создания первых программируемых машин было создано более двух с половиной тысяч языков программирования. Ежегодно их число пополняется новыми. Некоторыми языками умеет пользоваться только небольшое число их собственных разработчиков, другие становятся известны миллионам людей. Профессиональные программисты обычно применяют в своей работе несколько языков программирования.
Высокоуровневый язык программирования — язык программирования, разработанный для быстроты и удобства использования программистом. Основная черта высокоуровневых языков — это абстракция, то есть введение смысловых конструкций, кратко описывающих такие структуры данных и операции над ними, описания которых на машинном коде (или другом низкоуровневом языке программирования) очень длинны и сложны для понимания.
Так, высокоуровневые языки стремятся не только облегчить решение сложных программных задач, но и упростить портирование программного обеспечения. Использование разнообразных трансляторов и интерпретаторов обеспечивает связь программ, написанных при помощи языков высокого уровня, с различными операционными системами и оборудованием, в то время как их исходный код остаётся, в идеале, неизменным.
Такого рода оторванность высокоуровневых языков от аппаратной реализации компьютера помимо множества плюсов имеет и минусы. В частности, она не позволяет создавать простые и точные инструкции к используемому оборудованию. Программы, написанные на языках высокого уровня, проще для понимания программистом, но менее эффективны, чем их аналоги, создаваемые при помощи низкоуровневых языков. Одним из следствий этого стало добавление поддержки того или иного языка низкого уровня (язык ассемблера) в ряд современных профессиональных высокоуровневых языков программирования.
Примеры: C++, C#, Java, Python, PHP, Ruby, Perl, Паскаль, Delphi, Лисп. Языкам высокого уровня свойственно умение работать с комплексными структурами данных. В большинстве из них интегрирована поддержка строковых типов, объектов, операций файлового ввода-вывода и т. п.
Первым языком программирования высокого уровня считается компьютерный язык Plankalkul, разработанный немецким инженером Конрадом Цузе ещё в период 1942—1946 годах. Однако транслятора для него не существовало до 2000 года. Первым в мире транслятором языка высокого уровня является ПП (Программирующая Программа), он же ПП-1, успешно испытанный в 1954 году. Транслятор ПП-2 (1955 год, 4-й в мире транслятор) уже был оптимизирующим и содержал собственный загрузчик и отладчик, библиотеку стандартных процедур, а транслятор ПП для ЭВМ Стрела-4 уже содержал и компоновщик (linker) из модулей. Однако, широкое применение высокоуровневых языков началось с возникновением Фортрана и созданием компилятора для этого языка (1957).
Первым компьютерам приходилось программировать двоичными машинными кодами. Однако программировать таким образом — достаточно трудоемкая и сложная задача. Для упрощения этой задачи стали появляться языки программирования низкого уровня, которые позволяли задавать машинные команды в более понятном для человека виде. Для преобразования их в двоичный код были созданы специальные программы — трансляторы.
Рис. 1. Пример машинного кода и представления его на ассемблере.
-Компиляторы — превращают текст программы в машинный код, который можно сохранить и затем использовать уже без компилятора (примером являются исполняемые файлы с расширением *. exe).
-Интерпретаторы — превращают часть программы в машинный код, выполняют и после этого переходят к следующей части. При этом каждый раз при выполнении программы используется интерпретатор.
Примером языка низкого уровня является ассемблер. Языки низкого уровня ориентированы на конкретный тип процессора и учитывают его особенности, поэтому для переноса программы на ассемблере на другую аппаратную платформу ее нужно почти полностью переписать. Определенные различия имеются и в синтаксисе программ под разные компиляторы. Правда, центральные процессоры для компьютеров фирм AMD и Intel практически совместимы и отличаются лишь некоторыми специфическими командами. А вот специализированные процессоры для других устройств, например, видеокарт, телефонов содержат существенные различия.
С помощью языков низкого уровня создаются эффективные и компактные программы, поскольку разработчик получает доступ ко всем возможностям процессора.
Программист, работающий с языками низкого уровня, должен быть высокой квалификации, хорошо понимать устройство микропроцессорной системы, для которой создается программа. Так, если программа создается для компьютера, нужно знать устройство компьютера и, особенно, устройство и особенности работы его процессора.
Результирующая программа не может быть перенесена на компьютер или устройство с другим типом процессора.
Значительное время разработки больших и сложных программ.
Языки низкого уровня, как правило, используют для написания небольших системных программ, драйверов устройств, модулей стыков с нестандартным оборудованием, программирование специализированных микропроцессоров, когда важнейшими требованиями являются компактность, быстродействие и возможность прямого доступа к аппаратным ресурсам.
Ассемблер — язык низкого уровня, что широко применяется до сих пор.
21. Назначение и виды языков программирования. Составные компоненты системы программирования.
Язык программи́рования — формальный язык, предназначенный для записи компьютерных программ.
Языки программирования разделяются на две основные категории языки высокого уровня и языки низкого уровня :
§ Язык высокого уровня — Язык программирования, средства которого обеспечивают описание задачи в наглядном, легко воспринимаемом виде, удобном для программиста. Он не зависит от внутренних машинных кодов ЭВМ любого типа, поэтому программы, написанные на языках высокого уровня, требуют перевода в машинные коды программами транслятора либо интерпретатора. К языкам высокого уровня относят Фортран , ПЛ/1 , Бейсик , Паскаль , Си , Ада и др. Примеры: Python, Ruby, JavaScript, Common Lisp.
§ Язык низкого уровня — Язык программирования, предназначенный для определенного типа ЭВМ и отражающий его внутренний машинный код (“машинный язык “, “ машинно-ориентированный язык “ и “ язык ассемблера “). Примеры: C, C++, Assembler.
Системы программирования — это комплекс инструментальных программных средств, предназначенный для работы с программами на одном из языков программирования. Системы программирования предоставляют сервисные возможности программистам для разработки их собственных компьютерных программ.
В настоящее время разработка любого системного и прикладного программного обеспечения осуществляется с помощью систем программирования, в состав которых входят:
• трансляторы с языков высокого уровня;
• средства редактирования, компоновки и загрузки программ;
• макроассемблеры (машинно-ориентированные языки);
• отладчики машинных программ.
Системы программирования, как правило, включают в себя
• текстовый редактор (Edit), осуществляющий функции записи и редактирования исходного текста программы;
•загрузчик программ (Load), позволяющий выбрать из директория нужный текстовый файл программы;
• запускатель программ (Run), осуществляющий процесс выполнения программы;
• компилятор (Compile), предназначенный для компиляции или интерпретации исходного текста программы в машинный код с диагностикой синтаксических и семантических (логических) ошибок;
• отладчик (Debug), выполняющий сервисные функции по отладке и тестированию программы;
• диспетчер файлов (File), предоставляющий возможность выполнять операции с файлами: сохранение, поиск, уничтожение и т.п.
22. Назначение и классификация служебных программных средств.
- Диспетчеры файлов (файловые менеджеры). С их помощью выполняется большинство операций согласно обслуживанию файловой структуры копирования, перемещения, переименования файлов, создания каталогов (папок), уничтожения объектов, поиск файлов и навигация в файловой структуре. Базовые программные средства содержатся в составе программ системного уровня и устанавливаются вместе с операционной системой.
- Средства сжатие данное (архиваторы). Предназначенные для создания архивов. Архивные файлы имеют повышенную плотность записи информации и соответственно, эффективнее используются носители информации.
- Средства диагностики. Предназначенные для автоматизации процессов диагностирования программного и аппаратного обеспечения. Их используют для исправления ошибок и для оптимизации работы компьютерной системы.
- Программы инсталляции (установление). Предназначенные для контроля за добавлением в текущую программную конфигурацию нового программного обеспечения. Они следят за состоянием и изменением программной среды, фиксируют и протоколируют образования новых связей. Простые средства управления установлением и уничтожением программ содержатся в составе операционной системы, могут использоваться и дополнительные служебные программы.
- Средства коммуникации. Позволяют устанавливать комбинации с отдаленными компьютерами, передают известие электронной почтой, пересылают файловые сообщения и тому подобное.
- Средства пересмотра и воссоздания. Преимущественно для работы с файлами, их должны загрузить в «родную» прикладную систему и внести необходимые исправления.
- Средства компьютерной безопасности. К ним относятся виды пассивной и активной защиты данных их повреждения, несанкционированного доступа, пересмотра и изменения данных. Средства пассивной защиты — это служебные программы, предназначенные для резервного копирования. Средства активной защиты — антивирусное программное обеспечение. Для защиты данных от несанкционированного доступа, их пересмотра и изменения используют специальные системы.