Спецификация семантического интерфейса Ada - Ada Semantic Interface Specification

Спецификация семантического интерфейса Ada (ASIS)
Разработчики)Языковые юристы, Ада Лавлейс
Целевая платформа (и)Приложения на языке программирования Ada и статический анализ
Положение делАктивный
ЛицензияПроприетарный

В Ада Спецификация семантического интерфейса (КАК ЕСТЬ) представляет собой многоуровневую открытую архитектуру, обеспечивающую независимый от поставщика доступ к Ада Библиотечная среда. Это позволяет статический анализ программ и библиотек Ada. Это открытая опубликованная интерфейсная библиотека, которая состоит из среды Ada, их инструментов и приложений.

Как объяснил Рабочая группа ASIS:

«ASIS - это интерфейс между средой Ada, как определено в ISO / IEC 8652: 1995 (Справочное руководство Ada), и любым инструментом, требующим информации из этой среды» (SIGAda, 2020)

Он используется исключительно для приложений на языке программирования и статического анализа программ Ada, поэтому предоставляет соответствующую информацию и доступ к системе автоматизированной разработки программного обеспечения (CASE) и соответствующим разработчикам. ASIS также имеет возможность использовать соответствующие инструменты разработки программного обеспечения, а также обеспечивает легкое понимание сложности отображения среды Ada. Кроме того, он предоставляет процедуры, функции и соответствующую информацию, которые можно значительно использовать для доступа к эксклюзивной информации, содержащейся в справочных руководствах и в абстрактном синтаксическом дереве (AST). Что, в свою очередь, повысит способность ASIS быть переносимой для передачи и хранения информации и терминологии инструментов Ada.[1]

«ASIS состоит из 21 пакета, 2 из которых являются необязательными, и внутри этих пакетов определяется 349 запросов».[2] ASIS также будет состоять из пакета, который включает дочерние пакеты, которые включают «Единицы компиляции ошибок, среды Ada, реализацию, исключения, элементы, итератор, объявления, выражения, предложения, определения, операторы, текст и идентификаторы».[3]

В целом ASIS - это простой способ сбора данных из программы ADA, который увеличивает переносимость любых инструментов Ada.

Программирование на Аде / Все главы. Том 1 из 3-х томов. Основа ASIS

Особенности ASIS

Semantic Interphase Specification в соответствии с ISO / IEC 8652 Справочное руководство Ada 95 (Ada Language Referencing Manual, 1994) определяется как интерфейс между средой Aria и другими инструментами, требующими информацию из среды Aria.

Возможности инструментов на основе ASIS могут включать:[4]

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

ASIS также предоставляет ограниченные подходы к структурной и семантической информации, которая находится в библиотеке Ada, она направлена ​​на предоставление и производство информации, которая похожа, если не на том же семантическом уровне, что и определение Ada. Это очень поможет в предоставлении тех же определений и информации, что и в Справочном руководстве по языку программирования Ada (LRM), заинтересованным лицам и клиентам (Эренфрид).

Основные абстракции

В ASIS есть 3 основных абстракции которые существуют в "частных" типах Ады. Он состоит из Context, Compilation_Unit и Element.[5] Хотя существуют и дополнительные типы абстракций, но упомянутые 3 являются основными.

Контекст

Абстракция контекста ASIS состоит из определений, терминов и условий, доступных в запросах ASIS. Он также используется как способ и логический дескриптор для среды Ada.[4]

Compilation_Unit

Модуль компиляции также является логическим дескриптором среды Ada. Эта абстракция также определяет свойства и характеристики, которые далее рассматриваются в Справочное руководство по Ada. Он использует реализацию языка программирования Ada для передачи единиц компиляции через ASIS. Как сказал Адакор;

"АСИС Compilation_Unit обеспечивает представление модуля компиляции в виде «черного ящика», рассматривая модуль в целом. Его можно разложить на ASIS Элемента затем проанализированы методом «белого ящика» ».[4]

Примеры этих свойств могут включать:

  1. Время последнего обновления
  2. Имя объекта, содержащего исходный текст объекта
Элемент

По сравнению с этим абстракция Element также является логическим дескриптором модуля компиляции, описанного выше, это может быть явным или неявным.

Структура ASIS

Структуру приложения ASIS можно разделить на 3 категории; Настройка анализа ASIS, модулей компиляции процессов и полного анализа ASIS. Эта структура призвана помочь в поддержке различных программ анализа кода, которые появляются на языке программирования Ada.[3]

Настроить анализ ASIS

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

Единицы компиляции процесса

Затем за настройкой следует "обработка единицы компиляции ", в это время происходит выборка и анализ элементов для соответствия контексту ASIS, который был открыт и связан с ним в начале структуры ASIS. На этом этапе он в основном обрабатывает большинство элементов приложения ASIS в соответствии с Контекст ASIS, он также имеет дополнительную возможность выполнять единицы компиляции до и после обработки.

Полный анализ ASIS

Последним и завершающим этапом построения ASIS является завершение анализа ASIS. Здесь все завершается и проверяется для выполнения любой постобработки для анализа ASIS. Контекст ASIS также закрыт и диссоциирован, и в конечном итоге ASIS доработан.

Критерий дизайна

Поскольку ASIS продолжает развиваться аналогичным образом, то же самое происходит и с эволюцией критериев его проектирования. Критерии разработки ASIS можно разделить на 9 различных категорий; широкое признание, транспортабельность, единообразие и связность, реализуемость, состояние технологий, расширяемость, терминология и стиль ada, производительность и минимальный набор интерфейсов.[6]

1. Широкое признание

