Системы программирования

Содержание

Слайд 2

ЯЗЫКИ ПРОГРАММИРОВАНИЯ И ИХ КЛАССИФИКАЦИИ Язык программирования — формальная знаковая система,

ЯЗЫКИ ПРОГРАММИРОВАНИЯ И ИХ КЛАССИФИКАЦИИ

Язык программирования — формальная знаковая система, предназначенная

для описания алгоритмов в форме, которая удобна для исполнителя (например, компьютера). Язык программирования определяет набор лексических, синтаксических и семантических правил, используемых при составлении компьютерной программы. Он позволяет программисту точно определить то, на какие события будет реагировать компьютер, как будут храниться и передаваться данные, а также какие именно действия следует выполнять над этими при различных обстоятельствах.
Со времени создания первых программируемых машин человечество придумало уже более двух с половиной тысяч языков программирования. Каждый год их число пополняется новыми. Некоторыми языками умеет пользоваться только небольшое число их собственных разработчиков, другие становятся известны миллионам людей. Профессиональные программисты иногда применяют в своей работе более десятка разнообразных языков программирования.
Слайд 3

Создатели языков по-разному толкуют понятие язык программирования. Среди общих мест, признаваемых

Создатели языков по-разному толкуют понятие язык программирования. Среди общих мест, признаваемых

большинством разработчиков, находятся следующие:
· Функция: язык программирования предназначен для написания компьютерных программ, которые применяются для передачи компьютеру инструкций по выполнению того или иного вычислительного процесса и организации управления отдельными устройствами.
· Задача: язык программирования отличается от естественных языков тем, что предназначен для передачи команд и данных от человека компьютеру, в то время как естественные языки используются лишь для общения людей между собой. В принципе, можно обобщить определение "языков программирования" - это способ передачи команд, приказов, чёткого руководства к действию; тогда как человеческие языки служат также для обмена информацией.
· Исполнение: язык программирования может использовать специальные конструкции для определения и манипулирования структурами данных и управления процессом вычислений.
Слайд 4

Первые языки программирования были очень примитивными и мало чем отличались от

Первые языки программирования были очень примитивными и мало чем отличались от

формализованных упорядоченных последовательностей единиц и нулей, понятных компьютеру. Использование таких языков было крайне неудобно с точки зрения программиста, так как он должен был знать числовые коды всех машинных команд, должен был сам распределять память под команды программы и данные.
Для того, чтобы облегчить общение человека с ЭВМ были созданы языки программирования типа Ассемблер. Переменные величины стали изображаться символическими именами. Числовые коды операций заменились на мнемонические обозначения, которые легче запомнить. Язык программирования приблизился к человеческому языку, и отдалился от языка машинных команд.
Языки программирования стали появляться уже с середины 50-х годов.
В настоящее время популярным среди программистов является язык Си
Слайд 5

В последние десятилетия в программировании возник и получил существенное развитие объектно-ориентированный

В последние десятилетия в программировании возник и получил существенное развитие объектно-ориентированный

подход. Это метод программирования, имитирующий реальную картину мира: информация, используемая для решения задачи, представляется в виде множества взаимодействующих объектов. Каждый из объектов имеет свои свойства и способы поведения. Взаимодействие объектов осуществляется при помощи передачи сообщений: каждый объект может получать сообщения от других объектов, запоминать информацию и обрабатывать её определённым способом и, в свою очередь, посылать сообщения. Так же, как и в реальном мире, объекты хранят свои свойства и поведение вместе, наследуя часть из них от родительских объектов.
Объектно-ориентированная идеология используется во всех современных программных продуктах, включая операционные системы.
Первый объектно-ориентированный язык Simula-67 был создан как средство моделирования работы различных приборов и механизмов. Большинство современных языков программирования – объектно-ориентированные. Среди них последние версии языка Turbo-Pascal, C++, Ada и другие.
В настоящее время широко используются системы визуального программирования Visual Basic, Visual C++, Delphi и другие. Они позволяют создавать сложные прикладные пакеты, обладающие простым и удобным пользовательским интерфейсом.
Слайд 6

Существуют различные классификации языков программирования. По наиболее распространенной классификации все языки

Существуют различные классификации языков программирования. По наиболее распространенной классификации все языки

