[논문 리뷰] Migrating Esope to Fortran 2008 using model transformations
논문은 모델 기반 공학을 사용하여 Esope-확장 FORTRAN 77 코드를 Fortran 2008로 자동 마이그레이션하는 접근법을 제시합니다. 추상성, 가독성, 유지보수성을 보존하면서 언어 및 도구 제약을 다룹니다.
Legacy programming languages such as FORTRAN 77 still play a vital role in many industrial applications. Maintaining and modernizing these languages is challenging, especially when migrating to newer standards such as Fortran 2008. This is exacerbated in the presence of legacy proprietary extensions on such legacy languages, because their semantics are often based on old context (limits of legacy language, domain logic,...). This paper presents an approach for automatically migrating FORTRAN 77 with a proprietary extension, named Esope, to Fortran 2008. We introduce a tool that converts Esope source code to Fortran 2008. While supporting readability of the generated code, we want to maintain the level of abstraction provided by Esope. Our method uses model-driven engineering techniques, with transformations to generate a target model from which we export easy-to-read Fortran 2008 source code. We discuss the advantages, limitations, and maintainability considerations of our approach and provide insights into its scalability and adaptability to evolving requirements.
연구 동기 및 목표
- Esope를 Fortran 2008로 마이그레이션하려는 산업적 동기를 설명한다.
- Esope AST를 Fortran 2008 대상 모델로 변환하는 모델 기반 엔지니어링 접근법을 제안한다.
- 생성된 코드에서 Esope의 가독성과 추상화 수준을 보존한다.
- Fortran 2008 내에서 메모리 관리, 세그먼트 처리 및 레거시 구성 요소를 다룬다.
제안 방법
- 모델에서 모델 간 마이그레이션을 위한 방문자와 문자열 템플릿을 결합한 하이브리드 모델-투-텍스트 변환.
- Esope 세그먼트의 Fortran 2008 파생형 기반 표현을 정의한다.
- 세그먼트 연산을 모델링하기 위한 추상 절차를 갖는 공통 추상 세그먼트 유형을 구현한다.
- Esope 필드 및 세그먼트 접근 표기를 Fortran 2008 구문(%, 지연 형태 등)으로 변환한다.
- 프리프로세서 인클루드를 제거하고 추적 가능성 주석이 있는 모듈 기반 임포트로 마이그레이션한다.
- Fortran 2008 이주 코드에서 명시적 타이핑과 인텐트 시맨틱스를 강제한다.
실험 결과
연구 질문
- RQ1Esope 세그먼트와 동적 메모리 관리가 Fortran 2008에서 어떻게 충실하게 표현될 수 있는가?
- RQ2가독성과 개발자의 추상화 수준을 보존하면서 유지보수성을 보장하는 마이그레이션 전략은 무엇인가?
- RQ3Fortran 2008에서 그래프와 유사한 구조의 세그먼트 및 이들의 연산을 어떻게 다룰 것인가?
- RQ4Esope의 의미를 지원하기 위해 Fortran 2008 기능(파생형, 지연 형태, 인텐트)에 필요한 적응은 무엇인가?
- RQ5이전 코드를 마이그레이션할 때 레거시 구성 요소(includes, GOTO, COMMON 블록)를 어떻게 관리할 것인가?
주요 결과
- Fortran 2008 기반 파생형 접근 방식은 Esope 세그먼트 및 그 동적 크기를 표현할 수 있다.
- 추상 세그먼트 유형은 파생형 간 세그먼트 연산의 균일한 처리를 가능하게 한다.
- 지연 형 배열은 명시적 메모리 관리와 함께 런타임 크기의 필드를 모델링하는 데 사용된다.
- 포인터는 파생형 포인터 및 명시적 절차를 통해 Esope 동작을 반영하도록 처리된다.
- Includes는 제거되고 추적 용이성과 가독성을 높이기 위해 모듈 기반 선언으로 대체된다.
- 이주 프레임워크는 포맷팅, 주석, 변경의 추적 가능성을 보존하는 메커니즘을 제공한다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.