Ada 시멘틱 인터페이스 사양

Ada Semantic Interface Specification
Ada 시멘틱인터페이스 사양(ASIS)
개발자언어변호사, 에이다 러브레이스
타깃 플랫폼Ada 프로그래밍 언어 응용 프로그램 및 정적 분석
상황활동적인
면허증.독자 사양

Ada Symantic Interface Specification(ASIS)은 벤더에 의존하지 않고 Ada 라이브러리 환경에 액세스할 수 있는 계층형 개방형 아키텍처입니다.Ada 프로그램 및 라이브러리의 정적 분석을 허용합니다.이 라이브러리는 Ada 환경과 그 도구 및 응용 프로그램으로 구성된 공개되고 공개된 인터페이스 라이브러리입니다.

ASIS 워킹 그룹의 설명에 의하면, 다음과 같습니다.

「ASIS는, ISO/IEC 8652:1995(Ada 레퍼런스 메뉴얼)에 정의되고 있는 Ada 환경과 이 환경으로부터 정보를 필요로 하는 툴과의 인터페이스입니다」(SIGDA, 2020)

이것은 언어 어플리케이션 프로그래밍 및 Ada 프로그램의 정적 분석 전용으로 사용되므로 관련 정보와 컴퓨터 지원 소프트웨어 엔지니어링(CASE) 및 해당 개발자에게 액세스 할 수 있습니다.또한 ASIS는 Ada 환경 디스플레이의 복잡성을 쉽게 이해하면서 관련 소프트웨어 엔지니어링 도구를 활용할 수 있습니다.또한 레퍼런스 매뉴얼 및 AST(Abstract Syntax Tree)에서 찾을 수 있는 독점 정보에 액세스하는 데 중요한 절차, 기능 및 관련 정보를 제공합니다.이것에 의해, ASIS는 휴대성이 향상해, Ada [1]툴의 정보와 용어를 전송 및 보관 유지할 수 있게 됩니다.

"ASIS는 21개의 패키지로 구성되어 있으며 2개는 옵션이며 이러한 패키지 내에서 349개의 쿼리를 정의합니다."[2]또한 ASIS는 패키지에 "Errors Compilation Units, Ada 환경, 구현, 예외, 요소, 반복자, 선언, 표현, 절, 정의, 스테이트먼트, 텍스트 및 ID"[3]를 포함하는 하위 패키지로 구성됩니다.

전체적인 ASIS는 단순히 ADA 프로그램에서 데이터를 수집하는 간단한 방법으로 Ada 도구의 휴대성을 향상시킵니다.

Ada Programming /3권 중 1권 세트.ASIS의 기반

ASIS의 기능

ISO/IEC 8652 Ada 95 레퍼런스 매뉴얼(Ada Language Referencing Manual, 1994)의 Ada 의미론적 위상간 사양은 아리아 환경 및 아리아 환경에서 정보를 필요로 하는 기타 도구 사이의 인터페이스로 정의된다.

ASIS 기반 툴의 특징은 다음과 같습니다.[4]

  • 고품질 코드 분석
  • 자동 코드 모니터
  • 브라우저
  • 콜 트리 도구
  • 코드 개혁자
  • 코딩 표준 컴플라이언스 도구
  • 정확성 검증자
  • 디버거
  • 종속성 트리 분석 도구
  • 설계 도구
  • 문서 생성기
  • 메트릭 도구
  • 리버스 엔지니어링 툴
  • 리엔지니어링 툴
  • 스타일 체커
  • 테스트 도구
  • 타이밍 추정기
  • 번역자

ASIS는 또한 Ada 라이브러리에서 발견되는 구조 및 의미 정보에 대한 제한된 접근 방식을 제공하며, Ada의 정의와 정확히 동일한 의미 수준은 아니더라도 유사한 정보를 제공하고 생산하는 것을 목표로 한다.이것에 의해, 「Ada Programming Language(LRM; Ada 프로그래밍 언어) 레퍼런스 메뉴얼)」과 같은 정의와 정보를 관계자 및 클라이언트(Ehrenfried)에게 제공하는 데 큰 도움이 됩니다.

주요 추상화

ASIS에서는 Ada 'private' 유형으로 3가지 주요 추상화가 있습니다.이것은 Context, Compilation_로 구성됩니다.유닛과 [5]요소추상화에는 추가적인 유형이 포함되지만, 언급된 세 가지가 기본입니다.

맥락 

ASIS의 콘텍스트 추상화는 ASIS 문의에서 이용 가능한 정의, 용어 및 조건으로 구성됩니다.또한 Ada [4]환경을 위한 방법 및 논리적 핸들로도 사용됩니다.

컴파일_구성 단위 

컴파일 유닛은 Ada 환경의 논리 핸들이기도 합니다.이 추상화는 또한 Ada 참조 매뉴얼에서 자세히 볼 수 있는 특성과 특성을 정의합니다.Ada의 프로그래밍 언어 구현을 사용하여 ASIS를 통해 컴파일 유닛을 전달합니다.Adacore가 말한 바와 같이