программирования делят на языки низкого, высокого и сверхвысокого уровня.
В группу языков низкого уровня входят машинные языки и языки символического кодирования: (Автокод, Ассемблер). Операторы этого языка – это те же машинные команды, но записанные мнемоническими кодами, а в качестве операндов используются не конкретные адреса, а символические имена. Все языки низкого уровня ориентированы на определенный тип компьютера, т. е. являются машинно-зависимыми. Машинно-ориентированные языки – это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т. д.).
Следующую, существенно более многочисленную группу составляют языки программирования высокого уровня. Это Фортран, Алгол, Кобол, Паскаль, Бейсик, Си, Пролог и т. д. Эти языки машинно-независимы, т. к. они ориентированы не на систему команд той или иной ЭВМ, а на систему операндов, характерных для записи определенного класса алгоритмов. Однако программы, написанные на языках высокого уровня, занимают больше памяти и медленнее выполняются, чем программы на машинных языках.
Слайд 7

К языкам сверхвысокого уровня можно отнести лишь Алгол-68 и APL. Повышение

К языкам сверхвысокого уровня можно отнести лишь Алгол-68 и APL. Повышение

уровня этих языков произошло за счет введения сверхмощных операций и операторов.
Алгол-68, при разработке которого сделана попытка формализовать описание языка, приведшая к появлению абстрактной и конкретной программ. Абстрактная программа создается программистом, конкретная - выводится из первой. Предполагается, что при таком подходе принципиально невозможно породить неверную синтаксически (а в идеале и семантически) конкретную программу. Язык APL относят к языкам сверхвысокого уровня за счет введения сверхмощных операций и операторов. Запись программ на таком языке получается компактной.
Другая классификация делит языки на вычислительные и языки символьной обработки. К первому типу относят Фортран, Паскаль, Алгол, Бейсик, Си, ко второму типу - Лисп, Пролог, Снобол и др.
Слайд 8

В современной информатике можно выделить два основных направления развития языков программирования:

В современной информатике можно выделить два основных направления развития языков программирования:

процедурное и непроцедурное.
Процедурное программирование возникло на заре вычислительной техники и получило широкое распространение. В процедурных языках программа явно описывает действия, которые необходимо выполнить, а результат задается только способом получения его при помощи некоторой процедуры, которая представляет собой определенную последовательность действий.
Среди процедурных языков выделяют в свою очередь структурные и операционные языки. В структурных языках одним оператором записываются целые алгоритмические структуры: ветвления, циклы и т. д. В операционных языках для этого используются несколько операций. Широко распространены следующие структурные языки: Паскаль, Си, Ада, ПЛ/1. Среди операционных известны Фортран, Бейсик, Фокал.
Слайд 9

Непроцедрное (декларативное) программирование появилось в начале 70-х годов 20 века, но

Непроцедрное (декларативное) программирование появилось в начале 70-х годов 20 века, но

стремительное его развитие началось в 80-е годы, когда был разработан японский проект создания ЭВМ пятого поколения, целью которого явилась подготовка почвы для создания интеллектуальных машин. К непроцедурному программированию относятся функциональные и логические языки.
В функциональных языках программа описывает вычисление некоторой функции. Обычно эта функция задается как композиция других, более простых, те в свою очередь разлагаются на еще более простые и т. д. Один из основных элементов в функциональных языках - рекурсия, то есть вычисление значения функции через значение этой же функции от других элементов. Присваивания и циклов в классических функциональных языках нет.
В логических языках программа вообще не описывает действий. Она задает данные и соотношения между ними. После этого системе можно задавать вопросы. Машина перебирает известные и заданные в программе данные и находит ответ на вопрос. Порядок перебора не описывается в программе, а неявно задается самим языком. Классическим языком логического программирования считается Пролог. Построение логической программы вообще не требует алгоритмического мышления, программа описывает статические отношения объектов, а динамика находится в механизме перебора и скрыта от программиста.
Слайд 10

Можно выделить еще один класс языков программирования - объектно-ориентированные языки высокого

Можно выделить еще один класс языков программирования - объектно-ориентированные языки высокого

