Главная

Статьи

НОУ ІНТУЇТ | лекція | Інтерфейси, взаємодія і зміна програм і даних

  1. 8.2. інтерфейс ЯП 8.2.1. Інтерфейс і взаємозв'язок з ЯП
  2. 8.2.2. Взаємодія різномовних програм

8.2. інтерфейс ЯП

8.2.1. Інтерфейс і взаємозв'язок з ЯП

Основні ЯП, що використовуються для опису компонентів в сучасних середовищах, це С ++, Паскаль, JAVA і ін. [ 8.2 , 8.12 , 8.13 ].

Різномовних програм, записані в цих мовах, звертаються один до одного через віддалений виклик, який передбачає взаємно однозначна відповідність між фактичними параметрами Різномовних програм, записані в цих мовах, звертаються один до одного через віддалений виклик, який передбачає взаємно однозначна відповідність між фактичними параметрами   викликає програми і формальними параметрами   спричиненої програми викликає програми і формальними параметрами спричиненої програми. При неоднорідності одного з параметрів з безлічі формальних або фактичних параметрів різномовних програм необхідно провести відображення (mapping) нееквівалентного типу даних параметра в одному ЯП в відповідний тип даних в іншому ЯП.

Аналогічно вирішується завдання перетворення нееквівалентний типів даних в ЯП. Уявімо це перетворення такими етапами.

Етап 1. Побудова операцій перетворення типів даних Етап 1 для безлічі мов програмування .

Етап 2 .Построеніе відображення простих типів даних для кожної пари взаємодіючих компонентів в Етап 2 і , А також застосування операцій селектора і конструктора для відображення складних структур даних в цих мовах. Один із способів формалізованого перетворення типів даних - створення алгебраїчних систем для кожного типу даних :

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

Як простих типів даних сучасних ЯП можуть бути Як простих типів даних сучасних ЯП можуть бути . Складні типи даних - комбінація простих типів даних. Цим типам даних відповідають наступні класи алгебраїчних систем:

Кожен елемент класу простих і складних типів даних визначається на безлічі значень цих типів даних і операцій над ними:

, де , де .

Операціями перетворення кожного Операціями перетворення кожного   типу даних відповідає изоморфное відображення двох алгебраїчних систем з сумісними типами даних двох різних мов типу даних відповідає изоморфное відображення двох алгебраїчних систем з сумісними типами даних двох різних мов. У класі систем (8.1) перетворення типів даних для пари мов і володіє такими властивостями відображень:

  1. системи і для мов і - ізоморфні, якщо їх типи даних , визначені на одному тому ж безлічі простих або складних типів даних;
  2. між значеннями і типів даних і існує ізоморфізм, якщо безлічі операцій і , Що застосовуються для цих типів даних, різні. Якщо це безліч порожньо, то маємо ізоморфізм двох систем і . Якщо тип даних є рядок, а тип - речовий, то між множинами і не існує изоморфного відповідності;
  3. алгебри по потужності повинні бути рівні, так як вони представлені на безлічі типів даних мов і

Відображення 1, 2 зберігають лінійний порядок елементів, оскільки алгебраїчні системи є лінійно впорядкованими. Загальна схема зв'язку ЯП в розподіленої середовищі Характерно особливість ЯП, використовуваних в розподілених середовищах, - їх неоднорідність як у сенсі уявлення типів даних в них, так і платформ комп'ютерів, де реалізовані відповідні системи програмування. Причина неоднорідності - це різні способи передачі параметрів між об'єктами в різних середовищах, наявність різних типів об'єктних моделей і форматів даних для завдання параметрів, різні види операторів віддаленого виклику і отримання результатів виконання запитів і ін.

Системи програмування з ЯП мають такі особливості компілювання програм:

Зв'язок між різними мовами Зв'язок між різними мовами   здійснюється через інтерфейс пари мов   ,   , Взаємодіючих між собою в середовищі, що генерує відповідні конструкції   в операції опису інтерфейсу і навпаки здійснюється через інтерфейс пари мов , , Взаємодіючих між собою в середовищі, що генерує відповідні конструкції в операції опису інтерфейсу і навпаки.

Взаємодія ЯП в середовищі CORBA .Прінціп взаємодії об'єктів в середовищі CORBA полягає в тому, що будь-який об'єкт виконує метод (функцію, сервіс, операцію) за умови, якщо інший об'єкт, який виступає в ролі клієнта для нього, посилає йому запит для виконання цього методу. Об'єкт виконує метод через інтерфейс.

Взаємодія ЯП в системі CORBA полягає у відображенні типів об'єктів в типи клієнтських і серверних стаб шляхом

