русс | укр

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

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Проблемы комплексирования.


Дата добавления: 2015-08-06; просмотров: 757; Нарушение авторских прав


Рассмотрим комплексирование модулей, составленных на различных языках программирования. Для САПР наиболее употребимы универсальные языки ассемблера, ФОРТРАН, ПЛ/1. Особенности операций с разноязыковыми модулями можно свести в основном к двум груп­пам: 1) особенности установки программной среды и вы­зова модуля; 2) различия в реализации типов и структур данных, проявляющиеся при обмене информацией меж­ду модулями.

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

По­этому при организации вызова модулей, составленных на различных языках, необходимо всякий раз устанавли­вать среду вызываемого модуля. Рассмотрим процесс установления среды в языках ассемблера, ФОРТРАН, ПЛ/1.

 

 

В алгоритмическом языке ФОР­ТРАН среда устанавливается модулем IBCOM, находящимся в библиотеке компиля­тора. Помимо установки среды этот модуль выполняет операции ввода — вывода и др. Для программ, не со­держащих операций ввода — вывода и прерываний, среда может не создаваться. Вызов модуля, составленного на языке ФОРТРАН, и ус­тановка среды этого языка представляют собой различ­ные, самостоятельные действия.

В алгоритмическом языке ПЛ/1 установка среды обеспечивается совокупностью модулей библио­течных, сгенерированных компилятором ПЛ/1, а также построенных пользователем. Место расположения про­граммной среды определяется вызовом модуля. Таким образом, установка среды в языке ПЛ/1 и вызов самого модуля представляют собой неразрывное целое и счита­ются одной операцией.

Для модулей, написанных на языке ассемблера, компилятор среды не создает. Чтобы обеспечить нор­мальное функционирование программы для обработки программных прерываний и аварийных ситуаций, поль­зователь должен сам включить в свою программу соот­ветствующие средства, например макрокоманды SPIE, STAE, ABEND и др. Механизм задания среды определя­ется также пользователем, который располагается в лю­бом месте исходного модуля макрокоманды задания среды.



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

 

■ Примечание. В ЕС ЭВМ для активизации модуля необходимо присутствие копии модуля в оперативной памяти. Копия
заносится в память с помощью загрузки.

 

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

Таблица 3.1

 

Алгоритмиче­ские языки     Характеристика средств передачи управления
средство этап соединения тип загрузки
ПЛ/1   Ассемблера   ФОРТРАН CALL   АТАСН LINK FETCH XCTL CALL   CALL Вызов функции Компиляция Редактирование   Выполнение   > Компиляция Редактирование Компиляция   Редактирование Предварительная По запросу   >   > Предварительная По запросу Предварительная   По запросу

Согласование типов.Различные языки программиро­вания обладают разными наборами типов данных. Типы данных языков программирования приведены в табл. 3.2.

Возможные отношения между типами данных приве­дены ниже.

Неэквивалентным типам данных относятся типы данных, для которых внутреннее представление, сгенерированное компиляторами, идентично.

К косвенно-эквивалентным типам дан­ных относятся типы данных, для которых нет эквива­лентного описания, но с помощью имеющихся языковых средств их можно совместить.

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

 

■ Примечание. Описание типов данных для вышеприведенных языков программирования см. в § 1.1.

 

Рассматриваемые алгоритмические языки различают­ся не только типами, а также заданиями длины отдель­ных элементов данных. Длина элементов данных может указываться явно или неявно (по умолчанию). Кроме того, необходимо отметить следующие организационные особенности каждого языка:


Таблица 3.2

Типы данных языков Внутреннее представление
ПЛ/1 ФОРТРАН ассемб­лера
REAL FIXED BINARY INTEGER H F Число с фиксиро­ванной точкой длиной 2 байт Число с фиксиро­ванной точкой длиной 4 байт
REAL FLOAT BINARY REAL E D Число с плаваю­щей точкой дли­ной 2 байт Число с плаваю­щей точкой дли­ной 8 байт
REAL DICEMAL FIXED   P Последователь­ность десятич­ных цифр со знаком длиной 1... 16 байт
REAL DICEMAL FLOAT REAL E D
COMPLEX FLOAT DECTMAL COMPLEX Два числа с пла­вающей точкой длиной 4 байт Два числа с пла­вающей точкой длиной 8 байт
COMPLEX FIXED DICIMAL Два десятичных числа
COMPLEX FLOAT BINARY   COMPLEX — —
COMPLEX FIXED BINARY Два целых числа длиной 4 байта Два целых числа длиной 2 байта

Продолжение табл. 3.2

Типы данных языков Внутреннее представление
ПЛ/1 ФОРТРАН ассемб­лера
CHARACTER     Символьная стро­ка длиной 1 ... 32 767 байт
BIT LOGICAL В     X Битовая строка длиной 1 ... 32 767 байт Последователь­ность шестнад­цатиричных цифр

а) обратное расположение массивов (в языке ФОР­ТРАН массив располагается в памяти по столбцам, а в языке ПЛ/1 — по строкам);

б) наличие информационного вектора для перемен­ных в языке ПЛ/1 [поскольку в языке ПЛ/1 память под данные может выделяться динамически, компилятор ге­нерирует информационный вектор, который содержит сведения о переменных, строках и массивах (адрес, дли­
на, количество элементов и пр.)] и имеет различный вид для разных структур данных;

в) выравнивание полей, которое определяется тем, что компилятор располагает данные в соответствии с описаниями, выравнивая их, если необходимо, на грани­цы слов и полуслов.