уровня. На таких языках не описывают подробной последовательности действий для решения задачи, хотя они содержат элементы процедурного программирования. Объектно-ориентированные языки, благодаря богатому пользовательскому интерфейсу, предлагают человеку решить задачу в удобной для него форме. Примером такого языка может служить язык программирования визуального общения Object Pascal.
Языки описания сценариев, такие как Perl, Python, Rexx, Tcl и языки оболочек UNIX, предполагают стиль программирования, весьма отличный от характерного для языков системного уровня. Они предназначаются не для написания приложения с нуля, а для комбинирования компонентов, набор которых создается заранее при помощи других языков. Развитие и рост популярности Internet также способствовали распространению языков описания сценариев. Так, для написания сценариев широко употребляется язык Perl, а среди разработчиков Web-страниц популярен JavaScript.
Слайд 11

Система программирования (СП) — совокупность программных средств, облегчающих написание, отладку диалоговой

Система программирования (СП) — совокупность программных средств, облегчающих написание, отладку диалоговой

программы и автоматизирующих её многоэтапное преобразование в исполняемую программу и загрузку в память для выполнения. Ныне СП трансформировались в интегрированные среды разработки программ (Integrated Development Environment, IDE), позволяющие визуально разрабатывать пользовательский интерфейс и организовывать связь с базами данных.
Создание сложного программного средства осуществляется в среде программной инженерии. Согласно ГОСТ Р ИСО/МЭК 14764-2002 она представляет собой «набор автоматических инструментальных средств, программно-аппаратных и технических средств, необходимых для выполнения объёма работ по программной инженерии». К автоматизированным инструментальным средствам относятся, в частности, компиляторы, компоновщики загрузочных операционных систем, отладчики, средства моделирования, средства документирования и системы управления базами данных.
Слайд 12

Система программирования освобождает проблемного пользователя или прикладного программиста от необходимости написания

Система программирования освобождает проблемного пользователя или прикладного программиста от необходимости написания

программ решения своих задач на неудобном для него языке машинных команд и предоставляют им возможность использовать специальные языки более высокого уровня. Для каждого из таких языков, называемых входными или исходными, система программирования имеет программу, осуществляющую автоматический перевод (трансляцию) текстов программы с входного языка на язык машины. Обычно система программирования содержит описания применяемых языков программирования, программы - трансляторы с этих языков, а также развитую библиотеку стандартных подпрограмм. Важно различать язык программирования и реализацию языка.
Язык – это набор правил, определяющих систему записей, составляющих программу, синтаксис и семантику используемых грамматических конструкций.
Реализация языка – это системная программа, которая переводит (преобразует) записи на языке высокого уровня в последовательность машинных команд.
Слайд 13

По набору входных языков различают системы программирования одно - и многоязыковые.

По набору входных языков различают системы программирования одно - и многоязыковые.

Отличительная черта многоязыковых систем состоит в том, что отдельные части программы можно составлять на разных языках и помощью специальных обрабатывающих программ объединять их в готовую для исполнения на ЭВМ программу.
Для построения языков программирования используется совокупность общепринятых символов и правил, позволяющих описывать алгоритмы решаемых задач и однозначно истолковывать смысл созданного написания. Основной тенденцией в развитии языков программирования является повышение их семантического уровня с целью облегчения процесса разработки программ и увеличения производительности труда их составителей.
По структуре, уровню формализации входного языка и целевому назначению различают системы программирования машинно-ориентированные и машинно-независимые.
Слайд 14

Машинно-ориентированные системы программирования имеют входной язык, наборы операторов и изобразительные средства

Машинно-ориентированные системы программирования имеют входной язык, наборы операторов и изобразительные средства

которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т. д.).
Машинно - ориентированные системы позволяют использовать все возможности и особенности машинно-зависимых языков: высокое качество создаваемых программ; возможность использования конкретных аппаратных ресурсов; предсказуемость объектного кода и заказов памяти; для составления эффективных программ необходимо знать систему команд и особенности функционирования данной ЭВМ; трудоемкость процесса составления программ (особенно на машинных языках и ЯСК), плохо защищенного от появления ошибок; низкая скорость программирования; невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов.
Слайд 15

Машинно-ориентированные системы по степени автоматического программирования подразделяются на классы: 1. Машинный

Машинно-ориентированные системы по степени автоматического программирования подразделяются на классы:
1. Машинный язык.