「ASIS.Compilation_Unit는 컴파일 유닛 전체를 고려하여 컴파일 유닛의 '블랙박스' 뷰를 제공합니다.ASIS로 분해될 수 있습니다.Element'화이트박스' 방식으로 분석했습니다.[4]

이러한 속성의 검사에는 다음이 포함될 수 있습니다.

  1. 최종 갱신 시각
  2. 장치의 소러스 텍스트를 포함하는 개체의 이름
요소 

마찬가지로 요소 추상화는 위에서 설명한 컴파일 유닛에 대한 논리적 핸들이기도 합니다.이것은 명시적 또는 암묵적일 수 있습니다.

ASIS의 구조

ASIS 어플리케이션 구조는 ASIS Analysis 설정, Process Compilation Units 및 Complete ASIS Analysis의 3가지 카테고리로 분류할 수 있습니다.이 구조는 Ada 프로그래밍 [3]언어로 나타나는 다양한 코드 분석 프로그램을 지원하는 데 도움이 됩니다.

ASIS 분석 설정

ASIS 분석 구조의 첫 번째 단계는 효율적으로 설정하는 것입니다.이 단계에서 다양한 작업 및 프로그램이 초기화 및 확립됩니다.예를 들어 William Colket(1999)에 의해 식별된 바와 같이 이 단계는 ASIS 프로그램이 ASIS를 초기화하고 ASIS 컨텍스트와 상태 개체를 확립하고 분석에 ASIS 컨텍스트를 관련지어 ASIS 컨텍스트를 열고 ASIS 분석을 지원하기 위해 필요한 모든 전처리를 실행하는 것입니다.일반적으로 첫 번째 단계는 ASIS 분석을 가동하여 효율적이고 효과적으로 사용할 수 있도록 준비하는 것입니다.

프로세스 컴파일 유닛

다음으로 "처리 컴파일 유닛"이 설정됩니다.이 시간 동안 요소는 ASIS 구조의 선두에서 열려 관련지어져 있던ASIS 컨텍스트에 적합하도록 샘플링 및 분석됩니다.이 단계에서는 주로 ASIS 컨텍스트와 관련된 대부분의 ASIS 응용 프로그램 요소를 처리합니다.또, 처리 전후에 컴파일 유닛을 실행하는 기능도 추가되어 있습니다.

완전한 ASIS 분석

ASIS 구조의 마지막이자 마지막 단계는 ASIS 분석의 완료입니다.여기서 ASIS 분석에 대한 후처리를 수행하기 위해 모든 것이 마무리되고 검토됩니다.ASIS 컨텍스트도 닫히고 관련성이 해제되어 최종적으로 ASIS가 완성됩니다.

설계기준

ASIS가 계속 비슷하게 진화함에 따라 그 설계 기준의 진화도 마찬가지입니다.ASIS를 설계하는 방법의 기준은 9개의 카테고리로 분류할 수 있습니다.광범위한 수용성, 이동성, 통일성과 응집성, 구현 가능성, 테크놀로지 상태, 확장성, 용어와 스타일, 퍼포먼스 및 최소한의 인터페이스 [6]세트입니다.

1. 폭넓게 받아들여지고 있다

ASIS에서 다양한 도구를 사용할 수 있도록 이 기준에 따라 설계해야 합니다.이를 사용하여 설계하면 인터페이스 라이브러리가 보다 유연해지고 다른 플랫폼, Ada 벤더 구현 도구에 사용할 수 있게 됩니다.또, 툴 유저나 개발자의 트레이닝 시간을 단축할 수 있습니다.

2. 이동성

또한 ASIS는 컴퓨터 간에 또는 다른 환경에서 다른 컴퓨터로 전송할 수 있도록 설계되어야 합니다.

3. 통일성과 응집력

또한 특성, 개념, 유형 및 운영에서 일관성이 있어야 하지만 단순하고 일관성 있는 운영으로 유지되어야 합니다.

4. 실시 가능성

ASIS는 "합리적인 노력으로 [4]Ada 컴파일러 벤더에 의해 구현될 수 있다"는 비판도 받고 있습니다.프로그램 전체에 걸쳐 일관성을 유지할 수 있습니다.

5. 테크놀로지의 현황

문제가 발생하지 않도록 항상 기술 상태를 업데이트하고 발전시켜야 합니다.또한 ASIS의 가능한 모든 변형 및 버전이 일관성 있고 효율적인지 확인해야 합니다.

6. 확장성

"ASIS 설계 모델과 [4]추상화를 사용하는 확장을 배제해서는 안 됩니다."

7. Ada 용어 및 스타일

ASIS는 또한 Ada 참조 매뉴얼의 스타일 및 정의 조건에도 적응해야 합니다.

8. 퍼포먼스

「ASIS 설계에서는, 클라이언트의 관점에서도 [4]실장 관점에서도 효율화를 도모할 필요가 있습니다.

9. 인터페이스의 최소 세트

「클라이언트는, 제공된 원시적인 조작을 사용해 한층 더 레이어드 인터페이스를 실장할 수 있을 것입니다.」

ASIS 사용방법

GNAT용 ASIS