Так як ЯП системи CORBA можуть бути реалізовані на різних платформах і в різних середовищах, то їх двійкове подання залежить від конкретної апаратної платформи [ 8.2 , 8.7 , 8.8 ]. Для всіх ЯПсістеми CORBA (С ++, JAVA, Smalltalk, Visual C ++, COBOL, Ada-95) передбачено загальний механізм зв'язку і розташування параметрів методів об'єктів в проміжному шарі. Зв'язок між об'єктними моделями кожного ЯП системи СОМ і JAVA виконує брокер ORB ( Мал. 8.4 ).


Мал.8.4.

Інтегроване середовище системи CORBA

Якщо в загальну об'єктну модель CORBA входить об'єктна модель СОМ, то в ній типи даних визначаються статично, а конструювання складних типів даних здійснюється тільки для масивів і записів. Методи об'єктів використовуються в двійковому коді і допускається двоичная сумісність машинного коду об'єкта, створеного в одному середовищі розробки, коду іншого середовища, а також сумісність різних ЯП за рахунок властивості відділення інтерфейсів об'єктів від реалізацій.

У разі входження до складу моделі CORBA об'єктної моделі JAVA / RMI, виклик віддаленого методу об'єкта здійснюється посиланнями на об'єкти, що задаються покажчиками на адреси пам'яті.

Інтерфейс як об'єктний тип реалізується класами і надає віддалений доступ до нього сервера. Компілятор JAVA створює байткод, який інтерпретується віртуальною машиною, що забезпечує переносимість байткод і однорідність представлення даних на всіх платформах середовища СORBA.

8.2.2. Взаємодія різномовних програм

Проблемі взаємодії різномовних програм на безлічі сучасних мов (C / C ++, Visual C ++, Visual Basic, Matlab, Smalltalk, Lava, LabView, Perl) присвячена робота [ 8.14 ]. У ній представлені різні варіанти і конкретні приклади зв'язків кожної пари ЯП з цієї множини за допомогою практично реалізованих і наведених функцій перетворення, методів звернення до них з програм на одній мові до програми на іншій мові. У таблиці 8.1. наведені варіанти взаємозв'язку різних ЯП.

У ній відображені особливості їх взаємодії через різні види інтерфейсів, наведені більше 25 видів пар сучасних ЯП і відповідно прямого і зворотного взаємодії різномовних програм.

Для цих пар ЯП викладені принципи запуску різних програм і всі технічні питання передачі даних і перетворення параметрів.

Матеріал навчального посібника містить численні приклади інтерфейсних програм, які розроблені для перетворення різнотипних параметрів з урахуванням особливостей їх реалізації системами програмування.

На відміну від розглянутої загальної схеми взаємодії програм з двома модулями ( Мал. 8.1 ), Тут розглянуті високотехнічні засоби забезпечення процесу перетворення: панелі, сценарії, іконки і зразки інтерфейсних програм для кожного конкретного випадку взаємодії програм. Далі дається короткий опис шести схем засобів опису різномовних програм, що взаємодіють з мовами, наведеними в другій колонці цієї таблиці.

Інтерфейс між Visual Basic і іншими ЯП здійснюється за допомогою оператора звернення, параметрами якого можуть бути рядки, значення, масиви та інші типи даних. Їх обробка проводиться функціями Windows API, API DLL і операціями перетворення типів даних. Як приклад наведена схема обробки Інтернет-додатків, що задаються HTML-сторінками Basic Visual, що розміщуються в Web-браузері і базах даних.

Matlab містить засоби для розв'язання задач лінійної і нелінійної алгебри, дій над матрицями та ін. І забезпечує математичні обчислення за допомогою MatlabCompiler, Matlab C ++, MatlabLibriary, Matlab Graphic Library. Наведено схему незалежного додатка в середовищі Matlab, яка включає інтерфейс між VC і Matlab, створюваний MatlabCompiler шляхом перетворення програми в форматі Matlab (М-файли або М-функції) в формат С.

Таблиця 8.2. Інтерфейс сучасних мов і засобів програмування Засоби опису програм Мови взаємодії Види інтерфейсів Visual Basic

  • ANCI C
  • C, C ++
  • Windows API
  • DLL
  • Visual Basic 6.0
  • Win 32
  • API Viewer
  • Переносних орієнтовані функції.
  • Програмний інтерфейс.
  • Динамічна бібліотека функцій.
  • Інтерфейс між Visual Basic.
  • Функції подій. Інтерфейс в API.
  • C, C ++
  • Matlab Engine
  • Mat lab в JNI
  • Visual Basic 6.0
  • Java
  • Виклик програми з середовища.
  • Вбудовування функцій в VC ++.
  • Використання інтерфейсу JNI.
  • Функції з Matlab.
  • Функції в Java.