В таких системах программирования отдельный компьютер имеет свой определенный Машинный Язык (далее МЯ), ему предписывают выполнение указываемых операций над определяемыми ими операндами, поэтому МЯ является командным.
2. Система Символического Кодирования. В данных системах используются Языки Символического Кодирования (далее ЯСК), которые так же, как и МЯ, являются командными. Однако коды операций и адреса в машинных командах, представляющие собой последовательность двоичных (во внутреннем коде) или восьмеричных (часто используемых при написании программ) цифр, в ЯСК заменены символами (идентификаторами), форма написания которых помогает программисту легче запоминать смысловое содержание операции.
3. Автокоды. Существуют системы программирования, использующие языки, которые включают в себя все возможности ЯСК, посредством расширенного введения макрокоманд – они называются Автокоды. В различных программах встречаются некоторые достаточно часто использующиеся командные последовательности, которые соответствуют определенным процедурам преобразования информации. Развитые автокоды получили название Ассемблеры. Сервисные программы и пр., как правило, составлены на языках типа Ассемблер.
4. Макрос. В таких системах язык, являющийся средством для замены последовательности символов описывающих выполнение требуемых действий ЭВМ на более сжатую форму – называется Макрос (средство замены). В основном, Макрос предназначен для того, чтобы сократить запись исходной программы.
Слайд 16

Машинно-независимые системы программирования – это средство описания алгоритмов решения задач и

Машинно-независимые системы программирования – это средство описания алгоритмов решения задач и

информации, подлежащей обработке. Они удобны в использовании для широкого круга пользователей и не требуют от них знания особенностей организации функционирования ЭВМ. В таких системах программы, составляемые языках, имеющих название высокоуровневых языков программирования, представляют собой последовательности операторов, структурированные согласно правилам рассматривания языка (задачи, сегменты, блоки и т. д.). Операторы языка описывают действия, которые должна выполнять система после трансляции программы на МЯ.
Программист получил возможность не расписывать в деталях вычислительный процесс на уровне машинных команд, а сосредоточиться на основных особенностях алгоритма.
Среди машинно-независимых систем программирования следует выделить:
Слайд 17

1. Процедурно-ориентированные системы. Входные языки программирования в таких системах служат для

1. Процедурно-ориентированные системы. Входные языки программирования в таких системах служат для

записи алгоритмов (процедур) обработки информации, характерных для решения задач определенного класса. Процедурных языков очень много, например: Фортран, Алгол – языки, созданные для решения математических задач; Simula, Слэнг - для моделирования; Лисп, Снобол – для работы со списочными структурами.
2. Проблемно-ориентированные системы в качестве входного языка используют язык программирования с проблемной ориентацией. С расширением областей применения вычислительной техники возникла необходимость формализовать представление постановки и решение новых классов задач.
3. Диалоговые языки. Появление новых технических возможностей поставило задачу перед системными программистами – создать программные средства, обеспечивающие оперативное взаимодействие человека с ЭВМ их назвали диалоговыми языками.
4. Непроцедурные языки. Непроцедурные языки составляют группу языков, описывающих организацию данных, обрабатываемых по фиксированным алгоритмам (табличные языки и генераторы отчетов), и языков связи с операционными системами. Позволяя четко описывать как задачу, так и необходимые для её решения действия, таблицы решений дают возможность в наглядной форме определить, какие условия должны выполнятся, прежде чем переходить к какому - либо действию.
Слайд 18

Сегодня практически все программы создаются с помощью язы­ков программирования. Теоретически программу

Сегодня практически все программы создаются с помощью язы­ков программирования. Теоретически программу

можно написать и на естественном языке (говорят: программирование на метаязыке), но из-за неоднозначности естественного языка автоматически пере­вести такую программу в машинный код пока невозможно.
Языки программирования — это формальные искусственные язы­ки. В отличие от естественных, язык программирования имеет ограниченный запас слов (операторов) и строгие правила их написания, а правила грам­матики и семантики, как и для любого формального языка, явно однозначно и четко сформулированы.
Языки программирования, ориентированные на команды про­цессора и учитывающие его особенности, называют языками низко­го уровня. «Низкий уровень» не означает неразвитый, имеется в виду, что операторы этого языка близки к машинному коду и ориентиро­ваны на конкретные команды процессора.
Слайд 19

Языком самого низкого уровня является ассемблер. Программа, написанная на нем, представляет

Языком самого низкого уровня является ассемблер. Программа, написанная на нем, представляет

