[Python-es] Parsear Fortran en Python

Juan BC jbc.develop en gmail.com
Dom Nov 15 13:11:14 EST 2015


Te paso un contacto por privado del autor de varias de estqs cosas entre
ellas el xdk de Intel

El dom, nov 15, 2015 15:06, Juan Luis Cano <juanlu001 en gmail.com> escribió:

> On 2015-11-11 13:48, Luis Fernando Lopez Aguilar wrote:
>
> Pueden pasarme ese programa escrito en fortran?
>
> Tengo curiosidad de cuan dificil es reinterpretar, por los 80 al 85 he
> programado en fortran IV en un pdp11/45
>
> Saludos.
> f.l.
>
>
> Luis Fernando, no es un programa concreto el que quiero parsear: estaba
> explorando opciones sobre cuál sería la mejor manera de escribir un parser.
> Me temo que desde FORTRAN IV hasta Fortran 2003 ha cambiado bastante la
> cosa :)
>
> Gracias Alex y Mario por las ideas. Mario, no me queda claro cómo utilizar
> alguno de los parsers de Fortran existentes para extraer los tokens y
> convertirlos a Python, o a lo mejor es que te he entendido mal. ¿Te
> refieres, por ejemplo, a tratar de reutilizar la lógica de gfortran?
>
> También he descubierto grako, que está bastante bien documentado y trabaja
> con EBNF https://pypi.python.org/pypi/grako Creo que escogeré una de
> estas tres opciones.
>
> Y sí, efectivamente quiero hacerlo con tokens y reglas porque ya he leído
> demasiado código que trata de parsear lenguajes complicados
> "chapuceramente" solo utilizando regex (o ni siquiera) y me sangran los
> ojos. Quiero producir una cosa que sea lo más sólida y robusta posible (si
> es que finalmente lo hago).
>
> Un saludo:
>
> Juanlu
>
>
>
> El 11 de noviembre de 2015, 6:45, Alexandre Manhaes Savio <
> alexsavio en gmail.com> escribió:
>
>> Tengo experiencia con ANTLR y bison (ya he hecho functionar un parser
>> para un sub-set de algo parecido a python con ambos). Además de las
>> respectivas asignaturas en la ingeniería.
>> Estoy de acuerdo con María. Lo de programar con tokens aunque al
>> principio parezcan un engorro, te salvarán el pellejo.
>>
>> Yo que tú le daba un intento con pyparser, lo más aburrido es generar las
>> reglas desde la sintaxis y comprobar que va bien.
>>
>>
>> -----------------------------------
>> Alexandre Manhães Savio
>> Post-doctoral researcher
>> Klinikum rechts der Isar, TUM, München
>> alexsavio.github.io
>> Nebenstellennummer: 4570
>> On 11.11.2015 09:39, Kiko wrote:
>> >
>> >
>> > El 11 de noviembre de 2015, 0:02, Mario R. Osorio
>> > <mario en osorio.solutions <mailto:mario en osorio.solutions>> escribió:
>> >
>> >     Juan Luis,
>> >
>> >     Es posible que yo haya simplificado mucho tus necesidades. A mi me
>> >     toco estudiar a profundidad pyparser y me dio la impresion que era
>> >     casi imposible no poder parsear cualquier cosa, por complicado que
>> >     fuera.
>> >
>> >     Sin embargo, y en otro order de ideas, no se conoces *como funcionan
>> >     los parsers y compiladores* <http://parsingintro.sourceforge.net/>,
>> >     pero en dos palabras, el parser genera tokens, los cuales son
>> >     convertidos en lenguaje de maquina por el compilador. Existen
>> >     docenas de parsers para fortran. Quizas perrefieras utilizar alguno
>> >     de estos parsers y en vez de compilar los token, convertirlos a
>> >     python con tu priopio codigo.
>> >
>> >     Pareciera el mismo trabajo porque de todas maneras tendrias que (o
>> >     al menos te seria mas facil) utilizar pyparser para convertir los
>> >     tokens a codigo python. SIN EMBARGO, debo SUPONER que es mas facil
>> >     generar las reglas para los tokens que para el codigo.
>> >
>> >     Mi preferencia personal seria utilizar pyparser, pero debes tener la
>> >     documentacion correcta y completa del lenguaje a compilar, o mejor
>> >     aun, las definiciones EBNF de FORTRAN 77, asi podrias utilizar *este
>> >     modulo* <http://pyparsing.wikispaces.com/file/view/ebnf.py>, y
>> >     ahorrarte muuuchos dolores de cabeza...
>> >
>> >
>> >     Dtb/Gby
>> >     =======
>> >     Mario R. Osorio
>> >     A.S. of Computer Programming and Analysis
>> >
>> >     “If I had asked people what they wanted, they would have said faster
>> >     horses.”
>> >      ― Henry Ford
>> >
>> >
>> >
>> >     2015-11-10 16:06 GMT-05:00 Juan Luis Cano <juanlu001 en gmail.com
>> >     <mailto:juanlu001 en gmail.com>>:
>> >
>> >         Gracias a todos por las respuestas, si consigo algo decente
>> >         habrá artículo en el blog pero no antes de 2016 :)
>> >
>> >         Juanlu
>> >
>> >
>> >         On 2015-11-10 21:47, francismb wrote:
>> >
>> >             Hola Juan,
>> >
>> >                 Otras opciones que tengo son usar unas reglas formuladas
>> >                 con SDF[1],
>> >                 pero como no sé qué hacer con ellas no sé en qué estado
>> >                 están. He
>> >                 intentado usar Open Fortran Parser, supuestamente basado
>> >                 en ANTLR, pero
>> >                 ni siquiera me compila. También he buscado por ahí
>> >                 gramáticas de Fortran
>> >                 ya escritas (por ejemplo para lex/yacc) pero no he
>> >                 encontrado nada
>> >                 satisfactorio.
>> >
>> >                 Aprovechando, si alguien me recomienda alguna lecturita
>> >                 al respecto o da
>> >                 algún consejo genérico se lo agradecería también. No es
>> >                 mi objetivo
>> >                 hacerme un experto en parsers, con que resuelva mi
>> >                 problema me basta.
>> >
>> >             Otra alternativa si tuvieras la gramatica seria ANTLR [1],
>> >             es java pero
>> >             segun tengo entendido genera python [2]
>> >
>> >
>> >
>> >             [1] http://www.antlr.org/
>> >             [2]
>> >
>> https://theantlrguy.atlassian.net/wiki/display/ANTLR4/Python+Target
>> >
>> >             Saludos,
>> >             francis
>> >
>> >
>> >
>> > Quizá en la lista de numpy te puedan dar más opciones.
>> >
>> > De mi experiencia con Brython y su transpilador (Python a JS) te puedo
>> > decir que la tarea es un infierno lleno de excepciones en las reglas y
>> > corner cases que hacen que sea fácil tener bugs.
>> >
>> > Saludos.
>> >
>> >
>> > _______________________________________________
>> > Python-es mailing list
>> > Python-es en python.org
>> > https://mail.python.org/mailman/listinfo/python-es
>> > FAQ: http://python-es-faq.wikidot.com/
>> >
>>
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> https://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>
>
>
> _______________________________________________
> Python-es mailing listPython-es en python.orghttps://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
-- 

Juan BC (from phone)
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20151115/4b10b10a/attachment.html>


Más información sobre la lista de distribución Python-es