Smalltalk

  • Модель додатки в Visual Works.
  • Функції графічної бібліотеки.
  • Бібліотеки С, С ++ і процедури Visual Works.

Lab View

  • ANCI C
  • Visual C ++
  • Visual Basic 6.0
  • C, C ++
  • Інтерфейс VI і API.
  • Зв'язок Visual C, DLL, Obj Lib С, C ++.
  • Інтерфейсні функції драйвера.

JAVA

  • Переносних орієнтовані функції.
  • Бібліотеки функцій в С ++, С.
  • Функції в JNI.

Perl

  • Переносних орієнтовані функції.
  • Програмний інтерфейс.
  • Інтерфейсні функції в С ++.

Сформований файл викликається з програми в С ++ і перетворюється до виду архітектури комп'ютера, куди відсилається результат.

Базові засоби Smalltalk забезпечують створення додатків в середовищі VisualWorks і включають модель додатків, методи об'єктів, повідомлення для передачі значень зовнішніх об'єктів і призначений для користувача інтерфейс ( Мал. 8.5 ). Модель додатка містить функції DLL з класу зовнішнього інтерфейсу, які взаємодіють з функціями бібліотеки С ++.


Мал.8.5.

Схема взаємодії моделі програми з бібліотекою

Система LabView призначена для автоматизації виробничих процесів, збору даних, проведення вимірювань і управління виробництвом програм, що взаємодіють з апаратурою. До її складу входять прикладні засоби, тестування програм і драйвери взаємодії з апаратурою, що запускаються з пульта.

Система взаємодіє з ANS C, Visual Basic, Visual C ++ Lab Windows / CV. Ці кошти розширюють можливості створення систем реального часу, які дозволяють проводити за допомогою функцій зв'язку вимір апаратури типу: регулятори, термометри, перемикачі та ін. Результати вимірювань можуть передаватися в мережу.

Середовище Java містить інструменти взаємодії з усіма мовами, наведеними в другій колонці таблиці. Загальна схема зв'язку мов JAVA, C і C ++ програм наведена на Мал. 8.6 . Мова Perl з'явився в 80-х роках минулого століття як мову завдання сценаріїв для взаємодії з Інтернет, управління завданнями і створення CGI-сценаріїв на сервері в системі Unix. Дана мова має інтрфейс з С, С ++, Visual Basic і Java. Інтерпретатор з мови Perl написаний в мові С і кожен інтерфейс з іншою мовою розглядається як розширення, що представляється процедурами динамічної бібліотеки.


Мал.8.6.

Схема взаємодії пріложеніяі програм Java, C, C ++

Оператор виклику програми в С або С ++ забезпечує перетворення її в спеціальний код, який розміщується в бібліотеці інтерпретатора Perl. Сам інтерпретатор може бути включений в Win32 або в програму на C / C ++.

Таким чином, в роботі [ 8.14 ] Ретельно досліджені найсучасніші засоби і інструменти уявлення різномовних програм і принципи їх взаємодії з широко використовуваними ЯП. Дано рекомендації по конкретному застосуванню кожного засобу з урахуванням умов середовища і правил прямий і зворотної передачі параметрів програмі в ЯП з класу розглянутих ЯП. Наведено численні приклади, які перевірені експериментально, ними можна користуватися на практиці або використовувати в якості зразка.

Новости

Увлекательные походы в Карпаты.

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

Поход на вулкан Немрут Даг

Как давно вам не приходилось испытывать острых ощущений? Можно смело предположить, что очень давно. К сожалению или к счастью, но наш мир давно уже не такой, каким был раньше. Он стал намного тише

Антикварный магазин Домовой
В вашем доме есть домовой? Этакое противоречивое и непредсказуемое существо, которое разбрасывает и прячет вещи, топает по ночам и в то же время оберегает домашний очаг и всю семью. . . Кто же такой

Хуэй Чжун Дан
На просторах интернета мы нашли интересный сайт, который предлагает китайские шарики для усиления мужской силы. Ради интереса мы зашли на этот сайт Хуэй Чжун Дан. Сразу на первой странице Вы видите

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

Регата Marmaris Race Week
5  мая 2018 года у  юго-западных берегов Турции стартует традиционная майская « Русская парусная неделя  Volvo» . В  этот раз крупнейшее российское яхтенное соревнование

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

Упражнения по арт терапии
Особенности арт-терапевтической сессии: • Доверие (открытость, знакомство с группой, интерес к себе и другим). • Концентрация (привлечение внимания к другим и себе, концентрация на чувствах,

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

Домашние тараканы фото
Обычно, таракан – это нежеланный гость. С собой он приносит массу заморочек, потому что является разносчиком зараз, а избавиться от бессчетных колоний достаточно проблематично. Но если вы будет знать,