последовательность команд машин­ных кодов, но записанных с помощью символьных мнемоник. С по­мощью языков низкого уровня создаются компактные оптимальные по быстродействию программы. Например, драйверы устройств, модули стыковки с нестандартным оборудованием, когда важнее компактность, быстро­действие, прямой доступ к аппаратным ресурсам.
Языки программирования, имитирующие естественные, обладающие укрупненными командами, ориентированные отдельные прикладные области обработки информации, называют языками высокого уровня. Чем выше уровень языка, тем ближе структуры данных и конструкции, использующиеся в програм­ме, к понятиям исходной задачи. Особенности конкретных компь­ютерных архитектур в них не учитываются, поэтому исходные тек­сты программ легко переносимы на другие платформы, имеющие трансляторы этого языка. Разрабатывать программы на языках вы­сокого уровня с помощью понятных и мощных команд значительно проще, число ошибок, допускаемых в процессе программирования, намного меньше. В настоящее время насчитывается несколько сотен таких языков (без учета их диалектов).
Таким образом, языки программирования высокого уровня, ори­ентированные на решение больших содержательных прикладных за­дач, являются аппаратно-независимыми и требуют использования соответствующих программ-переводчиков для преобразования текста программы в машинный код, который в итоге и обрабатывается про­цессором.
Слайд 20

СИСТЕМЫ ПРОГРАММИРОВАНИЯ Программа – это набор команд, которые читаются и выполняются

СИСТЕМЫ ПРОГРАММИРОВАНИЯ

Программа – это набор команд, которые читаются и выполняются процессором.


Инструментальные системы – это набор программ, которые предназна­чены для создания новых языков программирования или новых средств раз­работки программ.
Cистемы программирования предоставляют сервисные возможности программистам для разработки их собственных компьютерных программ. В настоящее время разработка любого системного и прикладного программного обеспечения осуществляется с помощью систем программирования, в состав которых входят:
1) трансляторы с языков высокого уровня;
2) средства редактирования, компоновки и загрузки программ;
3) макроассемблеры (машинно-ориентированные языки);
4) отладчики машинных программ.
Слайд 21

ЯЗЫКИ ПРОГРАММИРОВАНИЯ Языки программирования - это формальные языки специально созданные для

ЯЗЫКИ ПРОГРАММИРОВАНИЯ

Языки программирования - это формальные языки специально созданные для общения

человека с компьютером. Каждый язык программирования имеет алфавит, словарный запас, свои грамматику и синтаксис, а также семантику.
Языки программирования, имитирующие естественные языки, обладающие укрупненными командами, ориентированными на решение прикладных содержательных задач, называют языками «высокого уровня».
Языки программирования высокого уровня являются машинно-независимыми и требуют использования соответствующих программ-переводчиков (трансляторов) для представления программы на языке машины, на которой она будет исполняться.
В машинно-ориентированных (низкого уровня) языках машинная программа в конечном счете записывается с помощью лишь двух символов 0 и 1; каждая ЭВМ имеет ограниченный набор машинных операций, ориентированных на структуру процессора.
Слайд 22

КЛАССИФИКАЦИЯ ЯЗЫКОВ И МЕТОДЫ ПРОГРАММИРОВАНИЯ В зависимости от уровня языка, т.е.насколько

КЛАССИФИКАЦИЯ ЯЗЫКОВ И МЕТОДЫ ПРОГРАММИРОВАНИЯ

В зависимости от уровня языка, т.е.насколько близок

к машинному, языки делятся на соответствующие группы: машинно-зависимые языки; машинно-независимые языки;
В зависимости от класса решаемых задач: проблемно-ориентированные; системные (Ассемблер, С, С++), универсальные языки программирования;
В зависимости от модели языка: процедурные(Алгол, Фортран, ПЛ/1, Кобол, Фокал, Ада, Бейсик, Паскаль), функциональные, логические (Лисп, Пролог, Рефал, Multilisp, Planner, FRL, KRL, QA4,Qlisp), продукционные языки.
Существуют также языки параллельного программирования; языки программирования для Интернета (HTML, Perl, Tc1/Tk, VRML); языки программирования баз данных (структурированный язык запросов SQL, PL/SQL, INFORMIK 4GL, NATURAL); объектно-ориентированные языки программирования (С++, Смолток, Дельфи, VisualBasic) и т.д.
Существующие языки программирования можно разделить на две группы: процедурные и непроцедурные. Основные методологии программирования: операциональное и/или процедурное, структурное, объектно-ориентированное, логические, функциональные программирование.
Слайд 23

