[HN Gopher] awkcc: awk-to-C transcompiler (1988, 2011)
       ___________________________________________________________________
        
       awkcc: awk-to-C transcompiler (1988, 2011)
        
       Author : rdpintqogeogsaa
       Score  : 36 points
       Date   : 2022-01-09 19:52 UTC (3 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | benhoyt wrote:
       | Interesting! I recently did something similar based on my GoAWK
       | interpreter (an AWK interpreter written in Go): I wrote a
       | compiler that tries to statically infer types and compile a
       | subset of AWK to Go source: https://benhoyt.com/writings/awkgo/
       | My conclusion:
       | 
       | > Is it useful? Not really. If you want performance, just use
       | Mawk! And if you want your text processing script in a more
       | maintainable language than AWK, you'd probably just write it in
       | something like Go from the start. You're pretty certain to end up
       | with more idiomatic Go that way, and it'll probably be more
       | efficient as well.
       | 
       | > Still, if you have some AWK scripts lying around that you want
       | to convert to "real programs", AWKGo might not be a bad place to
       | start: you could compile a script to Go to get the structure,
       | then clean it up and maintain the cleaned-up version.
        
       | cogburnd02 wrote:
       | Interested parties should also check out awka
       | (https://github.com/noyesno/awka) and ELVM (which can compile C
       | into awk or sed, among various other things)
       | (https://github.com/shinh/elvm)
        
         | sanxiyn wrote:
         | > which can compile C into awk or sed, among various other
         | things
         | 
         | What did I just read?
         | 
         | Thanks a lot for letting us know about ELVM. Much appreciated.
        
       | gompertz wrote:
       | I actually have this code compiling and running from a few months
       | back with some minor compiler corrections; but was hesitant to
       | release to github because of the copyright. It was very difficult
       | to come across.
       | 
       | I asked several people at Bell/Nokia if it would be okay to
       | release and they weren't sure if anyone cared (but couldn't
       | guarantee anything legally) ... Looks like they took the liberty
       | themselves...
       | 
       | I'll try to find time to do a PR or fork of this copy with my
       | corrections and writeup for instructions. Imagine it's best I
       | just fork as can't fathom Nokia is going to approve PRs.
        
         | mustache_kimono wrote:
         | Curious: What kind of performance is gained by this over just
         | using awk?
        
           | gompertz wrote:
           | Probably extremely minimal if any; especially with all the
           | advances in Mawk/Gawk since 1988.
           | 
           | The only immediate advantage being you can essentially turn
           | your Awk into a compiled exe with Awkcc. However it's
           | important to note that this is so old it only works with the
           | original Bell Labs Awk.
           | 
           | Previously compiling directly from Awk to an executable was
           | only possible with Tawk (commercial version of Awk by
           | Thompson Automation... And long defunct).
        
       | tyingq wrote:
       | _linux build: Lex needs to be run on Solaris machine. awk.lx.c is
       | built on solaris, then modified by hand to remove the static
       | initialization of yyin and yyout._
       | 
       | That kind of situation is a fun throwback.
        
       ___________________________________________________________________
       (page generated 2022-01-09 23:00 UTC)