Skip to main content

Expression Handling (2nd approach)

After the first implementation, I have made a few more improvements and now, after submitting my assignment I think it's safe to post the final version of the classes here. Source code is available here (MediaFire). You may want to read the documentation here (Google Docs, in Vietnamese). The script is now accept natural expression input from console. The most interesting feature is each variable can also be enter as an expression (and it will ask for it's variables also). What does this mean?

For example, you input an expression: 5+x+y*z. Obviously, it will be calculated at 5 + x + ( y * z)
But because you used 3 variables, it will ask your for x, y, z. I will assign x with value of 20, y with 10.
Now is the fun stuff: I input "a-b" for z. Uhhhh. What do you think the script will do now?
Ah ha, it will ask for z.a (which means the 'a' variable of 'z' expression), 100 to go
And then z.b: 1000 to go
The result is -17985 (I'm not really sure with this result but you can check yourself)

That example is from the documentation. Feel free to leave comment

Comments

  1. Trung's here. Your solution is good but I think it's a bit partial.
    I have this good book, it is Compiler, principle, technique and tools. It's about making a compiler, which should be a good reference for Expression Handling, care about that?

    ReplyDelete
  2. Got no notification about your comment. Sorry mate :D

    Yeah, sounds like an interesting book. Send me via email please?

    ReplyDelete
  3. No, it's actually in real papers...
    Do a google search on this book's name, it's a famous one :D or I can lend you mine (if you still need it then :") )

    ReplyDelete

Post a Comment

Popular posts from this blog

IMAP module for PHP in Mac OS X Mountain Lion

So here it comes again. I have recently upgraded to Mountain Lion and for whatever reason, Apple decided to nuked all my previous PHP (among other things) configurations so I have to setup IMAP in PHP again. A simple Google search may point you to this post with detailed instruction for Lion however, some steps have been changed a bit...

Step 1: Install prerequisites You may choose to download Xcode (FREE) from the App Store then go to menu Xcode > menu item Preferences > tab Downloads, select to install Command Line Tools OR you can go to Apple Developer to get it, you may need to login.

Step 2: Compile IMAP Get the IMAP source code from University of Washington website. Please do me a favor and check that website for the latest version, it's good practice. If you that lazy, try to click the "y" to get direct link to 2007f version.

Extract the package and open the Terminal to the new directory before executing these command:

make osx EXTRACFLAGS="-arch i386 -a…

OAuth with Google, Twitter and... Facebook!

This is sick!

Just a few days ago, I ran into OAuth as I want to get my GMail feed based on Google Data API. I succeeded. With a little help of an OAuth open source (here, available in several programming languages).

Then I remember that I once heard that Twitter also uses OAuth as an authentication option so I turned into Twitter and had a good read. Finally, I found out that they are basically the same (hehe, it's obvious since OAuth 1.0 is a worldwide standard). I had an idea of writing a universal class which can handle both Google and Twitter OAuth functionalities. It's not too hard. I took most of the idea from the PHP example (here, PHP only). I also made a small script which accepts URI to send and intercept response from Google & Twitter servers.

At that moment, I was so excited with all the ideas but actually it has no real world benefit so I just left it there... Until today, in the F8 (says "fate") conference of Facebook, I was stunned finding out tha…

What the Hell Is Going on in Vietnam?

I have just read this: What the Hell Is Going on in Indonesia via TechCrunch. The author (Sarah Lacy, one of my favourite) took her chance in Indonesia to find out why there is such a great growth in Internet usage in that South East Asia country. It was a good read.

There are some interesting parts like

I grilled them on some basic questions to bring you a Web-in-Indonesia primer. But before we get to those, here’s what impressed me the most about this small-but-tightly-knit community: It’s incredibly collegial. Plenty of research has shown that the biggest reason Silicon Valley beat Boston as a venture capital and startup hot spot was because culturally it was open, trading employees, funding, mentorship and ideas among competitors. It’s not uncommon to see Web competitors in the Valley having dinner together and generally discussing business challenges, before they go back to the office for some late night coding to bury one another in the market.I laughed so hard reading this!  But…