ПРОЕКТИРОВАНИЕ ПРОГРАММ Существуют различные подходы и технологии разработки алгоритмов и программ.

ПРОЕКТИРОВАНИЕ ПРОГРАММ

Существуют различные подходы и технологии разработки алгоритмов и программ. По

современным взглядам проектирование и разработку программ целесообразно разбить на ряд последовательных этапов:
1)постановка задачи;
2) проектирование программы;
3) построение модели;
4) разработка алгоритма;
5) реализация алгоритма;
6) анализ алгоритма и его сложности;
7) тестирование программы;
8) документирование.
Слайд 24

ТРАНСЛЯЦИЯ ПРОГРАММ И СОПУТСТВУЮЩИЕ ПРОЦЕССЫ Идеи трансляции (перекодирования) одних символов в

ТРАНСЛЯЦИЯ ПРОГРАММ И СОПУТСТВУЮЩИЕ ПРОЦЕССЫ

Идеи трансляции (перекодирования) одних символов в другие

легли в основу создания различных языков программирования с соответствующими трансляторами - компиляторами и/или интерпретаторами.
Компилятор преобразует весь текст программы в последовательный набор машинных команд, который в дальнейшем отправляется на выполнение (пример компилятора с языка Паскаль).
Интерпретатор же осуществляет трансляцию по принципу синхронного перевода. Каждая отдельная строка программного текста транслируется, а затем, после ее интерпретации, команды этой строки выполняются (пример языка Бейсик).
Многие системы программирования дополнительно содержат промежуточные этапы трансляции. В этих системах на первом шаге предусмотрена трансляция исходного текста в макроассемблерный код, а затем в объектный модуль.
Слайд 25

Интерпретатор функционирует следующим образом: берет очередной оператор языка из текста программы,

Интерпретатор функционирует следующим образом: берет очередной оператор языка из текста программы,

анализирует его струк­туру и затем сразу исполняет. После успешного выполнения текущей команды интерпретатор переходит к анализу и исполнению следую­щей. Если один и тот же оператор в программе выполняется несколь­ко раз, интерпретатор всякий раз воспринимает его так, будто встре­тил впервые. Поэтому программы, в которых требуется произвести большой объем повторяющихся вычислений, будут работать медлен­но. Для выполнения программы на другом компьютере также необ­ходимо установить интерпретатор, так как без него программа пред­ставляет собой набор слов и работать не может.
Компиляторы полностью обрабатывают весь текст программы (его называют исходным кодом или source code). Они осуществляют поиск синтаксических ошибок, выполняют семантический анализ и только затем, если текст программы в точности соответствует пра­вилам языка, его автоматически переводят (транслируют) на машин­ный язык (говорят: генерируют машинный код). Текст программы преобразует­ся в готовый к исполнению ЕХЕ-файл (исполнимый код), его можно сохранить в памяти компьютера или на диске. Этот файл имеет са­мостоятельное значение и может работать под управлением опера­ционной системы. Его можно перенести на другие компьютеры с процессором, поддерживающим соответствующий машинный код.
Слайд 26

Основной недостаток компиляторов – трудоемкость трансляции языков программирования, ориентированных на обработку

Основной недостаток компиляторов – трудоемкость трансляции языков программирования, ориентированных на обработку

данных сложной структуры, заранее неизвестной или динамически меняющейся во время работы программы. Для таких программ в машинный код вводятся дополнительные проверки и анализ наличия ресурсов операционной системы, средства динамического захвата и освобождения памяти компьютера, что на уровне статически заданных машинных инструкций осуществить достаточно сложно, а для некоторых задач практически невозможно.
С помощью интерпретатора, наоборот, для исследования содержимого памяти допустимо в любой момент прервать работу программы, организовать диалог с пользователем, выполнить любые сложные преобразования данных и при этом постоянно контролировать программно-аппаратную среду, что и обеспечивает высокую надежность работы программы. Интерпретатор при выполнении каждой команды подвергает проверке и анализу необходимые ресурсы операционной системы, при возникающих проблемах выдает сообщения об ошибках.
Слайд 27

В реальных системах программирования смешаны технологии компиляции и интерпретации. В процессе

В реальных системах программирования смешаны технологии компиляции и интерпретации. В процессе

