В чем состоит назначение систем программирования
информатика
Лекции
1. Введение
ИНФОРМАЦИЯ И ЕЕ РОЛЬ В СОВРЕМЕННОМ ОБЩЕСТВЕ.
ИНФОРМАТИКА- НАУКА, ИЗУЧАЮЩАЯ СПОСОБЫ АВТОМАТИЗИРОВАННОГО СОЗДАНИЯ, ХРАНЕНИЯ, ОБРАБОТКИ, ИСПОЛЬЗОВАНИЯ, ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ.
ИНФОРМАЦИЯ – ЭТО НАБОР СИМВОЛОВ, ГРАФИЧЕСКИХ ОБРАЗОВ ИЛИ ЗВУКОВЫХ СИГНАЛОВ, НЕСУЩИХ ОПРЕДЕЛЕННУЮ СМЫСЛОВУЮ НАГРУЗКУ.
В развитых странах большинство работающих заняты не в сфере производства, а в той или иной степени занимаются обработкой информации. Поэтому философы называют нашу эпоху постиндустриальной. В 1983 году американский сенатор Г.Харт охарактеризовал этот процесс так: «Мы переходим от экономики, основанной на тяжелой промышленности, к экономике, которая все больше ориентируется на информацию, новейшую технику и технологию, средства связи и услуги..»
2. КРАТКАЯ ИСТОРИЯ РАЗВИТИЯ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ.
Вся история развития человеческого общества связана с накоплением и обменом информацией (наскальная живопись, письменность, библиотеки, почта, телефон, радио, счеты и механические арифмометры и др.). Коренной перелом в области технологии обработки информации начался после второй мировой войны.
В вычислительных машинах первого поколения основными элементами были электронные лампы. Эти машины занимали громадные залы, весили сотни тонн и расходовали сотни киловатт электроэнергии. Их быстродействие и надежность были низкими, а стоимость достигала 500-700 тысяч долларов.
Появление более мощных и дешевых ЭВМ второго поколения стало возможным благодаря изобретению в 1948 году полупроводниковых устройств- транзисторов. Главный недостаток машин первого и второго поколений заключался в том, что они собирались из большого числа компонент, соединяемых между собой. Точки соединения (пайки) являются самыми ненадежными местами в электронной технике, поэтому эти ЭВМ часто выходили из строя.
В ЭВМ третьего поколения (с середины 60-х годов ХХ века) стали использоваться интегральные микросхемы (чипы)- устройства, содержащие в себе тысячи транзисторов и других элементов, но изготовляемые как единое целое, без сварных или паяных соединений этих элементов между собой. Это привело не только к резкому увеличению надежности ЭВМ, но и к снижению размеров, энергопотребления и стоимости (до 50 тысяч долларов).
История ЭВМ четвертого поколения началась в 1970 году, когда ранее никому не известная американская фирма INTEL создала большую интегральную схему (БИС), содержащую в себе практически всю основную электронику компьютера. Цена одной такой схемы (микропроцессора) составляла всего несколько десятков долларов, что в итоге и привело к снижению цен на ЭВМ до уровня доступных широкому кругу пользователей.
СОВРЕМЕННЫЕ КОМПЬТЕРЫ- ЭТО ЭВМ ЧЕТВЕРТОГО ПОКОЛЕНИЯ, В КОТОРЫХ ИСПОЛЬЗУЮТСЯ БОЛЬШИЕ ИНТЕГРАЛЬНЫЕ СХЕМЫ.
6.ПРЕДСТАВЛЕНИЕ ИНФОРМАЦИИ В КОМПЬЮТЕРЕ И ЕЕ ОБЪЕМ.
ЛЮБОЕ СООБЩЕНИЕ НА ЛЮБОМ ЯЗЫКЕ СОСТОИТ ИЗ ПОСЛЕДОВАТЕЛЬНОСТИ СИМВОЛОВ- БУКВ, ЦИФР, ЗНАКОВ. Действительно, в каждом языке есть свой алфавит из определенного набора букв (например, в русском- 33 буквы, английском- 26, и т.д.). Из этих букв образуются слова, которые в свою очередь, вместе с цифрами и знаками препинания образуют предложения, в результате чего и создается текстовое сообщение. Не является исключением и язык на котором «говорит» компьютер, только набор букв в этом языке является минимально возможным.
В КОМПЬЮТЕРЕ ИСПОЛЬЗУЮТСЯ 2 СИМВОЛА- НОЛЬ И ЕДИНИЦА (0 и 1), АНАЛОГИЧНО ТОМУ, КАК В АЗБУКЕ МОРЗЕ ИСПОЛЬЗУЮТСЯ ТОЧКА И ТИРЕ. Действительно, закодировав привычные человеку символы (буквы, цифры, знаки) в виде нулей и единиц (или точек и тире), можно составить, передать и сохранить любое сообщение.
ЭТО СВЯЗАНО С ТЕМ, ЧТО ИНФОРМАЦИЮ, ПРЕДСТАВЛЕННУЮ В ТАКОМ ВИДЕ, ЛЕГКО ТЕХНИЧЕСКИ СМОДЕЛИРОВАТЬ, НАПРИМЕР, В ВИДЕ ЭЛЕКТРИЧЕСКИХ СИГНАЛОВ. Если в какой-то момент времени по проводнику идет ток, то по нему передается единица, если тока нет- ноль. Аналогично, если направление магнитного поля на каком-то участке поверхности магнитного диска одно- на этом участке записан ноль, другое- единица. Если определенный участок поверхности оптического диска отражает лазерный луч- на нем записан ноль, не отражает- единица.
ОБЪЕМ ИНФОРМАЦИИ, НЕОБХОДИМЫЙ ДЛЯ ЗАПОМИНАНИЯ ОДНОГО ИЗ ДВУХ СИМВОЛОВ-0 ИЛИ 1, НАЗЫВАЕТСЯ 1 БИТ (англ. binary digit- двоичная единица). 1 бит- минимально возможный объем информации. Он соответствует промежутку времени, в течение которого по проводнику передается или не передается электрический сигнал, участку поверхности магнитного диска, частицы которого намагничены в том или другом направлении, участку поверхности оптического диска, который отражает или не отражает лазерный луч, одному триггеру, находящемуся в одном из двух возможных состояний.
Итак, если у нас есть один бит, то с его помощью мы можем закодировать один из двух символов- либо 0, либо 1.
3 бита- 8 вариантов;
Продолжая дальше, получим:
4 бита- 16 вариантов,
7 бит- 128 вариантов,
8 бит- 256 вариантов,
9 бит- 512 вариантов,
10 бит- 1024 варианта,
В обычной жизни нам достаточно 150-160 стандартных символов (больших и маленьких русских и латинских букв, цифр, знаков препинания, арифметических действий и т.п.). Если каждому из них будет соответствовать свой код из нулей и единиц, то 7 бит для этого будет недостаточно (7 бит позволят закодировать только 128 различных символов), поэтому используют 8 бит.
ДЛЯ КОДИРОВАНИЯ ОДНОГО ПРИВЫЧНОГО ЧЕЛОВЕКУ СИМВОЛА В КОМПЬЮТЕРЕ ИСПОЛЬЗУЕТСЯ 8 БИТ, ЧТО ПОЗВОЛЯЕТ ЗАКОДИРОВАТЬ 256 РАЗЛИЧНЫХ СИМВОЛОВ.
СТАНДАРТНЫЙ НАБОР ИЗ 256 СИМВОЛОВ НАЗЫВАЕТСЯ ASCII ( произносится «аски», означает «Американский Стандартный Код для Обмена Информацией»- англ. American Standart Code for Information Interchange).
ОН ВКЛЮЧАЕТ В СЕБЯ БОЛЬШИЕ И МАЛЕНЬКИЕ РУССКИЕ И ЛАТИНСКИЕ БУКВЫ, ЦИФРЫ, ЗНАКИ ПРЕПИНАНИЯ И АРИФМЕТИЧЕСКИХ ДЕЙСТВИЙ И Т.П.
КАЖДОМУ СИМВОЛУ ASCII СООТВЕТСТВУЕТ 8-БИТОВЫЙ ДВОИЧНЫЙ КОД, НАПРИМЕР:
ОБЪЕМ ИНФОРМАЦИИ, НЕОБХОДИМЫЙ ДЛЯ ЗАПОМИНАНИЯ ОДНОГО СИМВОЛА ASCII НАЗЫВАЕТСЯ 1 БАЙТ.
Очевидно что, поскольку под один стандартный ASCII-символ отводится 8 бит,
Остальные единицы объема информации являются производными от байта:
1 КИЛОБАЙТ = 1024 БАЙТА И СООТВЕТСТВУЕТ ПРИМЕРНО ПОЛОВИНЕ СТРАНИЦЫ ТЕКСТА,
1 МЕГАБАЙТ = 1024 КИЛОБАЙТАМ И СООТВЕТСТВУЕТ ПРИМЕРНО 500 СТРАНИЦАМ ТЕКСТА,
1 ГИГАБАЙТ = 1024 МЕГАБАЙТАМ И СООТВЕТСТВУЕТ ПРИМЕРНО 2 КОМПЛЕКТАМ ЭНЦИКЛОПЕДИИ,
1 ТЕРАБАЙТ = 1024 ГИГАБАЙТАМ И СООТВЕТСТВУЕТ ПРИМЕРНО 2000 КОМПЛЕКТАМ ЭНЦИКЛОПЕДИИ.
СКОРОСТЬ ПЕРЕДАЧИ ИНФОРМАЦИИ ПО ЛИНИЯМ СВЯЗИ ИЗМЕРЯЕТСЯ В БОДАХ.
В частности, если говорят, что пропускная способность какого-то устройства составляет 28 Килобод, то это значит, что с его помощью можно передать по линии связи около 28 тысяч нулей и единиц за одну секунду.
7. СЖАТИЕ ИНФОРМАЦИИ НА ДИСКЕ
ИНФОРМАЦИЮ НА ДИСКЕ МОЖНО ОБРАБОТАТЬ С ПОМОЩЬЮ СПЕЦИАЛЬНЫХ ПРОГРАММ ТАКИМ ОБРАЗОМ, ЧТОБЫ ОНА ЗАНИМАЛА МЕНЬШИЙ ОБЪЕМ.
Сжатие информации используют, если объем носителя информации недостаточен для хранения требуемого объема информации или информацию надо послать по электронной почте
Программы, используемые при сжатии отдельных файлов называются архиваторами. Эти программы часто позволяют достичь степени сжатия информации в несколько раз.
Назначение систем программирования
Для удобной разработки программ существуют специальные средства их создания, — системы (среды) программирования, которые обеспечивают весь цикл работы с программой — от ее разработки до выполнения и получения необходимых результатов.
Система программирования — это комплекс программных средств, предназначенных для автоматизации процесса подготовки и выполнения программ пользователя.
Назначение и состав систем программирования
Рассмотрим основные составляющие системы программирования:
Для сознательного понимания назначения составляющих системы программирования опишем этапы процесса разработки программы, связанные с использованием компьютера.
Редактор исходного кода
Вводим текст разработанной программы, которую называют исходным кодом, в компьютер и храним в памяти. Для этого система программирования имеет редактор текста, который обеспечивает ввод и редактирование исходного кода.
Компиляция и интерпретация
После введения программы и исправления ошибок, которые могли произойти во время ввода, осуществляется преобразование программы с языка программирования высокого уровня в двоичный код.
Такое преобразование осуществляется с помощью транслятора программ.
Различают два типа трансляторов: компиляторы и интерпретаторы.
В процессе интерпретации исходных текстов программ каждая команда (инструкция) последовательно превращается в двоичный код и сразу выполняется — на экране высвечивается результат ее выполнения. После завершения одной команды выполняется следующая и так далее до последней команды. Но результат преобразования не сохраняется, и каждый запуск программы начинается сначала.
В процессе компиляции осуществляется преобразование всего текста программного кода в двоичный код. Полученную после компиляции программу называют объектным модулем. Такая программа еще не готова к выполнению.
Исходный код обычно содержит ссылки на другие модули (подпрограммы), которые содержатся в библиотеке подпрограмм (например, модуль вычисления квадратного корня). Таким образом, к программному модуля нужно добавить коды необходимых подпрограмм, чтобы подготовить программу для исполнения.
Компилируемая программы выполняются быстрее интерпретируемых. Режим интерпретации нуждается в дополнительной основной памяти, поскольку интерпретатор должен все время храниться вместе с кодом. Но интерпретация в работе удобнее. Особенно для программистов, которые только начинают работать с системами программирования, так контролируется результат каждой команды.
Компоновка
После компиляции компоновщик (редактор связей) «склеивает» отдельные двоичные модули в единую программу, которая называется исполняемой программой. Этот процесс представлены на схеме:
Для дальнейшего выполнения программного кода, компилятор не нужен. Итак, после компиляции программа представлена двоичными символами 1 и 0 и готова к исполнению на компьютере.
Отладка и тестирование
Полученная программа, даже если она выполняется, не гарантирует, что нет логических ошибок. Она может выполняться, но результат исполнения может быть неправильным. Поэтому нужно провести тестирование (испытания) программы на предмет выявления и устранения в ней логических ошибок.
Тестирование — достаточно ответственный этап. В крупных IT-компаниях над разработкой программ, которые называют проектами, работают десятки и даже сотни программистов разных направлений. Одни из них разрабатывают проекты, другие занимаются тестированием программ, экономическим обоснованием и тому подобное.
На этом этапе применяется отладчик программ, который позволяет пошагово анализировать программу. Отладчик позволяет выполнять трассировку программы, устанавливать и удалять контрольные точки в программах, условия приостановления выполнения программы и тому подобное.
Создание переносимых программ
Описанный выше процесс разработки программ является классическим для процедурных языков программирования. Для программ, разработанных языком ООП, есть отличия. Их сущность заключается в том, что после компиляции создается не машинный, а промежуточный код, так называемый байт-код. С помощью специального программного обеспечения он затем превращается в машинный.
Такой подход обусловлен тем, что в Интернете свободно перемещаются данные и программы (апплеты — небольшие программы, предназначенные для передачи через Интернет и выполнения в браузере, совместимом с языком программирования). Их нужно защитить от вирусов и других вредоносных программ, а также реализовать переносимость программ.
Под переносимостью понимают возможность загрузки и выполнения апплета на компьютерах с любым типом процессора, любой операционной системой и браузером, подключен к Интернету. Именно эти проблемы и позволяет решить байт-код.
Понятно, что использование любого промежуточного кода, в том числе и байт-кода, снижает скорость выполнения программ и требует дополнительных аппаратных средств. Впрочем, эти потери незначительны по сравнению с полученным выигрышем. Если бы ООП-программа сразу компилировалась в машинный код, то для каждого компьютера со своим типом процессора необходимо было бы иметь отдельную версию той самой программы, что экономически крайне невыгодно.
Иногда используются так называемые динамические компиляторы. Их сущность заключается в том, что байт-код компилируется в машинный код не весь сразу, а отдельными фрагментами, по мере необходимости. Другие части кода могут выполняться в режиме интерпретации. Тем самым достигается высокая эффективность работы с кодом.
Примеры систем программирования
Системы (среды) программирования часто именуются по названию языка, например среда Pascal, среда Delphi. Иногда название системы содержит префикс, указывающий на разработчика среды: название системы Turbo-C означает, что ее разработчиком является фирма Borland.
Сегодня все чаще используются интегрированные среды программирования, которые обеспечивают работу с несколькими языками. Такими системами являются, например, IntelliJ IDEA, Eclipse. Вариант Ultimate Edition системы IDEA обеспечивает работу с языками программирования Java, PHP, Python.
Некоторые системы программирования поддерживают как режим интерпретации, так и режим компиляции программ.
Далее, в процессе описания языка программирования Python, мы будем применять среду IDLE.
Программирование и комп-ры : Понятие, назначение и составные элементы систем программирования
Понятие, назначение и составные элементы систем программирования.
Неотъемлемая часть современных ЭВМ – системы программного
обеспечения, являющиеся логическим продолжением логических средств ЭВМ,
расширяющим возможности аппаратуры и сферу их использования. Система
программного обеспечения, являясь посредником между человеком и
техническими устройствами машины, автоматизирует выполнение тех или иных
функций в зависимости от профиля специалистов и режимов их взаимодействия с
ЭВМ. Основное назначение программного обеспечения – повышение эффективности
труда пользователя, а также увеличение пропускной способности ЭВМ
посредством сокращения времени и затрат на подготовку и выполнение
программ. Программное обеспечение ЭВМ можно подразделить на общее и
специальное программное обеспечение.
Общее программное обеспечение реализует функции, связанные с работой
ЭВМ, и включает в себя системы программирования, операционные системы,
комплекс программ технического обслуживания.
Специальное программное обеспечение включает в себя пакеты прикладных
программ, которые проблемно ориентированы на решение вполне определенного
Системой программирования называется комплекс программ,
предназначенный для автоматизации программирования задач на ЭВМ. Система
программирования освобождает проблемного пользователя или прикладного
программиста от необходимости написания программ решения своих задач на
неудобном для него языке машинных команд и предоставляют им возможность
использовать специальные языки более высокого уровня. Для каждого из таких
языков, называемых входными или исходными, система программирования имеет
программу, осуществляющую автоматический перевод (трансляцию) текстов
программы с входного языка на язык машины. Обычно система программирования
содержит описания применяемых языков программирования, программы-
трансляторы с этих языков, а также развитую библиотеку стандартных
подпрограмм. Важно различать язык программирования и реализацию языка.
Язык – это набор правил, определяющих систему записей, составляющих
программу, синтаксис и семантику используемых грамматических конструкций.
Реализация языка – это системная программа, которая переводит
(преобразует) записи на языке высокого уровня в последовательность машинных
Имеется два основных вида средств реализации языка: компиляторы и
Компилятор транслирует весь текст программы, написанной на языке
высокого уровня, в ходе непрерывного процесса. При этом создается полная
программа в машинных кодах, которую затем ЭВМ выполняет без участия
Интерпретатор последовательно анализирует по одному оператору
программы, превращая при этом каждую синтаксическую конструкцию, записанную
на языке высокого уровня, в машинные коды и выполняя их одна за другой.
Интерпретатор должен постоянно присутствовать в зоне основной памяти вместе
с интерпретируемой программой, что требует значительных объемов памяти.
Следует заметить, что любой язык программирования может быть как
интерпретируемым, так и компилируемым, но в большинстве случаев у каждого
языка есть свой предпочтительный способ реализации. Языки Фортран, Паскаль
в основном компилируют; язык Ассемблер почти всегда интерпретирует; языки
Бейсик и Лисп широко используют оба способа.
Основным преимуществом компиляции является скорость выполнения
готовой программы. Интерпретируемая программа неизбежно выполняется
медленнее, чем компилируемая, поскольку интерпретатор должен строить
соответствующую последовательность команд в момент, когда инструкция
В то же время интерпретируемый язык часто более удобен для
программиста, особенно начинающего. Он позволяет проконтролировать
результат каждой операции. Особенно хорошо такой язык подходит для
диалогового стиля разработки программ, когда отдельные части программы
можно написать, проверить и выполнить в ходе создания программы, не
По набору входных языков различают системы программирования одно- и
многоязыковые. Отличительная черта многоязыковых систем состоит в том, что
отдельные части программы можно составлять на разных языках и помощью
специальных обрабатывающих программ объединять их в готовую для исполнения
Для построения языков программирования используется совокупность
общепринятых символов и правил, позволяющих описывать алгоритмы решаемых
задач и однозначно истолковывать смысл созданного написания. Основной
тенденцией в развитии языков программирования является повышение их
семантического уровня с целью облегчения процесса разработки программ и
увеличения производительности труда их составителей.
По структуре, уровню формализации входного языка и целевому
назначению различают системы программирования машинно-ориентированные и
Машинно-ориентированные системы программирования имеют входной язык,
наборы операторов и изобразительные средства которых существенно зависят от
особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.). Машинно-
ориентированные системы позволяют использовать все возможности и
особенности машинно-зависимых языков:
. высокое качество создаваемых программ;
. возможность использования конкретных аппаратных ресурсов;
. предсказуемость объектного кода и заказов памяти;
. для составления эффективных программ необходимо знать систему команд и
особенности функционирования данной ЭВМ;
. трудоемкость процесса составления программ (особенно на машинных языках и
ЯСК), плохо защищенного от появления ошибок;
. низкая скорость программирования;
. невозможность непосредственного использования программ, составленных на
этих языках, на ЭВМ других типов.
Машинно-ориентированные системы по степени автоматического
программирования подразделяются на классы:
1. Машинный язык. В таких системах программирования отдельный
компьютер имеет свой определенный Машинный Язык (далее МЯ), ему
предписывают выполнение указываемых операций над определяемыми ими
операндами, поэтому МЯ является командным. Однако, некоторые семейства ЭВМ
(например, ЕС ЭВМ, IBM/370/ и др.) имеют единый МЯ для ЭВМ разной мощности.
В команде любого из них сообщается информация о местонахождении операндов и
типе выполняемой операции. В новых моделях ЭВМ намечается тенденция к
повышению внутренних языков машинно-аппаратным путем реализовывать более
сложные команды, приближающиеся по своим функциональным действиям к
операторам алгоритмических языков программирования.
2. Система Символического Кодирования. В данных системах используются
Языки Символического Кодирования (далее ЯСК), которые так же, как и МЯ,
являются командными. Однако коды операций и адреса в машинных командах,
представляющие собой последовательность двоичных (во внутреннем коде) или
восьмеричных (часто используемых при написании программ) цифр, в ЯСК
заменены символами (идентификаторами), форма написания которых помогает
программисту легче запоминать смысловое содержание операции. Это
обеспечивает существенное уменьшение числа ошибок при составлении программ.
Использование символических адресов – первый шаг к созданию ЯСК. Команды
ЭВМ вместо истинных (физических) адресов содержат символические адреса. По
результатам составленной программы определяется требуемое количество ячеек
для хранения исходных промежуточных и результирующих значений. Назначение
адресов, выполняемое отдельно от составления программы в символических
адресах, может проводиться менее квалифицированным программистом или
специальной программой, что в значительной степени облегчает труд
3. Автокоды. Существуют системы программирования, использующие языки,
которые включают в себя все возможности ЯСК, посредством расширенного
введения макрокоманд – они называются Автокоды. В различных программах
встречаются некоторые достаточно часто использующиеся командные
последовательности, которые соответствуют определенным процедурам
преобразования информации. Эффективная реализация таких процедур
обеспечивается оформлением их в виде специальных макрокоманд и включением
последних в язык программирования, доступный программисту. Макрокоманды
переводятся в машинные команды двумя путями – расстановкой и
генерированием. В постановочной системе содержатся «остовы» – серии команд,
реализующие требуемую функцию, обозначенную макрокомандой. Макрокоманды
обеспечивают передачу фактических параметров, которые в процессе трансляции
вставляются в «остов» программы, превращая её в реальную машинную
программу. В системе с генерацией имеются специальные программы,
анализирующие макрокоманду, которые определяют, какую функцию необходимо
выполнить и формируют необходимую последовательность команд, реализующих
данную функцию. Обе указанных системы используют трансляторы с ЯСК и набор
макрокоманд, которые также являются операторами автокода. Развитые автокоды
получили название Ассемблеры. Сервисные программы и пр., как правило,
составлены на языках типа Ассемблер.
4. Макрос. В таких системах язык, являющийся средством для замены
последовательности символов описывающих выполнение требуемых действий ЭВМ
на более сжатую форму – называется Макрос (средство замены). В основном,
Макрос предназначен для того, чтобы сократить запись исходной программы.
Компонент программного обеспечения, обеспечивающий функционирование
макросов, называется макропроцессором. На макропроцессор поступает
макросопределяющий и исходный текст. Реакция макропроцессора на вызов –
выдача выходного текста. Макрос одинаково может работать, как с
программами, так и с данными.
Машинно-независимые системы программирования – это средство описания
алгоритмов решения задач и информации, подлежащей обработке. Они удобны в
использовании для широкого круга пользователей и не требуют от них знания
особенностей организации функционирования ЭВМ. В таких системах программы,
составляемые языках, имеющих название высокоуровневых языков
программирования, представляют собой последовательности операторов,
структурированные согласно правилам рассматривания языка (задачи, сегменты,
блоки и т.д.). Операторы языка описывают действия, которые должна выполнять
система после трансляции программы на МЯ. Таким образом, командные
последовательности (процедуры, подпрограммы), часто используемые в машинных
программах, представлены в высокоуровневых языках отдельными операторами.
Программист получил возможность не расписывать в деталях вычислительный
процесс на уровне машинных команд, а сосредоточиться на основных
Среди машинно-независимых систем программирования следует выделить:
1. Процедурно-ориентированные системы. Входные языки программирования
в таких системах служат для записи алгоритмов (процедур) обработки
информации, характерных для решения задач определенного класса. Эти языки,
должны обеспечить программиста средствами, позволяющими коротко и четко
формулировать задачу и получать результаты в требуемой форме. Процедурных
языков очень много, например: Фортран, Алгол – языки, созданные для решения
работы со списочными структурами.
2. Проблемно-ориентированные системы в качестве входного языка
используют язык программирования с проблемной ориентацией. С расширением
областей применения вычислительной техники возникла необходимость
формализовать представление постановки и решение новых классов задач.
Необходимо было создать такие языки программирования, которые, используя в
данной области обозначения и терминологию, позволили бы описывать требуемые
алгоритмы решения для поставленных задач. Эти языки, ориентированные на
решение определенных проблем, должны обеспечить программиста средствами,
позволяющими коротко и четко формулировать задачу и получать результаты в
требуемой форме. Программы, составленные на основе этих языков
программирования, записаны в терминах решаемой задачи и реализуются
выполнением соответствующих процедур.
3. Диалоговые языки. Появление новых технических возможностей
поставило задачу перед системными программистами – создать программные
средства, обеспечивающие оперативное взаимодействие человека с ЭВМ их
назвали диалоговыми языками. Создавались специальные управляющие языки для
обеспечения оперативного воздействия на прохождение задач, которые
составлялись на любых раннее неразработанных (не диалоговых) языках.
Разрабатывались также языки, которые кроме целей управления обеспечивали бы
описание алгоритмов решения задач. Необходимость обеспечения оперативного
взаимодействия с пользователем потребовала сохранения в памяти ЭВМ копии
исходной программы даже после получения объектной программы в машинных
кодах. При внесении изменений в программу система программирования с
помощью специальных таблиц устанавливает взаимосвязь структур исходной и
объектной программ. Это позволяет осуществить требуемые редакционные
изменения в объектной программе.
4. Непроцедурные языки. Непроцедурные языки составляют группу языков,
описывающих организацию данных, обрабатываемых по фиксированным алгоритмам
(табличные языки и генераторы отчетов), и языков связи с операционными
системами. Позволяя четко описывать как задачу, так и необходимые для её
решения действия, таблицы решений дают возможность в наглядной форме
определить, какие условия должны выполнятся, прежде чем переходить к какому-
либо действию. Одна таблица решений, описывающая некоторую ситуацию,
содержит все возможные блок-схемы реализаций алгоритмов решения. Табличные
методы легко осваиваются специалистами любых профессий. Программы,
составленные на табличном языке, удобно описывают сложные ситуации,
возникающие при системном анализе.
В самом общем случае для создания программы на выбранном языке
программирования нужно иметь следующие компоненты.
1. Текстовый редактор. Специализированные текстовые редакторы,
ориентированные на конкретный язык программирования, необходимы для
получения файла с исходным текстом программы, который содержит набор
стандартных символов для записи алгоритма.
2. Исходный текст с помощью программы-компилятора переводится в
машинный код. Исходный текст программы состоит, как правило, из нескольких
модулей (файлов с исходными текстами). Каждый модуль компилируется в
отдельный файл с объектным кодом, которые затем требуется объединить в одно
целое. Кроме того, системы программирования, как правило, включают в себя
библиотеки стандартных подпрограмм. Стандартные подпрограммы имеют единую
форму обращения, что создает возможности автоматического включения таких
подпрограмм в вызывающую программу и настройки их параметров.
3. Объектный код модулей и подключенные к нему стандартные функции
обрабатывает специальная программа – редактор связей. Данная программа
объединяет объектные коды с учетом требований операционной системы и
формирует на выходе работоспособное приложение – исполнимый код для
конкретной платформы. Исполнимый код это законченная программа, которую
можно запустить на любом компьютер, где установлена операционная система,
для которой эта программа создавалась.
4. В современных системах программирования имеется еще один компонент
– отладчик, который позволяет анализировать работу программы во время ее
исполнения. С его помощью можно последовательно выполнять отдельные
операторы исходного текста последовательно, наблюдая при этом, как меняются
значения различных переменных.
5. В последние несколько лет в программировании (особенно для
операционной среды Windows) наметился так называемый визуальный подход.
Этот процесс автоматизирован в средах быстрого проектирования. При этом
используются готовые визуальные компоненты, свойства и поведение которых
настраиваются с помощью специальных редакторов. Таким образом, происходит
переход от языков программирования системного уровня к языкам сценариев.
Эти языки создавались для различных целей, что обусловило ряд
фундаментальных различий между ним. Системные разрабатывались для
построения структур данных и алгоритмов “с нуля”, начиная от таких
примитивных элементов, как слово памяти компьютера. В отличие от этого,
языки описания сценариев создавались для связывания готовых программ. Их
применение подразумевает наличие достаточного ассортимента мощных
компонентов, которые требуется только объединить друг с другом. Языки
системного уровня используют строгий контроль типов данных, что помогает
разработчикам приложении справляться со сложными задачами. Языки описания
сценариев не используют понятие типа, что упрощает установление связей
между компонентами, а также ускоряет разработку прикладных систем.
Языки описания сценариев основаны на несколько другом наборе
компромиссов, чем языки системного уровня. В них скорость исполнения и
строгость контроля типов ставятся в шкале приоритетов на более низкое
место, но зато выше цениться производительность труда программиста и
повторное использование. Это соотношение ценностей оказывается все более
обоснованным по мере того, как компьютеры становятся быстродействующими и
менее дорогими, чего нельзя сказать о программистах. Языки системного
программирования хорошо подходят для создания компонентов, где основная
сложность заключена в реализации алгоритмов и структур данных, тогда как
языки описания сценариев лучше приспособлены для построения приложении из
готовых компонентов, где сложность состоит в налаживании межкомпонентных
связей. Задачи последнего рода получают все большее распространение, так
что роль языков описания сценариев будет возрастать.
1. В.Ю. Демьяненко. Программные средства создания и ведения баз данных.
–М.: Финансы и статистика, 1984.
2. В.А. Мясников, С.А. Майоров, Г.И. Новиков. ЭВМ для всех. –М.: Знание,
3. А.Г. Гейн. Основы информатики и вычислительной техники. –М.:
4. В.Ф. Ляхович. Основы информатики. –Ростов-на-Дону: Феникс, 1996.
5. Вычислительная техника и программирование / Под ред. А.В. Петрова –М.:
6. Информатика: Базовый курс / С.В. Симонович и др. – СПб.: Питер, 1999.