Спецификация семантического интерфейса Ada
Разработчик(и) | Языковые юристы, Ада Лавлейс |
---|---|
Целевая платформа(и) | Приложения на языке программирования Ada и статический анализ |
Статус | Активный |
Лицензия | Собственный |
Спецификация 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.
Особенности ASIS [ править ]
Спецификация семантической интерфазы Ada в соответствии со Справочным руководством Ada 95 ISO/IEC 8652 (Справочное руководство по языку Ada, 1994 г.) определяется как интерфейс между средой Aria и другими инструментами, требующими информации из среды Aria.
Возможности инструментов на базе ASIS могут включать в себя: [4]
- качественный анализ кода
- автоматизированные мониторы кода
- браузеры
- инструменты дерева вызовов
- реформаторы кода
- инструменты обеспечения соответствия стандартам кодирования
- верификаторы правильности
- отладчики
- инструменты анализа дерева зависимостей
- инструменты проектирования
- генераторы документов
- инструменты метрик
- обратного инжиниринга инструменты
- инструменты реинжиниринга
- шашки стиля
- инструменты тестирования
- средства оценки времени
- переводчики
ASIS также предоставляет ограниченные подходы к структурной и семантической информации, содержащейся в библиотеке Ada. Он направлен на предоставление и создание информации, которая аналогична, если не на том же семантическом уровне, что и определение Ada. Это очень поможет в предоставлении заинтересованным лицам и клиентам (Эренфрид) тех же определений и информации, что и в Справочном руководстве по языку программирования Ada (LRM).
Основные абстракции [ править ]
В ASIS есть три основные абстракции , существующие в «частных» типах Ады. Он состоит из контекста, Compilation_Unit и элемента. [5] Хотя существуют и дополнительные типы абстракций, но упомянутые три являются основными.
Context
Абстракция контекста ASIS состоит из определений, терминов и условий, доступных в запросах ASIS. Он также используется как путь и логический дескриптор среды Ada. [4]
Compilation_Unit
Модуль компиляции также является логическим дескриптором среды Ada. Эта абстракция также определяет свойства и характеристики, которые далее рассматриваются в Справочном руководстве Ada . Он использует реализацию языка программирования Ada для передачи модулей компиляции через ASIS. Как сказал Адакор;
"АСИС Compilation_Unit
обеспечивает представление модуля компиляции в виде «черного ящика», рассматривая его в целом. Его можно разложить на ASIS Element
а затем анализируется методом «белого ящика». [4]
Примеры этих свойств могут включать в себя:
- Время последнего обновления
- Имя объекта, содержащего исходный текст модуля
Element
Для сравнения, абстракция элемента также является логическим дескриптором модуля компиляции, описанного выше, он может быть явным или неявным.
Структура АСИС [ править ]
Структуру приложения 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 для GNAT. ASIS можно использовать для GNAT через типичные приложения, такие как: «Статический анализ (проверка свойств), инструментирование кода, инструменты проектирования и генерации документов, инструменты метрического тестирования или синхронизации, инструменты анализа дерева зависимостей, генераторы словарей типов, инструменты обеспечения соблюдения стандартов кодирования, язык. Переводчики, инструменты оценки качества, браузеры исходного кода, форматтеры и редакторы, ориентированные на синтаксис» (ASIS для GNAT).
Эта методология также использовалась для разработки многочисленных инструментов с помощью ASIS, в том числе;
- я толкаю
- комар
- мошка
- гнатпп
- гнатметрический.
ASIS в качестве изолятора [ править ]
Пейс Друри (1999) использует ASIS для создания кода для своего проекта под названием «SIDPERS-3», где код используется для идентификации мелких деталей и вариаций, наблюдаемых в готовой коммерческой продукции (COTS), созданной в результате взаимодействия с базой данных. Друри использовал ASIS для своего проекта. проект, в котором ASIS создал новый уровень кода Ada, который успешно изолировал разработчика программного обеспечения от особенностей сгенерированного кода Ada. [7]
Написав такой сложный код под названием «generate_db_support_code», который в основном состоял из кода Ada, его целью было открыть 2 файла, изучить содержимое и создать два новых файла на основе двух предыдущих файлов. ASIS использовался для эффективного изучения структуры кода, что упрощало хранение и связывание со списком, содержащим язык Ada. ASIS последовательно выполняет то, что требуется сделать, и успешно получает постоянный и безопасный доступ к информации базы данных, отвечающей потребностям проекта.
АдаКонтроль [ править ]
AdaControl — это бесплатный (GMGPL) инструмент, который обнаруживает использование различных типов конструкций в программах Ada. Его использование включает проверку стандартов кодирования, изучение использования функций Ada, сбор статистики и многое другое. Он использует всю мощь ASIS и может рассматриваться как наиболее типичное приложение ASIS.
Ссылки [ править ]
- ^ Свард, Рики Э.; Шамильяр, AT (2004). «Реинжиниринг глобальных переменных в Ada» . Материалы ежегодной международной конференции ACM SIGAda по Ada 2004 г.: Разработка правильного и надежного программного обеспечения для систем реального времени и распределенных систем с использованием Ada и связанных с ней технологий . Том. XXIV. Атланта, Джорджия, США: ACM Press. стр. 29–34. дои : 10.1145/1032297.1032303 . ISBN 978-1-58113-906-8 . S2CID 31415676 .
- ^ Штромайер, Альфред; Фофанов Василий; Рыбин, Сергей; Барбе, Стефан (1998). «Качество для ASIS: портативное испытательное оборудование для ASIS» . В Асплунде, Ларс (ред.). Надежные программные технологии — Ада-Европа . Конспекты лекций по информатике. Том. 1411. Берлин, Гейдельберг: Springer. стр. 163–175. дои : 10.1007/BFb0055003 . ISBN 978-3-540-69802-9 .
- ^ Jump up to: Перейти обратно: а б Колкет, Уильям Карри (сентябрь 1999 г.). «Анализ кода критически важного для безопасности [так в оригинале] программного обеспечения реального времени с использованием ASIS» . ACM SIGAda Ada Letters . XIX (3): 67–76. дои : 10.1145/319295.319306 . ISSN 1094-3641 .
- ^ Jump up to: Перейти обратно: а б с д и ж et.al
- ^ «4. Обзор ASIS — Руководство пользователя ASIS-for-GNAT 22.0w, документация» . docs.adacore.com . Проверено 20 ноября 2020 г.
- ^ Бладен, Джеймс Б.; Шпенхофф, Дэвид; Блейк, Стивен Дж. (1991). «Спецификация семантического интерфейса Ada (ASIS)» . Материалы конференции по ТРИ-Аде '91: сегодняшние достижения; ожидания завтрашнего дня — ТРИ-Ада '91 . Нью-Йорк, Нью-Йорк, США: ACM Press. стр. 6–15. дои : 10.1145/126551.126552 . ISBN 0-89791-445-7 . S2CID 19422485 .
- ^ Друри, Пейс (март 1999 г.). «Использование ASIS для изоляции баз данных» . ACM SIGAda Ada Letters . XIX (1): 64–65. дои : 10.1145/311457.311486 . ISSN 1094-3641 . S2CID 37063586 .
Дополнительно [ править ]
- ISO/IEC 15291: Информационные технологии. Языки программирования. Спецификация семантического интерфейса Ada (ASIS).
- Справочное руководство по языку Ada. Версия 6.0 от 21 декабря 1994 г. Авторские права (C) 1992, 1993, 1994, 1995 г. Intermetrics, Inc.
- Спецификация ASIS 2.0