Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Comment on

( #3333=superdoc: print w/replies, xml ) Need Help??
For me, writing compilers is very much like gardening.

Lexers eat streams of characters that they digest into tokens. Tokens are like food and water for compilers.

Parsers - Syntax Analyzers - produce trees and sometimes forests. And many of those trees very much resemble flowers.

If you are not careful enough while designing your grammar your trees grow wild.

Later, during semantic analysis you decorate them with attributes, very much like a christmas tree.

And much later - during machine independent optimization phases - you have to transform their shape, pruning them, forcing them to be the way you want (a bit like bonsais).

Finally during code generation and machine dependent optimization bees and insects visit the trees producing the final translation.

But at the end I feel that general purpose programming is more like writing mathematics.

Each time you write a correct program (exists such thing?) you are attempting (via reasoning, verification and testing) to prove that your input-output function is the one your client requires. You are writing, somehow, a theorem.


In reply to Re: Programming is more like: by casiano
in thread Programming is more like: by Arunbear

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    [marto]: animated gif in question...
    [1nickt]: Interesting article on the Coming Software Apocaplyse that I found while following one of eyepopslikeamosqui to's posts. Posits that no one can guarantee the quality of, or even understand, the 100 million lines of code in a mo
    [holli]: you know, monk days are fun and all. but too many of them are bad for your health
    [1nickt]: ...modern car. Suggests using TLA+ or other software modeling language to autogenerate code.
    1nickt is not sure more and more layers separating the programmer from the program is the right way to go...
    [holli]: happy one, shmem ;)
    [1nickt]: I had an interview couople of weeks ago, heard from a principal engineer that a friend of his who works at The Google told him that the self-teaching software that determines the dynamic pricing for their adverts...
    [1nickt]: ... has become so complex that there is no one at the Goole who knows what it does.
    [marto]: William Gibson was right
    [moritz]: a classical problem with machine learning

    How do I use this? | Other CB clients
    Other Users?
    Others chilling in the Monastery: (11)
    As of 2017-11-21 13:00 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?
      In order to be able to say "I know Perl", you must have:













      Results (301 votes). Check out past polls.

      Notices?