Обмен данными.Наиболее распространен способ об­мена данных с помощью операторов CALL и LINK. При этом осуществляется формирование списка передавае­мых данных и списка их адресов. Адрес списка адресов передается вызываемой программе через регистр 1.

Другим распространенным способом обмена данными является использование общих областей — статически распределенных участков памяти, к которым может об­ращаться любой модуль независимо от того, на каком языке он описан. Память под общую область отводит редактор связей во время создания загрузочной програм­мы из совокупности общих областей отдельных модулей. Каждый из рассматриваемых языков имеет средства для описания общих областей; в языке ФОРТРАН — оператор COMMON, в языке ПЛ/1—оператор


 

Рис. 3.6.

 

STATIC EXTERNAL, в языке ассемблера — оператор СОМ.

Информационный адаптер.С учетом вышеизложенно­го для осуществления универсального информационного интерфейса необходимо:

1) произвести контроль наличия исходных данных для каждого отдельного модуля;

2) задать недостающие исходные данные;

3) проверить соответствие типов, структур и после­довательности данных аналогичным характеристикам данных, принятым в вызываемом модуле;

4) преобразовать данные в случае несоответствия

типов;

5) обеспечить передачу данных вызываемому модулю в соответствии с типом обмена;

6) организовать среду, определяемую языком про­граммирования модуля;

7) проверить результаты;


выполнитьобратное преобразование данных в вид, принятый для хранения промежуточных результатов;

8) сохранить результаты работы модуля для даль­нейшего использования.

Реализация описанных функций выполняется про­граммой-адаптером. Информационное обеспечение адаптера (рис. 3.6) включает в себя таблицы описателей моду­лей, входов модулей, наборов данных, область обмена. На рисунке МФ — модули функционирования; МВв — модули ввода; ТОНД — таблица описателей наборов данных; ТОМ— таблица описателей модулей; ПУС— программы установки среды; ТОВх — таблицы описате­лей входов; МВыв — модули вывода; 00 — области об­мена.

Таблица описателей модуля содержит: имя модуля; идентификатор языка программирования; признак типа обмена, принятый в модуле (параметры, общие области, наборы данных); количество параметров; имя описате­ля входов модуля; имя области обмена; имя описателя набора данных.

Таблица описателей входов модуля содержит: имя параметра локальное; имя параметра глобальное; харак­теристику параметра (входной, выходной, модифициру­емый); вид структуры (переменная строка, массив ариф­метический, массив строк, структура, массив структур и т.д.); размерность (для массива); длину (для строк); основание системы счисления (для переменной или эле­мента массива); форму представления; точность.

Таблица описателей наборов данных содержит: имя набора; имя DD-предложения; тип организации; метод доступа; формат блока; длину блока; атрибуты записи. Для обеспечения преемственности данных следует предусмотреть область памяти, куда заносились бы те результаты работы каждого модуля, которые принимают участие в дальнейших расчетах. Этой цели служит об­ласть обмена — память, выделенная для промежуточных результатов, передаваемых от модуля к модулю. В нее заносятся исходные данные для первого модуля, резуль­таты вычислений, недостающие данные для промежуточ­ных модулей.

Для организации области обмена необходимо:
1) осуществить анализ данных, которые будут цирку­лировать в среде программного комплекса в составе САПР с целью определения одинаковых по смыслу пе­ременных;


2) всем одинаковым по смыслу переменным при­своить одно и то же имя, отражающее семантику этих переменных (глобальные переменные);

3) каждой переменной, встречающейся только один раз, присвоить уникальное имя, отражающее семантику величины (локальные переменные);

4) каждой глобальной и локальной переменной по­ставить в соответствие тип и структуру, являющиеся наи­более информативными.

Указанная совокупность переменных составляет об­ласть обмена, в которой хранится текущее значение каж­дой из переменных в наиболее информативном виде.

В крупных САПР, программы которых оперируют с большим числом входных, промежуточных и результиру­ющих переменных, области обмена удобно организовать в виде некоторого банка данных. Это позволяет возло­жить часть функций, выполняемых адаптером, на СУБД, что в конечном итоге сокращает время на разработку информационного и программного обеспечения САПР.

Таким образом, адаптер выполняет всю совокупность операций по организации информационного взаимодейст­вия между программными модулями. В случае разноязыковых моделей адаптер практически берет на себя вы­полнение соответствующих функций операционной сис­темы. Достаточно сложной является также задача пост­роения области обмена, поскольку ее решение связано со структурированием всех переменных, участвующих в информационном обмене. В крупных САПР, програм­мные модули которых оперируют с большим числом вход­ных, промежуточных и результирующих переменных, функции адаптера по организации и взаимодействию с обменными областями целесообразно переложить на ти­повые СУБД.

Банки данных в настоящее время находят все более широкое применение для организации межмодульного ин­терфейса. Их использование наиболее эффективно, когда совокупность модулей программного обеспечения зафик­сирована и не подлежит изменениям в дальнейшем. В этом случае необходимо составить логическую схему для всей области обмена, в которой были бы указаны наиме­нования переменных, их взаимосвязи, тип представления. Обращение из программных модулей для получения зна­чений необходимых переменных должно выполняться с помощью операторов взаимодействия с СУБД. Примене­ние банков данных для целей организации информационного

межмодульного обмена сокращает сроки разработ­ки информационного и программного обеспечений с САПР.

 



<== предыдущая лекция | следующая лекция ==>
Информационно-поисковая СУБД «ПОИСК» | РАТКИЕ ВЫВОДЫ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 2.606 сек.