Он должен разрабатываться в соответствии с этими критериями, чтобы для ASIS можно было использовать самые разные инструменты. Разработка с учетом этого позволяет библиотеке интерфейса быть более гибкой и доступной для инструментов на других платформах, реализациях поставщиков Ada. Это также позволяет сократить время обучения пользователей и разработчиков инструментов.

2. Транспортабельность.

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

3. Единообразие и сплоченность

Он также должен быть согласован по свойствам, концепциям, типам и операциям, но при этом оставаться простой и согласованной операцией.

4. Реализуемость

ASIS также критикуют за то, что он «может быть реализован любым поставщиком компилятора Ada с разумными усилиями».[4] А также поддержание последовательности на протяжении всей программы.

5. Состояние технологии

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

6. Расширяемость

«Это не должно препятствовать расширению, которое будет использовать модель проектирования и абстракции ASIS».[4]

7. Терминология и стиль Ada

ASIS также следует адаптировать к условиям стиля и определениям Справочного руководства Ada.

8. Производительность

«Дизайн ASIS должен обеспечивать эффективность как с точки зрения клиента, так и с точки зрения реализации»[4]

9. Минимальный набор интерфейсов

«Это должно позволить клиентам реализовать дополнительные многоуровневые интерфейсы с использованием предоставленных примитивных операций».

Использование ASIS

ASIS для GNAT

ASIS использовался Adacore для реализации стандарта ASIS при использовании приложений ASIS-for-GNAT. ASIS может использоваться для GNAT через типичные приложения, такие как: «Статический анализ (проверка свойств), инструментарий кода, инструменты проектирования и создания документов, инструменты тестирования метрик или времени, инструменты анализа дерева зависимостей, генераторы словаря типов, инструменты обеспечения соблюдения стандартов кодирования, язык Переводчики, инструменты оценки качества, браузеры исходного кода и форматеры и редакторы, управляемые синтаксисом »(ASIS для GNAT).

Это использование также позволило разработать множество инструментов с помощью ASIS, включая

  1. Gnatelim
  2. гнатстуб
  3. гнатчек
  4. гнатпп
  5. гнатметрический.

ASIS как изолятор

Пейс Друри (Pace Drury, 1999) использует ASIS для создания кода для своего проекта под названием «SIDPERS-3», где этот код используется для идентификации интимных деталей и вариаций, замеченных в коммерческом Off the Shelf (COTS), созданных в результате взаимодействия с базой данных. проект, в котором ASIS создал новый уровень кода Ada, который успешно изолировал разработчика программного обеспечения от той же специфики сгенерированного кода Ada.[7]

Написав такой сложный код под названием «generate_db_support_code», который в основном состоял из кода Ada, его целью было открыть 2 файла, изучить содержимое и создать два новых файла на основе двух предыдущих файлов. ASIS использовался для эффективного изучения структуры кода, что упростило хранение и ссылки на список, содержащий язык Ada. ASIS последовательно выполняет то, что требуется, и успешно получает постоянный и безопасный доступ к информации базы данных, которая отвечает потребностям проекта.

Рекомендации

  1. ^ Sward, Ricky E .; Шамиллар А. Т. (2004). "Реинжиниринг глобальных переменных в Ada". Материалы ежегодной международной конференции ACM SIGAda 2004 года по Ada «Разработка правильного и надежного программного обеспечения для систем реального времени и распределенных систем с использованием Ada и связанных технологий» - SIGAda '04. Атланта, Джорджия, США: ACM Press: 29–34. Дои:10.1145/1032297.1032303. ISBN  978-1-58113-906-8.
  2. ^ Штромайер, Альфред; Фофанов, Василий; Рыбин, Сергей; Барби, Стефан (1998). Асплунд, Ларс (ред.). «Качество для ASIS: переносная испытательная установка для ASIS». Надежные программные технологии - Ada-Europe. Конспект лекций по информатике. Берлин, Гейдельберг: Springer: 163–175. Дои:10.1007 / BFb0055003. ISBN  978-3-540-69802-9.
  3. ^ а б Колкет, Уильям Карри (сентябрь 1999 г.). "Анализ кода критически важного с точки зрения безопасности программного обеспечения и программного обеспечения в реальном времени с использованием ASIS". ACM SIGAda Письма Ада. XIX (3): 67–76. Дои:10.1145/319295.319306. ISSN  1094-3641.
  4. ^ а б c d е ж и другие
  5. ^ "4. Обзор ASIS - Документация 22.0w Руководство пользователя ASIS-for-GNAT". docs.adacore.com. Получено 2020-11-20.
  6. ^ Bladen, Джеймс Б.; Спенхофф, Дэвид; Блейк, Стивен Дж. (1991). "Спецификация семантического интерфейса Ada (ASIS)". Материалы конференции, посвященной сегодняшним достижениям TRI-Ada '91; завтрашние ожидания - TRI-Ada '91. Нью-Йорк, Нью-Йорк, США: ACM Press. Дои:10.1145/126551.126552. ISBN  0-89791-445-7.
  7. ^ Друри, Пейс (март 1999 г.). «Использование ASIS для изоляции базы данных». ACM SIGAda Письма Ада. XIX (1): 64–65. Дои:10.1145/311457.311486. ISSN  1094-3641.

Дополнительный

  1. ISO / IEC 15291: Информационные технологии. Языки программирования. Спецификация семантического интерфейса Ada (ASIS)
  2. Справочное руководство по языку Ada. Версия 6.0 от 21 декабря 1994 г. Авторское право (C) 1992, 1993, 1994, 1995 Intermetrics, Inc.
  3. Спецификация ASIS 2.0

внешняя ссылка