отладки программу мож­но выполнять по шагам (трассировать), а результирующий код не обязательно будет машинным, он может быть, например, аппаратно-независимым промежуточным кодом абстрактного процессора, который в дальнейшем будет транслироваться в различных компью­терных архитектурах с помощью интерпретатора или компилятора в соответствующий машинный код.
Слайд 28

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ (ООП) Пионером данного направления явился язык Смояток (Smalltalk), первоначально

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ (ООП)

Пионером данного направления явился язык Смояток (Smalltalk), первоначально предназначенный

для реализаций функций машин­ной графики. Данный язык оригинален тем, что его синтаксис очень компактен и базируется ис­ключительно на понятии объекта. В нем отсутствуют операторы или данные, все, что входит в Смолток, является объектами, а объекты общаются друг с другом исключительно с помощью сообщений. В настоящее время версия VisualAge for Smalltalk активно развивает­ся компанией IBM.
Основой объектно-ориентированного программирования (ООП) является понятие объект. Его сущность выражается формулой «объект = данные + процедуры». Каждый объект содержит некото­рую структуру данных и доступные только ему процедуры (методы) обработки этих данных. Используя эту методологию, можно создать свой собственный абстрактный тип и отобразить проблемную область в эту созданную абстракцию вместо традиционного ее отображения в предопределенные управляющие структуры и структуры данных языка программирования. Объединение данных и свойственных им процедур обработки в одном объекте называется инкапсуляцией и присуще ООП.
Слайд 29

Другим фундаментальным понятием ООП является класс. Класс – это шаблон, на

Другим фундаментальным понятием ООП является класс. Класс – это шаблон, на

основе которого может быть создан конкретный про­граммный объект, он определяет свойства и методы объекта, принад­лежащего этому классу, соответственно, любой созданный объект ста­новится экземпляром класса. Класс обеспечивает скрытие данных, их гарантированную инициализацию, неявное преобразование типов для типов, определенных пользователем, контролируемое пользователем управление памятью и механизмы перегрузки операций.
Объектно-ориен­тированные языки по сравнению с процедурными являются языками более высокого уровня.
При создании новых объектов их свойства могут добавляться или наследоваться от объектов-предков.
Наследование предусматривает создание новых классов па базе существующих, что дает возможность классу-потомку иметь (наследовать) вес свойства класса-родителя.
Слайд 30

В процессе работы с объектами допускается полиморфизм – возмож­ность использования методов

В процессе работы с объектами допускается полиморфизм – возмож­ность использования методов

с одинаковыми именами для обработ­ки данных разных типов.
Полиморфизм (от греч. «многоликость») означает, что рожденные объекты обладают информацией о том, ка­кие методы они должны использовать в зависимости от того, в ка­ком месте цепочки наследования они находятся.
Другим основопо­лагающим принципом ООП является модульность, – объекты заключают в себе полное определение их характеристик, никакие оп­ределения методов и свойств объекта не должны располагаться вне его, это делает возможным свободное копирование и внедрение од­ного объекта в другие.
К наиболее современным объектно-ориентированным языкам программирования относятся C++ и Java.
Слайд 31

Синтаксис языков C++ и Java практически полностью совпада­ет. Принципиальным различием является

Синтаксис языков C++ и Java практически полностью совпада­ет.
Принципиальным различием является

то, что язык C++ компи­лируемый в машинный код, a Java — в платформо-независимый байт-код (каждая команда занимает один байт), этот байт-код может выполняться с помощью интерпретатора — виртуальной Java-маши­ны (Java Virtual Machine), версии которой созданы сегодня для лю­бых платформ.
С точки зрения возможностей объектно-ориентируе­мых средств, Java имеет ряд преимуществ перед C++.
Язык Java имеет более гибкую и мощную систему инкапсуляции информации. Механизм наследования, реализованный в Java, обязывает к более строгому подходу к программированию, что способствует надежнос­ти и читабельности кода.
Язык C++ обладает сложной неадекватной и трудной для понимания системой наследования. Возможности ди­намического связывания объектов одинаково хорошо представлены в обоих языках, но синтаксическая избыточность C++ и здесь при­нуждает к выбору языка Java.
Сегодня Java по популярности зани­мает второе место в мире после Бейсика.
Слайд 32

С середины 90-х гг. многие объектно-ориентированные языки реализуются как системы визуального

С середины 90-х гг. многие объектно-ориентированные языки реализуются как системы визуального

