<<
>>

Языки программирования высокого уровня

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

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

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

Естественно, что ЭВМ не «понимает» программу, написанную на алгоритмических языках. Поэтому для каждого языка и для каждого tf ia ЭВМ разрабатывается специальная программа-переводчик, которая транслирует исходный текст в последовательность команд конкретного компьютера. Эти специальные программы называются трансляторами (несколько позже они получили название компиляторов).

Первые алгоритмические языки назывались Algol (сокращение от Algorithmic Language - язык алгоритмов) и Fortran (сокращение от Formula Translation - транслятор формул). Эти языки обладали рядом сходных возможностей. К ним относятся:

  • простота записи математических выражений. Так, на Algol’e приводимая ранее формула записывается как x:=(a+b)x(c+d);, а на Fortran’e так:

X=(A+B)x(C+D)

  • использование ветвления в программе за счет механизма условных выражений и операторов перехода, позволяющих выполнять тот или иной фрагмент программы в зависимости от результатов предыдущих этапов (например, алгоритм определения корней квадратного уравнения зависит от знака дискриминанта), и циклов, позволяющих осуществить многократное повторение некоторого фрагмента программы (например, табуляция значений функции);
  • использование массивов, позволяющие программировать операции над матрицами и векторами;
  • использование процедур (в Fortran’e- подпрограмм) и функций, позволяющих выделить в отдельный блок

    некоторый логически законченный алгоритм над абстрактными данными (формальные параметры) и многократно обращаться к ним с указанием конкретных данных (фактические параметры).

    Так, например, для многократного использования тригонометрических функций следует, запрограммировать алгоритм их вычисления от абстрактного аргумента (например, X), а затем многократно их использовать, указывая, что на место абстрактного X подставляются конкретные данные — Y, Z, Fi, 30 и т.д. Или запрограммировать процедуру обращения квадратной матрицы. Алгоритм записывается для некоторой абстрактной матрицы (скажем, А), а затем при их вызове указывается конкретная матрица.

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

Первое — способ управления объемом резервируемой под данные программы памяти. Готовая и оттранслированная программа используется многократно, с заданием различных данных. Предположим, что выполняются операции над матрицами. В разных вариантах счета мы могли использовать матрицы разных размеров. Алгол позволял выделять для хранения массивов память во время выполнения программы. Поэтому размер выделяемой памяти определялся уже во время счета, и ее отводилось столько, сколько необходимо для хранения конкретного массива. После использования памяти некоторым массивом ее можно было освободить и использовать под другие. А Фортран распределял память в начальный момент, при старте программы. Поэтому программа на Фортране не в состоянии распределить память в момент выполнения, когда можно вычислить ее требуемый объем. Также нельзя освободить память после того, как вспомогательные матрицы или векторы уже не будут использоваться. Способ распре

деления памяти при старте программы называется статическим управлением памятью. Распределение памяти в произвольный момент выполнения называется динамическим управлением. Итак, Алгол мог использовать как статическое, так и динамическое управление памятью. В Фортране реализован только механизм статического управления.

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

Второе отличие связано с особой структурой организации Программы на Фортране. Дело в том, что программа на Фортране может состоять из отдельных сегментов (которые называются модулями и обычно хранятся в отдельных файлах). Любой из них может транслироваться самостоятельно, независимо от остальных. Окончательный вариант программы формируется из отдельных модулей, как блочное здание из отдельных законченных фрагментов. Программа же на Алголе представляла единый неразрывный текст, и транслировать ее можно было только целиком. За счет модульной структуры программу на Фортране могли разрабатывать несколько программистов. Каждый работал над своим модулем, из которых затем составлялась цельная программа. Один и тот же модуль мог входить в состав различных программ. Ряд фирм разрабатывал и продавал специализированные модули (объединенные в библиотеки подпрограмм), которые могли быть использованы другими разработчиками, т.е., благодаря модульной структуре коммерческую ценность приобрели не только законченные программы, но и наборы специализированных библиотек. Например, разработчики программ расчета строительных конструкций могли приобрести и использовать в своих программах библиотеку решения проблем линейной алгебры, библиотеку численного решения дифференциальных уравнений. Разработчики эко

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

  1. Библиотеки модулей поставляются в оттранслированной форме, т.е. в машинных кодах. Поэтому определенным образом скрыты особенности использованного в модулях алгоритма, или Now-How разработчиков.
  2. Специализированные модули разрабатываются специалистами по соответствующей проблематике, что определяет использование современных и оптимальных алгоритмов.
<< | >>
Источник: Ю.Ф. Симионов. Информационные технологии в экономике. Под редакцией д.э.н., профессора Ю.Ф. Симионова. Серия «Высшее образование». Ростов н/Д: «Феникс», - 352 с.. 2003

Еще по теме Языки программирования высокого уровня:

  1. Теория экономики с высоким уровнем заработной платы
  2. Извлекающие вопросы с высоким уровнем риска            
  3. Направляющие вопросы с высоким уровнем риска
  4. Основные этапы развития технологий программирования Программирование в кодах и ассемблер
  5. • Принцип оптимальности в планировании и управлении, общая задача оптимального программирования • Формы записи задачи линейного программирования и ее экономическая интерпретация • Математический аппарат • Геометрическая интерпретация задачи • Симплексный метод решения задачи 2.1. Принцип оптимальности в планировании и управлении, общая задача оптимального программирования
  6. Разработка стратегии на корпоративном уровне и уровне хозяйственных подразделений
  7. Язык программирования
  8. Модульное программирование
  9. Программирование, управляемое событиями
  10. 3.3. Целочисленное программирование
  11. Процедура стратегического программирования
  12. Программирование государственных финансов
  13. 2.2. Формы записи задачи линейного программирования и ее экономическая интерпретация
  14. 4. Разработка Л. В. Канторовичем метода линейного программирования.
  15. 3.5. Нелинейное и динамическое программирование; понятие об имитационном моделировании
  16. Параметрическое программирование 1 (35 вариантов).
- Информатика для экономистов - Антимонопольное право - Бухгалтерский учет и контроль - Бюджетна система України - Бюджетная система России - ВЭД РФ - Господарче право України - Государственное регулирование экономики в России - Державне регулювання економіки в Україні - ЗЕД України - Инновации - Институциональная экономика - История экономических учений - Коммерческая деятельность предприятия - Контроль и ревизия в России - Контроль і ревізія в Україні - Кризисная экономика - Лизинг - Логистика - Математические методы в экономике - Международные экономические отношения - Микроэкономика - Мировая экономика - Муніципальне та державне управління в Україні - Налоговое право - Организация производства - Основы экономики - Политическая экономия - Размещение производительных сил (РПС) - Региональная и национальная экономика - Страховое дело - Теория управления экономическими системами - Управление инновациями - Философия экономики - Ценообразование - Экономика зарубежных государств - Экономика и управление народным хозяйством - Экономика отрасли - Экономика предприятия - Экономика природопользования - Экономика труда - Экономическая безопасность - Экономическая география - Экономическая демография - Экономическая статистика - Экономическая теория и история - Экономический анализ -