fortran90(또는 gfortran)에서ratfor90으로 역번역하시겠습니까?

fortran90(또는 gfortran)에서ratfor90으로 역번역하시겠습니까?

어리석은 질문이 있을 가능성이 높으며 아마도 잘못된 포럼에 질문하고 있지만 어디로 가야할지 모르겠습니다. 좋아요, 저는 ratfor90을 통해 gfortran을 사용하고 있습니다. (gfortran과 fortran90을 위한 멋진 작은 전처리기입니다. 매우 간단하고 C처럼 보이며 저처럼 생명력이 낮은 사람들을 위해 개발되었습니다.....) 매우 짧은 ratfor90을 작성합니다. 그런 다음 전체 gfortran 코드로 변환되고 거기에서 계산이 시작됩니다... 내 질문: 전체 gfortran 코드를 가져와 변환할 수 있는 "역" 번역기가 있습니까? 더 짧고 읽기 쉬운ratfor90 파일로 번역되었습니다. ?

(만약 - 내 컴퓨터는 Dell Precision M, ubuntu 14.04, KDE 환경입니다...)

답변1

누구가능한연구 프로젝트로 진행되었지만

  • 이것은 디컴파일러와 같습니다(논의할 내용은 많지 않습니다).
  • Ratfor에는 처음부터 개발자가 많지 않았습니다.

그렇긴 하지만, 이 지역에서 내가 본 모든 것은 오래되었습니다(언급된 두 가지 사항을 고려하면 이는 예상됩니다).

  • 역컴파일 기술, Cristina Cifuentes, 1994는 BS Baker가 설명한 절차를 참조합니다. 순서도 구성을 위한 알고리즘. ACM 저널, 24(1):98–120, 1977년 1월.

    Baker [Bak77]는 if..then..else, 다중 레벨 중단, 다중 레벨 다음 및 무한 루프 제어 구조를 사용하여 순서도를 동등한 순서도로 구성하는 알고리즘을 제안했습니다. Goto는 이전 구조를 사용하여 다이어그램을 작성할 수 없을 때마다 사용됩니다. 알고리즘은 환원 불가능한 그래프로도 확장됩니다. 이 알고리즘은 잘 구성되고 올바르게 중첩된 프로그램을 생성하며 최종 그래프의 모든 goto 문은 앞으로 이동하는 것으로 나타났습니다. 알고리즘은 다음에서 구현됩니다. struct Unix에서 실행되는 PDP11/54의 프로그램. 이는 제어 구조를 활용하는 확장 Fortran 언어인 Ratfor로 Fortran 프로그램을 다시 작성하는 데 사용됩니다. 구조체 프로그램은 나중에 J.Reuter에 의해 소개되었습니다. decomp 디컴파일러는 기호 정보가 포함된 개체 파일에서 구조 그래프를 만듭니다.

  • 디스어셈블러/디컴파일러 도움말, Mark William Hopkin이 코멘트한 1990년 유즈넷 스레드

    다음과 같은 작업을 수행하는 표준 UNIX 유틸리티(적어도 우리가 실행 중인 4.3 bsd의 경우)가 있습니다."struct". 이 유틸리티는 표준 Fortran-77 프로그램을 사용하여 Ratfor 코드를 생성합니다. Ratfor는 Algol에서 파생된 모든 제어 구조를 포함하는 "합리화된" Fortran입니다.

보시다시피 두 사람은 1970년대 동일한 쇼를 검토했습니다. 4.3BSD에 대한 의견은 소스 코드를 온라인에서 찾을 수 있음을 나타냅니다. 매뉴얼 페이지가 다음과 같이 끝나는 것을 발견했습니다.

BUGS
       Struct knows Fortran 66 syntax, but not full Fortran 77.
       If  an  input  Fortran  program contains identifiers which are reserved
       words in Ratfor, the structured version of the program will  not  be  a
       valid Ratfor program.
       The labels generated cannot go above 32767.
       If you get a goto without a target, try −e .

즉, 프로그램이 완전하지 않으며 귀하의 요구 사항을 충족하지 못할 수도 있습니다(다른 연구 프로젝트 제외).

관련 정보