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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Context

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

Compilation_Unit

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

«ASIS Compilation_Unit обеспечивает представление модуля компиляции в виде« черного ящика », рассматривая модуль в целом. Он может быть разложен на ASIS, Element а затем проанализирован методом« белого ящика »».

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

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

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

Структура ASIS

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 для своего проект, в котором ASIS создал новый уровень кода Ada, который успешно изолировал разработчика программного обеспечения от той же специфики сгенерированного кода Ada.

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

AdaControl

AdaControl - это бесплатный инструмент (GMGPL), который обнаруживает использование различных типов конструкций в программах на языке Ada. Его использование включает проверку стандартов кодирования, изучение использования функций Ada, создание статистики и многое другое. Он использует всю мощь ASIS и может считаться наиболее типичным приложением ASIS.

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

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

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

Внешние ссылки