Понятие системы программирования. Интегрированная среда программирования.
Системы программирования – это комплексы программ и прочих средств, предназначенных для разработки и их эксплуатации на конкретном языке программирования для конкретного вида ЭВМ.
Система программирования включает следующие программные модули:
Текстовые редакторы, служащие для создания текстов исходных программ.
Компиляторы, предназначенные для перевода исходного текста на входном языке в язык машинных кодов.
Компоновщики, позволяющие объединять несколько объектных модулей, порождаемых компилятором, в одну программу.
Библиотеки прикладных программ, содержащие в себе наиболее часто используемые подпрограммы в виде готовых объектных модулей.
Загрузчики, обеспечивающие подготовку готовой программы к выполнению.
Отладчики, выполняющие программу в заданном режиме (например, пошаговом) с целью поиска, обнаружения и локализации ошибок.
С помощью языка программирования создается не готовая программа, а только ее текст, описывающий ранее разработанный алгоритм. Чтобы получить работающую программу, надо либо автоматически перевести этот текст в машинный код и затем использовать отдельно от исходного текста, либо сразу выполнять команды языка, указанные в тексте программы. Для этого используются программы-трансляторы.
Транслятор – это программа, которая переводит входную программу на исходном (входном) языке в эквивалентную ей выходную программу на результирующем (выходном) языке.
Выделяют два вида трансляторов: интерпретаторы и компиляторы.
Интерпретатор переводит на язык машинных кодов поочередно каждый оператор исходной программы, проверяет правильность записи оператора и немедленно выполняет его.
Существует два основных недостатка метода интерпретации:
1) Интерпретирующая программа должна располагаться в памяти ЭВМ на протяжении всего процесса выполнения исходной программы. Другими словами, она должна занимать некоторый установленный объем памяти;
2) Процесс трансляции одного и того же оператора повторяется такое число раз, которое должна исполнять эта команда в программе. Это приводит к резкому снижению производительности работы программы.
Трансляторы-интерпретаторы являются достаточно распространенными, так как они поддерживают диалоговый режим.
В отличие от интерпретатора компилятор осуществляет перевод на машинный язык всей исходной программы.
Преимуществом компиляторов по сравнению с интерпретаторами является быстродействие, а недостатком – громоздкость.
Процессы трансляции и выполнения при компиляции разделяются во времени: сначала исходная программа в полном объеме переводится на машинный язык, после чего оттранслированная программа может многократно исполняться. Для трансляции методом компиляции необходим неоднократный «просмотр» транслируемой программы, т. е. трансляторы — компиляторы являются многопроходными. Трансляция методом компиляции носит название объектного модуля, который представляет собой эквивалентную программу в машинных кодах. Необходимо, чтобы перед исполнением объектный модуль обрабатывался специальной программой ОС и преобразовывался в загрузочный модуль.
Применяют также трансляторы интерпретаторы-компиляторы, объединяющие в себе достоинства обоих принципов трансляции.
Большинство современных компиляторов работают в режиме трансляции.
Основные блоки (фазы) компилятора, их функции
Исходная программа, написанная на некотором языке программирования, есть цепочка знаков. Компилятор в конечном итоге превращает эту цепочку знаков в цепочку битов – объектный код.
В процессе компиляции можно выделить следующие подпроцессы (блоки, этапы).
1. Лексический анализ.
2. Работа с таблицами.
3. Синтаксический анализ, или разбор.
4. Генерация кода, или трансляция в промежуточный код (например, языка ассемблер).
5. Оптимизация кода.
6. Генерация объектного кода.
Замечание. В конкретных компиляторах порядок может несколько отличаться, а некоторые блоки могут объединяться в один. В реальном компиляторе блоки не обязательно разделены.
Лексический анализ
Входом является цепочка символов некоторого алфавита.
Некоторые комбинации символов в программе рассматриваются как единые объекты – лексемы (например, зарезервированные слова, идентификаторы, числовые константы).
Работа лексического анализатора состоит в том, чтобы сгруппировать определенные символы в единые синтаксические объекты – лексемы.
Выходом является последовательность лексем.
Работа с таблицами
Информация о лексемах собирается и записывается в одну или несколько таблиц, например, в виде списка лексем и соответствующей информации о них.
Синтаксический анализ
Вход – цепочка лексем.
На этом этапе исследуется цепочка лексем и устанавливается, удовлетворяет ли она структурным условиям, явно сформулированным в определении синтаксиса языка.
Выходом анализатора является дерево, которое представляет синтаксическую структуру, присущую исходной программе.
Генерация кода
Полученное дерево используется для перевода входной программы в программу на машинном языке, но чаще осуществляется перевод на промежуточный язык (ассемблер).
Замечание. На практике чаще одновременно строится и дерево, и код.
Существует несколько методов построения промежуточного кода по синтаксическому дереву. Основным из них является синтаксически управляемый перевод (трансляция).
На двух этапах – синтаксического разбора и в начале этапа подготовки к генерации кода – выполняется семантический анализ . Семантический анализатор проверяет семантические соглашения входного языка, проверяет элементарные семантические (смысловые) нормы языков программирования, напрямую не связанных с входным языком; дополняет внутреннее представление программы в компиляторе операторами и действиями, неявно предусмотренными семантикой входного языка.
Оптимизация кода
Попытка сделать объектные программы более эффективными (т.е. быстрее работающими или более компактными).
Так, для операций, составляющих линейный участок программы, может применяться удаление бесполезных присваиваний, исключение лишних операций, перестановка операций, арифметические преобразования.
Еще одним методом оптимизации кода является оптимизация вычисления логических выражений (не всегда полностью надо выполнять вычисление всего выражения, чтобы знать его результат, иногда по значению одного операнда можно определить значение всего выражения).
Оптимизация передачи параметров в процедуры и функции через стек не является эффективным, если выполняются несложные вычисления над небольшим количеством параметров (всякий раз при вызове процедуры компилятор создает объектный код для размещения фактических параметров в стеке, а при выходе – код для освобождения ячеек). Эффективность результирующей программы повышается при передаче параметров через регистры либо подстановкой кода функции в вызывающий объектный код.
Для оптимизации циклов используются следующие методы: вынесение инвариантных вычислений из циклов (вынесение тех операций, операнды которых не изменяются); замена операций с индуктивными переменными (изменение сложных операций с переменными, значения которых в процессе выполнения цикла образуют арифметическую прогрессию, на более простые операции); слияние и развертывание циклов (слияние двух вложенных циклов в один и замена цикла на линейную последовательность операций).
Генерация объектного кода
Последний заключительный этап. Происходит порождение команд, составляющих предложения выходного языка и в целом текст результирующей программы.
В некоторых языках, вместо машинного кода генерируется интерпретируемый двоичный код » виртуальной машины «, также называемый байт-кодом (byte-code). Такой подход применяется в Forth, Lisp, Java , Perl, Python, а также в языках платформы Microsoft .NET.
Например: Программы на Java выполняются в два этапа. Сначала исходный текст компилятором переводится на промежуточный аппаратно-независимый язык. В таком виде полуфабрикат программы (байт-код) хранится на интернет-сервере, откуда по запросу клиента пересылается ему по сети. У клиента байт-код исполняется специальным интерпретатором, этот интерпретатор называется виртуальной Java-машиной, он встроен во все современные браузеры.
Среда визуальной разработки — среда разработки программного обеспечения, в которой наиболее распространённые блоки программного кода представлены в виде графических объектов. Применяются для создания прикладных программ и любительского программирование.
Синтаксис и семантика
Каждый язык программирование обладает своими лексическими, синтаксическими и семантическими правилами, которые необходимо соблюдать при составлении компьютерной программы.
Синтаксис – описывает структуру программ как наборов символов (обычно говорят — безотносительно к содержанию).
Пример синтаксической ошибки: употребление оператора цикла For без To или Next, или отсутствие знака равенства в приведенной на рисунке программе.
Синтаксические ошибки распознаются встроенным синтаксическим анализатором.
Синтаксису языка противопоставляется его семантика. Синтаксис языка описывает «чистый» язык, в то же время семантика приписывает значения (действия) различным синтаксическим конструкциям.
Семантика – определяет смысловое значение предложений алгоритмического языка.
Классы систем программирования (СП)
отличительной особенностью многоязыковых систем является то, что отдельные части (секции, модули или сегменты) программы могут быть подготовлены на различных языках и объединены во время или перед выполнением в единый модуль;
в открытую систему можно ввести новый входной язык с транслятором, не требуя изменений в системе;
в интерпретирующей системе осуществляется покомандная расшифровка и выполнение инструкций входного языка (в среде данной системы программирования); в компилирующей — подготовка результирующего модуля, который может выполняться на ЭВМ практически независимо от среды.
Рассмотрим структуру абстрактной многоязыковой, открытой, компилирующей системы программирования и процесс разработки приложений в данной среде
Ввод. Программа на исходном языке (исходный модуль) готовится с помощью
текстовых редакторов и в виде текстового файла или раздела библиотеки поступает на вход транслятора.
Трансляция. Трансляция исходной программы есть процедура преобразования исходного модуля в промежуточную, так называемую объектную форму. Трансляция в общем случае включает в себя препроцессинг (предобработку) и компиляцию.
Препроцессинг — необязательная фаза, состоящая в анализе исходного текста, извлечения из него директив препроцессора и их выполнения.
Директивы препроцессора представляют собой помеченные спецсимволами (обычно %, #, &) строки, содержащие аббревиатуры или другие символические обозначения конструкций, включаемых в состав исходной программы перед ее обработкой компилятором.
Данные для расширения исходного текста могут быть стандартными, определяться пользователем либо содержаться в системных библиотеках ОС.
Компиляция — в общем случае многоступенчатый процесс, включающий следующие фазы:
синтаксический анализ — проверка правильности конструкций, использованных программистом при подготовке текста;
семантический анализ — выявление несоответствий типов и структур переменных, функций и процедур;
генерация объектного кода — завершающая фаза трансляции.
Выполнение трансляции (компиляции) может осуществляться в различных режимах, установка которых производится с помощью ключей, параметров или опций. Может быть, например, потребовано только выполнение фазы синтаксического анализа и т.п.
Объектный модуль представляет собой текст программы на машинном языке, включающий машинные инструкции, словари, служебную информацию.
Объектный модуль не работоспособен, поскольку содержит неразрешенные ссылки на вызываемые подпрограммы библиотеки транслятора (в общем случае — системы программирования), реализующие функции ввода-вывода, обработки числовых и строчных переменных, я также на другие программы пользователей или средства пакетов прикладных программ.
Построение исполнительного модуля. Построение загрузочного модуля осуществляется специальными программными средствами — редактором связей, построителем задач, компоновщиком, основной функцией которых является объединение объектных и загрузочных модулей в единый загрузочный модуль с последующей записью в библиотеку или файл. Полученный модуль в дальнейшем может использоваться для сборки других программ и т.д., что создает возможность наращивания программного обеспечения.
Загрузка программы. Загрузочный модуль после сборки либо помещается в качестве раздела в пользовательскую библиотеку программ, либо в качестве последовательного файла на накопителе на магнитном диске (НМД). Выполнение модуля состоит в загрузке его в оперативную память, настройке по месту в памяти и передаче ему управления. Образ загрузочного модуля в памяти называется абсолютным модулем, поскольку все команды ЭВМ здесь приобретают окончательную форму и получают абсолютные адреса в памяти. Формирование абсолютного модуля может осуществляться как программно, путем обработки командных кодов модуля программой-загрузчиком, так и аппаратно, путем применения индексирования и базирования команд загрузочного модуля и приведения указанных в них относительных адресов к абсолютной форме.
Современные системы программирования позволяют удобно переходить от одного этапа к другому. Это осуществляется в рамках так называемой интегрированной среды программирования, которая содержит в себе текстовый редактор, компилятор, компоновщик, встроенный отладчик и, в зависимости от системы или ее версии, предоставляет программисту дополнительные удобства для написания и отладки программ.
Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:
Системы программирования
Составление исходного кода программы на языке программирования.
Этап трансляции исходного кода программы и построение загрузочного модуля, готового к исполнению.
Все перечисленные действия требуют наличия специальных программных средств.
Совокупность этих программных средств входит в состав системы программирования:
Текстовый редактор (необходимый для создания и редактирования исходного кода программы на языке программирования).
Классификация и обзор языков программирования
Современное состояние языков программирования можно представить в виде следующей классификации (рис. 1).
Рис. 1. Классификация языков программирования
Процедурное программирование
Процедурное или императивное (от лат. impemtivus – повелительный) программирование есть отражение фон Неймановской архитектуры компьютера. Программа на процедурном языке состоит из последовательности команд, определяющих процедуру решения задачи. Основным является оператор присваивания, предназначенный для определения и изменения содержимого памяти компьютера. Концепция памяти как места хранения данных, значения которых можно изменять операторами программы, является фундаментальным в императивном программировании.
Выполнение программы сводится к последовательному выполнению операторов с целью преобразования исходного состояния памяти, т.е. программа последовательно обновляет содержимое памяти, изменяя его от исходного состояния до результирующего.
Одним из первых процедурных языков программирования высокого уровня стал Фортран (FORmula TRANslation), созданный и начале 50-х гг. в США фирмой IBM. Первая публикация о нем появилась в 1954 г. Основное назначение языка – программирование научно-технических задач. Объектами языка являются целые и вещественные числа и числовые переменные. Выражения в нем формируются с помощью четырех арифметических действий: возведения в степень, логических операций И, ИЛИ, НЕ, операций отношения и круглых скобок. Основные операторы Фортрана – ввод, вывод, присваивание, условный и безусловный переход, цикл, вызов подпрограмм. Долгие годы он был одним из самых распространенных языков в мире. За это время накоплена огромная библиотека программ, написанных на Фортране. И сейчас ведутся работы над очередным стандартом Фортрана. Многие средства Фортрана использованы в языках PL-1 и Бейсик.
Кобол (COmmon Business Oriented Language – общепринятый деловой язык) — язык программирования, ориентированный на решение задач обработки данных. Широко используется для решения учетно-экономических и управленческих задач. Разработан в США в 1958—1960 гг. Программа на Коболе имеет вид ряда предложений на английском языке и напоминает обычный текст. Группы последовательно записанных операторов объединяются в предложения, предложения — в параграфы, параграфы — в секции. Программист присваивает параграфам и секциям имена (метки), что облегчает непосредственное обращение к нужному участку программы. В СССР был принят русский вариант языка. В Коболе были реализованы мощные средства работы с большими объемами данных, хранящимися на различных внешних носителях. На этом языке создано много приложений, некоторые из них активно эксплуатируются и сейчас. Достаточно сказать, что одной из высокооплачиваемых категорией граждан в США являются программисты на Коболе.
Алгол (AZGOrithmic Language) разработан группой зарубежных специалистов в 1960 г., явился результатом международного сотрудничества конца 50-х гг. (Алгол-60). Алгол предназначался для записи алгоритмов, построенных в виде последовательности процедур, применяемых при решении поставленных задач. Специалисты-практики воспринимали этот язык неоднозначно, но тем не менее, он как признанный международный язык сыграл большую роль в становлении основных понятий программирования и для обучения программистов. В нем впервые введены понятия «блочная структура программы», «динамическое распределение памяти». Внутри блока в Алголе можно вводить локальные обозначения, которые не зависят от остальной части программы. Несмотря на свое интернациональное происхождение, Алгол-60 подучил меньшее распространение, чем Фортран. Например, не на всех зарубежных ЭВМ имелись трансляторы с Алгола-60. В 1968 г. в результате дальнейшего развития и усовершенствования Алгола-60 была создана версия Алгол-68. Это многоцелевой универсальный расширенный язык программирования. Последнее свойство позволяло с помощью одной и той же программы транслятора осуществлять трансляцию с различных расширенных версий языка без дополнительных затрат на приспособление этого языка к различным категориям пользователей, на получение проблемно-ориентированных диалектов языка. По своим возможностям Алгол-68 и сегодня опережает многие языки программирования, однако из-за отсутствия эффективных компьютеров для него не удалось своевременно создать хорошие компиляторы. В нашей стране в те годы под руководством академика Андрея Петровича Ершова был создан транслятор Альфа, который представлял достаточно удачную русифицированную версию Алгола.
В середине 60-х гг. сотрудники математического факультета Дартмутского колледжа Томас Курц и Джон Кемени создали специализированный язык программирования, который состоял из простых английских слов. Новый язык назвали универсальным символическим кодом для начинающих (Beginners All-purpose Symbolic Instruction Code) или сокращенно BASIC (Бейсик). 1964 г. считают годом рождения этого языка. Он получил самое широкое распространение при работе на персональных компьютерах в режиме интерактивного диалога. Популярность Бейсика объясняется как простотой его освоения, так и наличием достаточно мощных универсальных средств, пригодных для решения научных, технических и экономических задач, а также задач бытового характера, игровых и т.д. Согласно концепциям, заложенным в Бейсике, в нем широко распространены различные правила умолчания, что считается плохим тоном в большинстве языков программирования подобного типа. Возникло множество версий языка, зачастую мало совместимых друг с другом. Однако, зная одну из версий, можно без особого труда освоить любую другую. Бейсик активно поглощает многие концепции и новинки из других языков. Первоначально интерактивный режим осуществлялся с использованием интерпретатора, в настоящее время для этого языка имеются также и компиляторы.
В начале 60-х гг. каждый из существующих языков программирования был ориентирован на разные классы задач, но в той или иной мере привязан к конкретной архитектуре ЭВМ. Были предприняты попытки преодолеть этот недостаток путем создания универсального языка программирования. ПЛ/1 (PL/1 – Programming Language One) — первый многоцелевой универсальный язык, разработан в США фирмой IBM в 1963—1966 гг. Это один из наиболее распространенных универсальных языков, он хорошо приспособлен для решения задач в области вычислительной техники: исследования и планирования вычислительных процессов, моделирования, решения логических задач и исследования логических схем, разработки систем математического обеспечения. При разработке PL/1 были широко использованы основные понятия и средства языков Фортран, Алгол-60, Кобол. PL/1 – богатый и гибкий язык, дает возможность производить вставки, исправлять текст программы в процессе ее отладки. Язык получил широкое распространение, трансляторы с него имеются для многих типов компьютеров. Компания IBM и сегодня продолжает поддерживать этот язык.
Паскаль (Pascal) является одним из наиболее популярных процедурных языков программирования, особенно для персональных компьютеров. Созданный как учебный язык программирования в 1968—1971 гг. Никлаусом Виртом в Высшей технической школе в Цюрихе (Швейцария), он был назван в честь французского математика и философа Блеза Паскаля (1623—1662). Целью работы Н. Вирта было создание языка, который
строился бы на небольшом количестве базовых понятий;
имел простой синтаксис;
допускал перевод программ в машинный код простым компилятором.
Лингвистическая концепция Паскаля пропагандирует системный подход, выражающийся, в частности, в расчленении крупных задач на меньшие по сложности и размеру, легко поддающиеся решению. К основным принципам Паскаля следует отнести:
Структурное программирование. Суть его заключается в оформлении последовательности команд как замкнутых функций или процедур и в объединении данных, связанных по смыслу, в сложные структуры данных. Благодаря этому повышается наглядность текста и упрощается его отладка.
Программирование сверху вниз, когда задача разбивается на простые, после чего каждая решается в отдельности. Затем компонуются результаты проектирования простых задач, и поставленная задача решается сверху вниз в целом.
В основу разработки языка Паскаль был положен Алгол-60, но в нем ужесточен ряд требований к структуре программы и имеются возможности, позволяющие успешно применять его для создания крупных проектов, например, программ-трансляторов. Паскаль реализован для всех типов компьютеров, в настоящее время используется во многих учебных заведениях для обучения программированию, а также для создания больших реальных проектов.
Период с конца 60-х до начала 80-х гг. характеризуется бурным ростом числа различных языков программирования, сопровождавшим, как это ни парадоксально, кризис программного обеспечения. Этот кризис особенно остро переживало военное ведомство США. В январе 1975 г. Пентагон решил навести порядок среди бесчисленного множества трансляторов и создал комитет для разработки одного универсального языка. На конкурсной основе комитет рассмотрел сотни проектов и выяснил, что ни один из существующих языков не может удовлетворить их требованиям, для окончательного рассмотрения было оставлено два проекта. В мае 1979 г. был объявлен победитель – группа ученых во главе с Жаном Ихбиа. Победивший язык назвали АДА, в честь Ады Лавлейс, дочери великого поэта Байрона. Она в юности была увлечена идеями Чарльза Бэббиджа и помогала ему составлять описание машины, а в начале 40-х гг. ХIХ в. разработала первую в мире программу для вычислительной машины. Язык АДА – прямой наследник Паскаля. Он предназначен для создания и длительного сопровождения больших программных систем, управления процессами в реальном масштабе времени. В языке четко выражена модульность его конструкций, причем обеспечивается удобство организации разнообразных связей между модулями. Важным его достоинством является возможность параллельного программирования ветвей программы, которые затем могут реализоваться на многопроцессорных компьютерах. Язык АДА сложен для изучения.
Язык программирования С (Си)был разработан в лаборатории Bell для реализации операционной системы UNIX в начале 70-х гг. и не рассматривался как массовый. Он планировался для замены Ассемблера, чтобы иметь возможность создавать столь же эффективные и компактные программы, и в то же время не зависеть от конкретного типа процессора. В Си сочетаются достоинства современных высокоуровневых языков в части управляющих конструкций и структур данных с возможностями прямого доступа к аппаратным средствам компьютера. Синтаксис языка Си обеспечивает краткость программы, его компиляторы генерируют эффективный объектный код. Одна из наиболее существенных особенностей Си состоит в том, что различия между выражениями и операторами нивелируются, это приближает его к функциональным языкам. Например, выражение может обладать побочным эффектом присваивания, а также может использоваться в качестве оператора. Нет четкого различия между процедурами и функциями, более того, понятие процедуры вообще не вводится. Синтаксис языка затрудняет программирование и восприятие составленных программ. Отсутствует строгая типизация данных, что предоставляет дополнительные возможности программисту, но не способствует созданию надежных программ. Язык Си приобрел большую популярность среди системных и прикладных программистов. В настоящее время этот язык реализован для большинства компьютерных платформ.
Системы программирования. Прикладное программное обеспечение
В данный момент вы не можете посмотреть или раздать видеоурок ученикам
Чтобы получить доступ к этому и другим видеоурокам комплекта, вам нужно добавить его в личный кабинет.
Получите невероятные возможности
Конспект урока «Системы программирования. Прикладное программное обеспечение»
На прошлых уроках мы узнали:
· Программное обеспечение – это все программы, которые предназначены для выполнения на компьютере.
· Программное обеспечение можно разделить на три категории: системное, прикладное и системы программирования.
· К системному программному обеспечению относится операционная система и сервисные программы, которые обеспечивают работу компьютера.
· Прикладное программное обеспечение.
Мы уже знаем, что самые первые компьютеры были нужны для проведения сложных расчётов. Это были громоздкие машины, занимавшие порой целые здания. Как же с их помощью производились вычисления? Чтобы задать такой машине задачу для расчёта её переключатели устанавливались в определённом порядке и подключались провода. Однако количество переключателей не было бесконечным. То есть задачи для расчёта имели ограниченный объём. И использовать такие компьютеры могли считанные единицы людей во всём мире.
Возможно у некоторых из вас возник вопрос, как появилось такое множество самых разных программ для компьютеров? Всё началось с идеи задавать команды процессору, не изменяя электрическую схему самого компьютера. Стало проще задавать целые последовательности команд для выполнения в виде единиц и нулей. Ноль обозначал отсутствие электрического сигнала, а единица – его наличие. Эти последовательности команд процессору и были первыми программами. Процесс создания компьютерных программ и называется программированием. Программисты – это люди, которые создают компьютерные программы, а языки программирования – формальные языки, созданные для записи компьютерных программ.
Самый первый язык программирования назывался Plankalkül (Планкалкюль) – такое сложное немецкое название раскладывается на две простые составляющие: план и калькуляция, то есть – исчисление планов. Планкалкюль был придуман в период 1943–1945 гг. немецким учёным Конрадом Цузе как средство программирования для компьютера Z4. Однако из-за второй мировой войны он так и не был реализован.
До 50-х годов всё ещё использовались машинные коды. Команды машинных кодов для разных процессоров были разными. Для использования таких кодов нужно было хорошо знать устройство компьютера и особенности его процессора. Потому компьютеры всё ещё были недоступны большинству людей.
Вскоре на смену машинным языкам стали приходить языки ассемблера. Они упрощали написание программ для различных процессоров и могли собирать воедино отдельные части программ. Однако для работы с такими языками всё ещё был необходим высокий уровень знаний оборудования компьютера в целом, и понимания особенностей процессоров в частности. Так, как эти языки позволяют полностью использовать возможности конкретных моделей процессоров, в некоторых случаях они используются и сегодня.
В середине 50-х годов был реализован первый язык высокого уровня Fortran (Фортран). Сейчас большинство программ пишется именно на языках высокого уровня. Языки высокого уровня получили такое название, потому что многие команды в них записываются словами естественного разговорного языка, и сам язык имитирует разговорный. Программисту стало гораздо проще понимать и изучать язык программирования. Эти языки не привязаны к конкретным процессорам или другому оборудованию. Одна и та же программа, написанная на них выглядит одинаково для всех моделей компьютеров.
Главная особенность всех языков программирования в том, что они полностью формальны. Все правила в них носят явный характер. Программы, которые на них написаны, можно трактовать только однозначно. Благодаря этому компьютерная программа точно знает, что делать с данными, которые задал пользователь.
Существует несколько тысяч языков программирования. Некоторые языки программирования имеют широкое распространение и их использует большое количество программистов по всему миру. Другие языки используются считанными единицами людей. Все языки программирования имеют свои особенности. Некоторые из них больше подходят для создания программ, которые проводят математические расчёты, другие – для создания веб-страниц, третьи – для работы с базами данных.
Поэтому некоторые профессиональные программисты могут использовать в своей работе около десятка разных языков программирования. В следующем году мы начнём изучать язык программирования Pascal (Паскаль). Он был придуман в 1970 г. Никлаусом Виртом для обучения студентов программированию. Паскаль используется для самых разных целей, в частности хорошо подходит для написания небольших программ, выполняющих математические расчёты.
Программы на языках программирования можно записать на любом материальном носителе, даже на бумаге. Однако для того, чтобы компьютер выполнил программу, её нужно задать. Последовательность команд, из которых состоит программа, записанная на языке программирования – это исходный код программы. Компьютер переводит исходный код программы в машинные коды, проверяет его правильность. Если нужно, он указывает программисту ошибки в программе. Это происходит благодаря системам программирования. Так называется совокупность программ, которая предназначена для разработки программного обеспечения на языке программирования.
Из каких же программ состоят системы программирования? Первая из них – встроенный текстовый редактор. С его помощью программист вводит и изменяет текст программы, пользуясь при этом библиотеками стандартных функций и процедур, которые упрощают этот процесс. Для того, чтобы перевести программу в машинные коды, необходима программа-компилятор или программа-интерпретатор. Компилятор при первом запуске переводит всю программу в машинный код целиком. И при каждом следующем запуске он выполняет уже готовый машинный код. Интерпретатор при каждом новом запуске построчно переводит программу в машинный код и выполняет его. В каждой системе программирования есть программа-отладчик. Она находит ошибки в исходном коде программы и указывает на них программисту.
Мы знаем, что для работы с информацией на компьютере не обязательно знать программирование. Это возможно благодаря самому разному прикладному программному обеспечению или приложениям. Так называются программы, с помощью которых можно обрабатывать информацию не используя программирование. По применению прикладное программное обеспечение можно разделить на два вида. Это приложения общего назначения и приложения специального назначения.
Приложения общего назначения используют практически все пользователи. Они нужны для обработки разных видов информации. Рассмотрим некоторые из них:
· Текстовые редакторы предназначены для создания и обработки текстовой информации. Некоторые из них поставляются в комплекте с операционной системой Windows. Например Блокнот и WordPad. Так же популярны бесплатный текстовый редактор для Windows NotePad++ и кроссплатформенный Vim.
· Графические редакторы нужны для обработки изображений. Они бывают растровые и векторные. Растровые графические редакторы заносят изображение в память компьютера как множество точек. Векторные графические редакторы воспринимают изображение как набор геометрических фигур. Популярные растровые графические редакторы – это платный редактор Adobe Photoshop и бесплатный Gimp. С операционной системой Windows поставляется редактор Paint. Наиболее популярные векторные графические редакторы – это коммерческий CorelDRAW и бесплатный Inkscape.
· Мультимедийные проигрыватели воспроизводят звук, анимацию и видео. В комплекте с операционной системой виндоус поставляется проигрыватель Windows Media. Широко распространён кроссплатформенный бесплатный проигрыватель MPlayer.
Ещё к приложениям общего назначения относятся:
· электронные таблицы, для автоматизации расчётов,
· системы управления базами данных.
С многими приложениями общего назначения вы познакомитесь на уроках информатики в средней и старшей школе.
Разные офисные пакеты содержат различные приложения общего назначения. Как правило это текстовый процессор, редактор электронных таблиц, редактор презентаций, система управления базами данных и многое другое.
Популярные офисные пакеты: коммерческий MicrosoftOffice для Windows и бесплатные кроссплатформенные OpenOffice и LibreOffice.
Приложения специального назначения используют квалифицированные пользователи в разных сферах профессиональной деятельности. К ним относятся:
· Издательские системы. С их помощью создают макеты печатной продукции.
· Бухгалтерские системы для учёта денег в организациях.
· Математические пакеты для выполнения сложных расчётов.
· Различные экспертные системы и справочники для поиска профессиональной информации.
· Системы автоматизированного проектирования для работы с чертежами.
· Программы компьютерного моделирования, которые проводят виртуальные испытания оборудования и сооружений.
· Образовательные приложения и системы автоматического тестирования.
Важно запомнить:
· Языки программирования – это формальные языки, предназначенные для создания компьютерных программ.
· Система программирования – это совокупность программ, предназначенная для разработки программного обеспечения на языке программирования.
· В систему программирования входят: встроенный текстовый редактор, библиотека встроенных функций и процедур, компилятор или интерпретатор и отладчик.
· Приложения (прикладное программное обеспечение) – это программы для обработки информации без использования программирования.
· Приложения общего назначения используются всеми пользователями для обработки различных видов информации.
· Приложения специального назначения используются квалифицированными пользователями в разных сферах профессиональной деятельности.