23. Системы программирования и их состав.
Системой программирования называется комплекс программ, предназначенный для автоматизации программирования задач на ЭВМ. Система программирования освобождает проблемного пользователя или прикладного программиста от необходимости написания программ решения своих задач на неудобном для него языке машинных команд и предоставляют им возможность использовать специальные языки более высокого уровня. Для каждого из таких языков, называемых входными или исходными, система программирования имеет программу, осуществляющую автоматический перевод (трансляцию) текстов программы с входного языка на язык машины. Обычно система программирования содержит описания применяемых языков программирования, программы-трансляторы с этих языков, а также развитую библиотеку стандартных подпрограмм. Важно различать язык программирования и реализацию языка.
Язык – это набор правил, определяющих систему записей, составляющих программу, синтаксис и семантику используемых грамматических конструкций.
Реализация языка – это системная программа, которая переводит (преобразует) записи на языке высокого уровня в последовательность машинных команд. Имеется два основных вида средств реализации языка: компиляторы и интерпретаторы.
Компилятор транслирует весь текст программы, написанной на языке высокого уровня, в ходе непрерывного процесса. При этом создается полная программа в машинных кодах, которую затем ЭВМ выполняет без участия компилятора. Интерпретатор последовательно анализирует по одному оператору программы, превращая при этом каждую синтаксическую конструкцию, записанную на языке высокого уровня, в машинные коды и выполняя их одна за другой. Интерпретатор должен постоянно присутствовать в зоне основной памяти вместе с интерпретируемой программой, что требует значительных объемов памяти.
24. Понятие о программировании
Программа – это упорядоченная последовательность команд компьютера, составленных для решения задачи.
Процесс создания программ:
Постановка задачи – Алгоритм – Программирование – Отладка – Программа-приложение
Алгоритм — система команд, определяющая процесс преобразования исходных данных в результат решения поставленной задачи
Дискретность – возможность разбиения процесса обработки информации на более простые этапы
Определенность – однозначность выполнения отдельного шага преобразования информации
Выполнимость – возможность получения желаемого результата за конкретное число шагов
Универсальность – пригодность алгоритма для решения определенного класса задач
Программирование – это теоретическая и практическая деятельность, связанная с описанием алгоритма решения задачи средствами конкретного ЯП и оформления полученных результатов в виде программы
Программный продукт –комплекс взаимосвязанных программ для решения определенной проблемы, подготовленный к реализации
Логическое программирование Логика и программирование долгое время были непересекающимися областями исследований. Только в 1973 впервые было опубликовано описание языка PROLOG (PROgramming in LOGic- программирование в терминах логики) Центральным понятием в логическом программировании является отношение. Программа представляет собой совокупность определений отношений между объектами и цели. В логическом программировании нужно только специфицировать факты, на которых алгоритм основывается, а не определять последовательность шагов, которые требуется выполнить. Логические программы отличаются принципиально низким быстродействием. Так как вычисления осуществляются методом проб и ошибок (посредством поиска с возвратами). В настоящее время для ПК существует около двух десятков реализации PROLOG’а, некоторые из которых оформлены в виде интегрированных сред.
Объектно-ориентированное программирование. Корни ООП уходят в одну из ветвей логики, в которой первичной является не отношение, а объект. Прототипом объектно-ориентированного программирования явился язык SIMULA-67. Но оформилось оно в самостоятельный стиль программ ирония с появлением языка (SMALLTALK-1972 г.), первоначально предназначенного для реализаций функций машинной графики. Этот стиль программирования характеризуется богатыми графическими возможностями и средой программирования, развитой модульной структурой программ. Именно модульность упрощает разработку сложных программных продуктов. Как пример объектно-ориентированного языка можно назвать Visual Basic и Delfi.
Сейчас уже невозможно представить себе жизнь в мире ПК без Интернета. Язык гипертекстовой разметки-HTML (Hyper Text Markur Language) позволяет создавать программы, с помощью которых можно блуждать по Сети.
Языки программирования
Программирование — это искусство создавать программные продукты, которые написаны на языке программирования. Язык программирования – это формальная знаковая система, которая предназначена для написания программ, понятной для исполнителя (в нашем рассмотрении – это компьютер). Данный сайт предназначен для начинающих программистов, для чайников, для новичков, для детей, а также для профессионалов.
Язык программирования ( англ. Programming language ) — система обозначений для описания алгоритмов и структур данных, определенная искусственная формальная система, средствами которой можно выражать алгоритмы. Язык программирования определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполняет исполнитель ( компьютер ) под ее управлением.
Со времени создания первых программируемых машин было создано более двух с половиной тысяч языков программирования. Ежегодно их число пополняется новыми. Некоторыми языками умеет пользоваться только небольшое число их собственных разработчиков, другие становятся известны миллионам людей. Профессиональные программисты обычно применяют в своей работе несколько языков программирования.
Языки программирования низкого уровня
Первым компьютерам приходилось программировать двоичными машинными кодами. Однако программировать таким образом — достаточно трудоемкая и сложная задача. Для упрощения этой задачи стали появляться языки программирования низкого уровня, которые позволяли задавать машинные команды в более понятном для человека виде. Для преобразования их в двоичный код были созданы специальные программы — трансляторы.
Пример машинного кода и представления его на ассемблере
- компиляторы — превращают текст программы в машинный код, который можно сохранить и затем использовать уже без компилятора (примером являются исполняемые файлы с расширением *. exe).
- интерпретаторы — превращают часть программы в машинный код, выполняют и после этого переходят к следующей части. При этом каждый раз при выполнении программы используется интерпретатор.
- Программист, работающий с языками низкого уровня, должен быть высокой квалификации, хорошо понимать устройство микропроцессорной системы, для которой создается программа. Так, если программа создается для компьютера, нужно знать устройство компьютера и, особенно, устройство и особенности работы его процессора.
- результирующая программа не может быть перенесена на компьютер или устройство с другим типом процессора.
- значительное время разработки больших и сложных программ.
4.Понятие и состав систем программирования.
Система программирования — часть базового программного обеспечения, поддерживающая процесс программирования. Системы программирования представляют собой единство средств статической (инструментальной) и динамической (исполнительной) поддержки.
1. Языки системы программирования. Сюда относятся как языки программирования, предназначенные для записи алгоритмов (Паскаль, Фортран, С, Ассемблер и т.д.), так и другие языки, которые служат для управления самой системой программирования, например, так называемый командный язык (язык командных файлов). Другие языки, входящие в систему программирования, могут предназначаться для автоматизации разработки больших программ (напри- мер, так называемый язык спецификации программ). Вы не должны здесь путать три разных понятия: язык (например, Ассемблер), программу на этом языке и компилятор, который пере- водит Ассемблерные программы (на объектный язык).
2. Служебные программы системы программирования. Со многими из этих программ Вы уже познакомились в нашем курсе, например, сюда входят такие программы.
1. Текстовые редакторы, предназначенные для набора и исправления текстов программ на языках программирования (обычно это исходные модули). 2. Трансляторы (компиляторы) для перевода с одного языка на другой 3. Редакторы внешних связей, собирающие загрузочный модуль из объектных модулей в схеме счета со статической загрузкой и статическим связыванием. 4. Статические и динамические загрузчики, запускающие программы на счет. 5. Отладчики, помогающие пользователям в диалоговом режиме искать и исправлять ошибки в своих программах. 6. Оптимизаторы, позволяющие автоматически улучшать программу, написанную на определенном языке. Бывают оптимизаторы программ как на исходном языке программирования , так и на машинном языке. 7. Профилировщики, которые определяют, какой процент времени выполняется та или иная часть программы. Это позволяет выявить наиболее интенсивно используемые фрагменты программы и оптимизировать их или на исходном языке, или, например, пе- реписав эти фрагменты на Ассемблер. 8. Библиотекари, которые позволяют создавать и изменять файлы-библиотеки процедур , файлы-библиотеки макроопределений, и т.д. 9. Интерпретаторы, которые могут выполнять программы без перевода их на другие языки . 10. И другие служебные программы.
3. Информационное обеспечение системы программирования. Сюда относятся различные структурированные описания языков, служебных программ, библиотек модулей и т.п. Без хороше- го информационного обеспечения современные системы программирования эффективно ра- ботать не могут. Каждый пользователь неоднократно работал с этой компонентой системы программирования, нажимая функциональную клавишу F1 или выбирая из меню пункт Help (Помощь)