программирования.
Такие систе­мы имеют интерфейс, позволяющий при составлении текста про­граммы видеть те графические объекты, для которых она пишется. Отличительной особенностью этих систем является наличие в них среды разработки программ из готовых «строительных блоков», по­зволяющих создавать интерфейсную часть программного продукта в диалоговом режиме, практически без написания программных опе­раций.
Система берет на себя значительную часть работы по управ­лению компьютером, что делает возможным в простых случаях об­ходиться без особых знаний о деталях ее работы. Она сама пишет значительную часть текста программы: описания объектов, заголов­ки процедур и многое другое. Программисту остается только вписать необходимые строчки, определяющие индивидуальное поведение программы, которые система не в состоянии предвидеть. Но даже в этих случаях система сама указывает место для размещения таких строк.
К объектно-ориентированным системам визуального проек­тирования относятся: Visual Basic, Delphi, C++ Builder, Visual C++. Это системы программирования самого высокого уровня.
Слайд 33

VBA (Visual Basic for Application) является общей языковой плат­формой для приложений

VBA (Visual Basic for Application) является общей языковой плат­формой для приложений

Microsoft Office (Excel, Word, Power Point и др.).
VBA соблюдает основной синтаксис и правила программирова­ния языков Бейсик-диалектов.
VBA помогает довольно сильно рас­ширить возможности приложений за счет написания макросов –программ, предназначенных для автоматизации выполнения многих операций.
VBA позволяет создавать объекты управления графичес­кого интерфейса пользователя, задавать и изменять свойства объек­тов, подключать к ним необходимый для конкретного случая про­граммный код.
С помощью VBA можно производить интеграцию между различными программными продуктами.
Программы на язы­ке VBA для приложений создаются двумя способами: в автоматичес­ком режиме как результат построения клавишной макрокоманды или путем написания программного кода.
Слайд 34

ЯЗЫКИ ПРОГРАММИРОВАНИЯ БАЗ ДАННЫХ Эти языки отличаются от алгоритмических прежде всего

ЯЗЫКИ ПРОГРАММИРОВАНИЯ БАЗ ДАННЫХ

Эти языки отличаются от алгоритмических прежде всего своим

функциональным назначением.
При работе с базами данных (БД) наиболее часто выполняются следующие операции: создание, преоб­разование, удаление таблиц в БД; поиск, отбор, сортировка по зап­росам пользователя; добавление новых записей в таблицах или модификация существующих; удаление записей и др.
Для обработки больших мас­сивов информации и выборки записей по определенным признакам был создан структурированный язык запросов SQL (Structured Query Language – язык структурированных запросов). Он был впервые создан фирмой IBM в начале 70-х гг., назывался Structured English Query Language (SEQUEL) и предназна­чался для управления прототипом реляционной базы данных IBM – System R. В дальнейшем SQL стал стандартом языка работы с реля­ционными базами данных.
Практически в каждой СУБД имеется свой универсальный язык, ориентированный на ее особенности. Сегодня в мире ведущие про­изводители СУБД: Microsoft (SQL Server), IBM (DB2), Oracle, Software AG (Adabas), Informix и Sybase. Их продукты предназначены для со­вместной параллельной работы тысяч пользователей в сети, а базы данных могут храниться в распределенном виде на нескольких сер­верах.
Слайд 35

ЯЗЫКИ ПРОГРАММИРОВАНИЯ ДЛЯ КОМПЬЮТЕРНЫЙ СЕТЕЙ Появление и активное развитие компьютерных сетей

ЯЗЫКИ ПРОГРАММИРОВАНИЯ ДЛЯ КОМПЬЮТЕРНЫЙ СЕТЕЙ

Появление и активное развитие компьютерных сетей стало

при­чиной создания многочисленных версий популярных языков про­граммирования, адаптированных для использования в сети. Отличи­тельные особенности, присущие сетевым языкам: они являются интерпретируемыми. Интерпретаторы для них распространяются бес­платно, а сами программы – в исходных текстах. Такие языки полу­чили название скрипт-языков.
HTML (Hyper Text Markup Language) – универсальный язык разметки гипертекста, используемый для подготовки Web-документов для сети Internet. Язык представляет собой набор элементарных ко­манд форматирования текста, добавления графических объектов (ри­сунков), задания шрифтов и цвета, организации ссылок и таблиц.
В соответствии с командами HTML браузер отображает содержимое документа, команды языка не отображаются.