Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

comment on

( [id://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":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (4)
As of 2024-04-19 00:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found