tradução inversa de fortran90 (ou gfortran) para ratfor90?

0

Eu provavelmente tenho uma pergunta idiota e estou fazendo talvez um fórum errado, mas não sei para onde ir. OK, eu trabalho com o gfortran via ratfor90 (é um bom pré-processador para o gfortran e o fortran90, que é muito simples, parece do tipo C e foi desenvolvido para pessoas de baixa qualidade como eu ...) Você escreve um texto muito curto. , em seguida, ele é traduzido em código gfortran completo, e os cálculos vão de lá ... Minha pergunta: existe um tradutor "inverso" que leva um código gfortran completo e o traduz para um arquivo ratfor90 legível muito mais curto e fácil ?

(Apenas no caso - meu comp é Dell Precision M, Ubuntu 14.04, ambiente KDE ...)

    
por Al Kap 22.10.2016 / 18:43

1 resposta

1

Alguém pode ter feito isso como um projeto de pesquisa, mas

  • é algo como um descompilador (não muitos para discutir) e
  • O ratfor não tem muitos desenvolvedores para começar.

Dito isto, tudo o que vejo na área é antigo (o que é esperado, considerando os dois pontos mencionados):

  • Técnicas de Compilação Inversa , Cristina Cifuentes, 1994, menciona um programa descrito em B.S. Padeiro. Um algoritmo para estruturar fluxogramas . Jornal do ACM, 24 (1): 98-120, janeiro de 1977.

    Baker[Bak77] presented an algorithm to structure flowgraph s into equivalent flowgraphs that made use of the following control structures: if..then..else, multilevel break, multilevel next, and endless loops. Gotos were used whenever the graph could not be structured using the previous structures. The algorithm was extended to irreducible graphs as well. It was demonstrated that the algorithm generated well-formed and properly nested programs, and that any goto statements in the final graph jumped forward. This algorithm was implemented in the struct program on a PDP11/54 running under Unix. It was used to rewrite Fortran programs into Ratfor, an extended Fortran language that made use of control structures. The struct program was later used by J.Reuter in the decomp decompiler to structure graphs built from object files with symbol information.

  • Ajuda no desmontador / descompilador , thread da usenet em 1990, comentário de Mark William Hopkin diz

    There is a standard UNIX utility (at least for the 4.3 bsd we're running) that does something just like this: "struct". This utility takes standard Fortran-77 programs and generated from it Ratfor code. Ratfor is a 'rationalized' Fortran that includes all the Algol-derived control structured.

Como você pode ver, ambos comentam o mesmo programa dos anos 70. O comentário sobre o 4.3BSD mostra que você pode encontrar sua fonte online. O que eu encontrei conclui a página de manual com isto:

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 .

Ou seja, o programa não estava completo e (além de outro projeto de pesquisa) provavelmente não faria o que você precisa.

    
por 22.10.2016 / 20:58