Санкт Петербургский государственный университет информационных технологий механики и оптики
Реферат
По истории информатики на тему
“Концепция современных технологий программирования”
Аспирант: | Королева О. Ю. |
Кафедра: | МиПЧС |
Специальность: | 05.13.19 |
Санкт-Петербург
2009 г.
Оглавление
Введения……………………………………………………………………….…..3
1. Классификация языков программирования……………………………….5
1.1 Машинно - ориентированные языки……………………………………5
1.2 Машинно - независимые языки…………………………………………6
2. История развития программирования………………………………..……8
3. Технологии программирования……………………………….……….…11
3.1 Структурное программирование……………………………….……11
3.2 Событийно - ориентированное программирование……………..…13
3.3 Модульное программирование…………………………………….…14
3.4 Объектно - ориентированное программирование…………………14
3.5 Компонентное программирование (КП)………………………….…16
4. Современные технологии программирования……………………..……17
4.1 CASE системы…………………………………………………..……18
4.2 Индустрия искусственного интеллекта………………………….…19
4.3 Экспертные системы…………………………………………...……20
4.4 Сетевое программирование…………………………………………22
Заключение………………………………………………………………….…24
Список литературы……………………………………………………………25
С глубокой древности известны попытки создать устройства, ускоряющие и облегчающие процесс вычислений. Еще древние греки и римляне применяли приспособление, подобное счетам, — абак. Такие устройства были известны и в странах Древнего Востока. В XVII в. немецкие ученые В. Шиккард (1623), Г.Лейбниц (1673) и французский ученый Б. Паскаль (1642) создали механические вычислительные устройства — предшественники всем известного арифмометра. Вычислительные машины совершенствовались в течение нескольких веков. Но при этом не применялось понятие «программа и программирование».
На начальном этапе составлением программ для ЭВМ занимались сами изготовители вычислительных машин. Постепенно, с развитием техники, этот процесс из рутинной работы превратился в интеллектуальную деятельность, сравнимую с искусством, т. к. трудоемкое, ручное составление программ было подобно решению сложных комбинационных задач, которое требовало научных знаний и мастерства.
С 1970—1980-х гг. программирование как новая научная дисциплина занималась методами разработки программных продуктов. Оно включает комплекс вопросов, связанных с написанием спецификаций, проектированием, кодированием, тестированием и функционированием программ для ЭВМ.
Сейчас уровень программирования определяется четырьмя взаимосвязанными факторами развития: возможностями компьютеров, теорией и языками, искусством и технологией программирования.
Процесс развития компьютерных технологий породил процесс появления новых разнообразных технологий программирования и проектирования которые представляют собой систему языков программирования - специальный набор знаков, на которых пишут команды для управления компьютером.
Выделяют две основные группы: языки низкого уровня - языки программирования предназначенные для определенного типа компьютера и отражающие его внутренний машинный код – машинно-ориентированные языки; языки высокого уровня - это языки программирования, предназначенные для удовлетворения требований программиста; они не зависят от внутренних машинных кодов компьютера любого типа. Языки высокого уровня используют для решения проблем и поэтому их часто называют проблемно-ориентированными языками
1. Классификация языков программирования
Прежде чем приступить к описанию технологий программирования необходимо остановиться на таком вопросе как классификация языков программирования, поскольку именно на этом основывается тот или иной способ решения поставленной программисту задачи.
Выделяют два основных вида языков программирования: машинно - ориентированные языки и машинно - независимые языки.
1.1 Машинно - ориентированные языки – наборы операторов изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.). По степени автоматического программирования машинно-ориентированные языки подразделяются на классы.
- Машинный язык (МЯ) - тот, который определен для каждого отдельного компьютера и осуществляет выполнение указываемых операций над определяемыми ими (компьютерами) операндами, поэтому МЯ является командным.
- Языки Символического Кодирования (далее ЯСК), так же, как и МЯ, являются командными. Однако коды операций и адреса в машинных командах, представляющие собой последовательность двоичных (во внутреннем коде) или восьмеричных (часто используемых при написании программ) цифр, в ЯСК заменены на символы (идентификаторы), форма написания которых помогает программисту легче запоминать смысловое содержание операции. Это обеспечивает существенное уменьшение числа ошибок при составлении программ.
- Автокоды - языки, включающие в себя все возможности ЯСК, посредством расширенного введения макрокоманд - достаточно часто использующиеся командные последовательности, которые соответствуют определенным процедурам преобразования информации. Эффективная реализация таких процедур обеспечивается оформлением их в виде специальных макрокоманд и включением последних в язык программирования, доступный программисту. Макрокоманды переводятся в машинные команды двумя путями – расстановкой и генерированием. В постановочной системе содержатся «остовы» - серии команд, реализующих требуемую функцию, обозначенную макрокомандой. Макрокоманды обеспечивают передачу фактических параметров, которые в процессе трансляции вставляются в «остов» программы, превращая её в реальную машинную программу.
В системе с генерацией имеются специальные программы, анализирующие макрокоманду, которые определяют, какую функцию необходимо выполнить и формируют необходимую последовательность команд, реализующих данную функцию.
1.2 Машинно – независимые языки – это средство описания алгоритмов решения задач и информации, подлежащей обработке. Они удобны в использовании для широкого круга пользователей и не требуют от них знания особенностей организации функционирования ЭВМ и ВС.
Подобные языки получили название высокоуровневых языков программирования. Программы, составляемые на таких языках, представляют собой последовательности операторов, структурированные согласно правилам рассматриваемого языка (задачи, сегменты, блоки и т.д.). Операторы языка описывают действия, которые должна выполнять система после трансляции программы на МЯ.
Следовательно, командные последовательности (процедуры, подпрограммы), часто используемые в машинных программах, представлены в высокоуровневых языках отдельными операторами. Таким оброзом программист получает возможность не расписывать в деталях вычислительный процесс на уровне машинных команд, а сосредоточиться на основных особенностях алгоритма.
Эти языки, языки ориентированны на решение определенных проблем. Они должны обеспечить программиста средствами, позволяющими коротко и четко формулировать задачу и получать результаты в требуемой форме. Проблемных языков очень много, например: Фортран, Алгол – языки, созданные для решения математических задач; Simula, Слэнг - для моделирования; Лисп, Снобол – для работы со списочными структурами.
- Универсальные языки были созданы для широкого круга задач: коммерческих, научных, моделирования и т.д. Первый универсальный язык был разработан фирмой IBM, ставший в последовательности языков Пл/1. Второй по мощности универсальный язык называется Алгол-68. Он позволяет работать с символами, разрядами, числами с фиксированной и плавающей запятой. Пл/1 имеет развитую систему операторов для управления форматами, для работы с полями переменной длины, с данными организованными в сложные структуры, и для эффективного использования каналов связи. Язык учитывает включенные во многие машины возможности прерывания и имеет соответствующие операторы. Предусмотрена возможность параллельного выполнение участков программ. Программы в Пл/1 компилируются с помощью автоматических процедур. Язык использует многие свойства Фортрана, Алгола, Кобола. Однако он допускает не только динамическое, но и управляемое и статистическое распределения памяти.
Необходимость обеспечения оперативного взаимодействия с пользователем потребовала сохранения в памяти ЭВМ копии исходной программы даже после получения объектной программы в машинных кодах. При внесении изменений в программу с использованием диалогового языка система программирования с помощью специальных таблиц устанавливает взаимосвязь структур исходной и объектной программ. Это позволяет осуществить требуемые редакционные изменения в объектной программе.
Одним из примеров диалоговых языков является Бэйсик, который использует обозначения подобные обычным математическим выражениям.
- Непроцедурные языки составляют группу языков, описывающих организацию данных, обрабатываемых по фиксированным алгоритмам (табличные языки и генераторы отчетов), и языков связи с операционными системами.