Спецификация семантического интерфейса Ada - Ada Semantic Interface Specification
Эта статья слишком полагается на Рекомендации к основные источники.Октябрь 2011 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Разработчики) | Языковые юристы, Ада Лавлейс |
---|---|
Целевая платформа (и) | Приложения на языке программирования 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.
Особенности 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]
Примеры этих свойств могут включать:
- Время последнего обновления
- Имя объекта, содержащего исходный текст объекта
Элемент
По сравнению с этим абстракция 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, включая
- Gnatelim
- гнатстуб
- гнатчек
- гнатпп
- гнатметрический.
ASIS как изолятор
Пейс Друри (Pace Drury, 1999) использует ASIS для создания кода для своего проекта под названием «SIDPERS-3», где этот код используется для идентификации интимных деталей и вариаций, замеченных в коммерческом Off the Shelf (COTS), созданных в результате взаимодействия с базой данных. проект, в котором ASIS создал новый уровень кода Ada, который успешно изолировал разработчика программного обеспечения от той же специфики сгенерированного кода Ada.[7]
Написав такой сложный код под названием «generate_db_support_code», который в основном состоял из кода Ada, его целью было открыть 2 файла, изучить содержимое и создать два новых файла на основе двух предыдущих файлов. ASIS использовался для эффективного изучения структуры кода, что упростило хранение и ссылки на список, содержащий язык Ada. ASIS последовательно выполняет то, что требуется, и успешно получает постоянный и безопасный доступ к информации базы данных, которая отвечает потребностям проекта.
Рекомендации
- ^ 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.
- ^ Штромайер, Альфред; Фофанов, Василий; Рыбин, Сергей; Барби, Стефан (1998). Асплунд, Ларс (ред.). «Качество для ASIS: переносная испытательная установка для ASIS». Надежные программные технологии - Ada-Europe. Конспект лекций по информатике. Берлин, Гейдельберг: Springer: 163–175. Дои:10.1007 / BFb0055003. ISBN 978-3-540-69802-9.
- ^ а б Колкет, Уильям Карри (сентябрь 1999 г.). "Анализ кода критически важного с точки зрения безопасности программного обеспечения и программного обеспечения в реальном времени с использованием ASIS". ACM SIGAda Письма Ада. XIX (3): 67–76. Дои:10.1145/319295.319306. ISSN 1094-3641.
- ^ а б c d е ж и другие
- ^ "4. Обзор ASIS - Документация 22.0w Руководство пользователя ASIS-for-GNAT". docs.adacore.com. Получено 2020-11-20.
- ^ Bladen, Джеймс Б.; Спенхофф, Дэвид; Блейк, Стивен Дж. (1991). "Спецификация семантического интерфейса Ada (ASIS)". Материалы конференции, посвященной сегодняшним достижениям TRI-Ada '91; завтрашние ожидания - TRI-Ada '91. Нью-Йорк, Нью-Йорк, США: ACM Press. Дои:10.1145/126551.126552. ISBN 0-89791-445-7.
- ^ Друри, Пейс (март 1999 г.). «Использование ASIS для изоляции базы данных». ACM SIGAda Письма Ада. XIX (1): 64–65. Дои:10.1145/311457.311486. ISSN 1094-3641.
Дополнительный
- ISO / IEC 15291: Информационные технологии. Языки программирования. Спецификация семантического интерфейса Ada (ASIS)
- Справочное руководство по языку Ada. Версия 6.0 от 21 декабря 1994 г. Авторское право (C) 1992, 1993, 1994, 1995 Intermetrics, Inc.
- Спецификация ASIS 2.0