<<
>>

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

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

Система программирования — это язык и средства разработки прикладных программ.

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

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

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

Трансляторы — это программы, которые переводят текст с язы- ка программирования на машинный.

Они могут быть двух типов: компиляторы и интерпретаторы.

Компилятор — это транслятор, в котором трансляция и вы- полнение пр01раммы разнесены во времени: сначала весь текст транслируется без выполнения программы, а затем полученная программа выполняется (Паскаль, Си).

Интерпретаторы — это трансляторы, в которых текст трансли- руется и выполняется пооператорно, т.е. трансляция и выполне- ние программы совмещены во времени (интерпретатор команд ОС).

Основные этапы разработки программы в интегрированной среде: написание текста исходных данных и программы, трансля- ция пр01раммы, редактирование связей программы с подпрог- раммами, выполнение программы, анализ полученных результа- тов.

Наиболее общей классификацией языков программирования является классификация по степени зависимости от машинного языка (рис. 8.1).

Машинный язык — это система команд компьютера.

Програм- мы, написанные на машинном языке, не требуют компиляции. Машинно-ориентированные языки — это мнемокоды, автокоды, языки ассемблера. В них коды операции и адреса операндов пред- ставляются идентификаторами и числами, т.е. используются сим- волические адреса и мнемокоды. На ассемблере можно писать про- граммы более эффективные, чем программы, полученные в ре- зультате трансляции с языка высокого уровня.

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

Рис. 8.1. Классификация языков программирования

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

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

Объектно-ориентированные языки основаны на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного типа (класса), а классы об- разуют иерархию с наследованием свойств.

На практике языки программирования не являются чисто про- цедурными, проблемными или объектно-ориентированными, они содержат в себе черты различных языков, поэтому зачастую на процедурном языке можно разработать объектно-ориентирован- ную программу.

На протяжении всех лет существования практика программи- рования требовала совершенствования технологических приемов и создания на их основе таких средств программирования, кото- рые упростили бы процесс разработки программ, позволяя созда- вать все более сложные программные системы.

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

Подпрограммы — это программы небольшого объема, к кото- рым возможно многоразовое обращение в программе. Подпрог- раммы можно было сохранять и использовать в других програм- мах. В результате были накоплены огромные библиотеки расчет- ных и служебных программ, которые по мере надобности вызыва- лись из разрабатываемой программы.

Типичная программа того времени состояла из основной про- граммы, области глобальных данных и набора подпрограмм (см. подразд. 7.2), выполняющих обработку всех данных или их части.

Недостатком такой технологии было то, что при увеличении числа подпрограмм возрастала вероятность искажения части гло-

бальных данных какой-либо подпрограммой (рис. 8.2). Необходимость исключения таких ошибок привела к идее использования в подпрограммах локальных данных. И вновь сложность разрабатываемой программы стала ограничиваться возможностью программи- ста отслеживать процессы обработки данных уже на новом уровне. К этому добавились проблемы согласования интерфейса при ве- дении разработки несколькими программи- стами.

В настоящее время многие среды програм- мирования используют элементы интерфей- са, близкие к интерфейсу Windows: коман- дные кнопки, флажки, окна сообщений и диалога и т.д. В ре- зультате встал вопрос создания технологии разработки слож- ных программных продуктов, снижающей вероятность появле- ния ошибок.

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

В основе структурного программирования лежит разбиение на части сложных систем с целью последующей реализации в виде отдельных небольших подпрограмм. Поддержка принципов струк- турного программирования была заложена в основу так называе- мых процедурных языков программирования. Наиболее известны- ми языками этой группы являются PL/1, Pascal, Си.

Рост сложности и размеров разрабатываемого программного обеспечения потребовал развития структурирования данных и, соответственно, в языках появилась возможность определения пользовательских типов данных. Одновременно усилилось стрем- ление разграничить доступ к глобальным данным программы для уменьшения числа ошибок. Результатом стало появление и разви- тие технологии модульного программирования.

Модульное программирование предполагает выделение групп подпрограмм, использующих одни и те же глобальные перемен- ные, в отдельные модули (библиотеки подпрограмм). Связи меж- ду модулями осуществляются через специальный интерфейс. Эту технологию поддерживают современные версии языков Pascal и Си (C++), языки Ada и Modula. Использование модульного про- граммирования существенно упрощает ведение разработки про- грамм несколькими программистами, каждый из которых разра- батывает свои модули.

Практика программирования показывает, что структурный подход в сочетании с модульным программированием позволяет получать достаточно надежные программы, размер которых не превышает 100000 операторов.

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

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

В последнее время стала развиваться еще одна технология про- граммирования — case-технология.

Case-технология — программный комплекс, автоматизирующий весь технологический процесс анализа, проектирования, разра- ботки и сопровождения сложных программных систем. Основное достоинство case-технологии — поддержка коллективной работы над проектом за счет возможности работы в локальной сети раз- работчиков, экспорта/импорта любых фрагментов проекта, орга- низационного управления проектом.

Контрольные вопросы

1. Какие технологии программирования являются наиболее востребо- ванными в настоящее время?

2. Что представляет собой технология структурного программирова- ния?

3. Что такое транслятор?

4. Назовите основное отличие компилятора от интерпретатора.

5. Зачем человечеству необходима технология программирования?

8.2.

<< | >>
Источник: Калмыкова Е. А.. Информатика. 2012

Еще по теме ЯЗЫКИ ПРОГРАММИРОВАНИЯ:

  1. О. Л. Голицына, Т. Л. Партыка, И. И. Попов. ЯЗЫКИ ПРОГРАММИРОВАНИЯ, 2008
  2. Перевод и иностранные языки
  3. Предложение №35 Осваивай новые Языки
  4. Основной курс (Программирование)
  5. Иванова Г.С. Основы программирования, 2002
  6. Эстетика программирования
  7. Г.С.Иванова, Т.Н.Ничушкина, Е.К.Пугачев. Объектно- ориентированное программирование, 2001
  8. Сергей Александрович Орлов. Теория и практика языков программирования: Учебник для вузов. Стандарт 3-го поколения, 2013
  9. Часть вторая Родительское программирование
  10. Программирование телевизионного вещания
  11. Часть вторая Родительское программирование СУДЬБА ЧЕЛОВЕКА
  12. Нейро-лингвистическое программирование
  13. ПРОГРАММИРОВАНИЕ НА УСПЕХ
  14. Научное программирование телевидения
  15. Программирования основные понятия
  16. Глава 2 Отрицательное и положительное программирование
  17. 3 Используйте активное программирование, «подключая» к работе голос и движение.
  18. 5 Лучшим временем для программирования является последний час перед сном.
  19. Креншоу Джек. Давайте создадим компилятор!, 1999