ASIS는 Adacore에 의해 ASIS-for-GNAT 어플리케이션의 이용에서 ASIS 표준을 구현하기 위해 사용되어 왔습니다.ASIS는 GNAT에 대해 다음과 같은 일반적인 응용 프로그램을 통해 사용할 수 있습니다.예를 들어 "Static Analysis (속성 검증), 코드 계측, 설계 및 문서 생성 도구, 메트릭 테스트 또는 타이밍 도구, 종속성 트리 분석 도구, 유형 사전 생성 도구, 코딩 표준 적용 도구, 언어 번역 도구, 품질 평가 도구, 소스,브라우저 및 포맷터 및 구문 지정 편집기(GNAT용 ASIS).

또한 이 사용으로 ASIS의 도움을 받아 다음과 같은 수많은 도구를 개발할 수 있었습니다.

  1. 구나테림
  2. gnat stub
  3. 체크
  4. 키보드
  5. gnatmetric의

절연체로서의 ASIS

Pace Drury(1999)는 ASIS를 사용하여 'SIDPERS-3'라는 이름의 프로젝트를 위한 코드를 만듭니다.이 코드에서는 데이터베이스 상호 작용에서 생성된 Commercial Off the Shelf(COTS)에서 볼 수 있는 친밀한 세부사항과 변화를 식별하기 위해 코드가 사용됩니다.Drury는 자신의 프로젝트에 ASIS를 사용하여 Ada Code의 새로운 레이어를 만들었습니다.AS는 이 소프트웨어를 성공적으로 단열화했습니다.동일한 생성된 Ada 코드 [7]세부사항에서 per.

주로 Ada 코드로 구성된 'generate_db_support_code'라는 어려운 코드를 작성했기 때문에, 그 목적은 앞의 2개의 파일을 기반으로 2개의 파일을 열어 내용을 검사하고 2개의 새로운 파일을 만드는 것이었다.ASIS는 코드의 구조를 효율적으로 조사하기 위해 사용되었기 때문에 Ada 언어를 포함하는 목록에 저장 및 링크하기가 더 쉬웠다.ASIS는 일관성 있게 요구된 작업을 완료하고 프로젝트의 요구를 충족하는 데이터베이스 정보에 대한 지속적인 보안 액세스를 확보합니다.

Ada Control(에이다컨트롤)

AdaControl은 Ada 프로그램에서 다양한 종류의 구성을 사용하는 것을 감지하는 무료(GMGPL) 도구입니다.코딩 표준 확인, Ada 기능 사용 탐색, 통계 작성 등이 사용됩니다.ASIS의 모든 파워를 활용하여 가장 일반적인 ASIS 어플리케이션으로 간주할 수 있습니다.

레퍼런스

  1. ^ Sward, Ricky E.; Chamillard, A. T. (2004). "Re-engineering global variables in Ada". Proceedings of the 2004 Annual ACM SIGAda International Conference on Ada the Engineering of Correct and Reliable Software for Real-time & Distributed Systems Using Ada and Related Technologies - SIGAda '04. Atlanta, Georgia, USA: ACM Press. XXIV (4): 29–34. doi:10.1145/1032297.1032303. ISBN 978-1-58113-906-8.
  2. ^ Strohmeier, Alfred; Fofanov, Vasiliy; Rybin, Sergey; Barbey, Stéphane (1998). Asplund, Lars (ed.). "Quality-for-ASIS: A portable testing facility for ASIS". Reliable Software Technologies — Ada-Europe. Lecture Notes in Computer Science. Berlin, Heidelberg: Springer. 1411: 163–175. doi:10.1007/BFb0055003. ISBN 978-3-540-69802-9.
  3. ^ a b Colket, William Currie (September 1999). "Code analysis of saftey-critical [sic] and real-time software using ASIS". ACM SIGAda Ada Letters. XIX (3): 67–76. doi:10.1145/319295.319306. ISSN 1094-3641.
  4. ^ a b c d e f et.al
  5. ^ "4. ASIS Overview — ASIS-for-GNAT User's Guide 22.0w documentation". docs.adacore.com. Retrieved 2020-11-20.
  6. ^ Bladen, James B.; Spenhoff, David; Blake, Steven J. (1991). "Ada semantic interface specification (ASIS)". Proceedings of the Conference on TRI-Ada '91 Today's Accomplishments; Tomorrow's Expectations - TRI-Ada '91. New York, New York, USA: ACM Press: 6–15. doi:10.1145/126551.126552. ISBN 0-89791-445-7.
  7. ^ Drury, Pace (March 1999). "Using ASIS for data base insulation". ACM SIGAda Ada Letters. XIX (1): 64–65. doi:10.1145/311457.311486. ISSN 1094-3641.

추가의

  1. ISO/IEC 15291:정보기술 - 프로그래밍 언어 - Ada Symantic Interface Specification (ASIS)
  2. Ada Language Reference Manual.버전 6.0 1994년 12월 21일Copyright (C) 1992, 1993, 1994, 1995 Intermetrics, Inc.
  3. ASIS 2.0 사양

외부 링크