Antlr Lecture at Conexao Java 2007 3

Posted by Fernando Meyer on November 12, 2007

As I promised at CJ2007 I’m uploading my slides and demo code from my ANTLR lecture. I got really surprised about people’s interest in ANTLR, compiler theory and DSL in general.

You can import the demo in both eclipse or Intellij (or use maven to generate your own ide config). to run the code without an ide just unpack and execute the runconsole.sh you can set variable’s values ex:

x=1

y=2

And execute some expression using these predefined variables ex:

3*(x-y)*(x/y)

when you finish to input your expression just press ctrl+D on unix or ctrl+Z on windows ( EOF char ) to execute it
ps: Thanks to Danilo Sato to help me figure out a Grammar ambiguity, my approach wasn’t the optimal solution to resolve the problem.

*Update, Sami Koivu just sent me the pictures from my lecture,

Explaining the compiler process

Explaining the compiler theory

 

 

Hands on

Hands On

 

 

 

The antlr grammar as itself

The Antlr Grammar file as itself

Drools DLS sample

Drools Sample DSL

Interesting links for today

Posted by Fernando Meyer on July 17, 2007

Open source JBoss Rules gains speed

http://www.infoworld.com/article/07/07/16/jboss-rules_1.html

JBoss also extends business rules engine to nonprogrammers, adds MVEL language support

Essencial Drools blog reading

http://markproctor.blogspot.com/2007/07/essential-drools-blog-reading.html

My IDE through the years

Posted by Fernando Meyer on July 17, 2007

Today, after read something about the Kawa IDE, I tried to remember these I’ve used through the years.

  • Turbo Pascal - late 1997
  • Turbo C++ - 98/99
  • DJGPP - late 99
  • Emacs - 2000 - C++
  • Kawa - 2001 - Java
  • Netbeans- 2002/2003
  • Eclipse - 2003/2006
  • Visual Studio - 2006 - Yes I got a project in C#
  • IDEA intellij + textmate - 2007

Maybe I missed something, but it’s just to get an overview.

Hackers x Talkers

Posted by Fernando Meyer on July 10, 2007

Drop all your computer science books (including that damn algorithm book), forget about you time reading the linux kernel sources and all the time across the night you’ve lost mining the internet looking for useful information, (even that black screen with gray letters using vi + C), now you can be a hacker just binding components and/or creating a web page with a nice css style. It reminds me a nice antonym to the hacker meaning,

Talkers: A person who speaks more than effectively do something useful.

missing the old times

Alligator Eggs

Posted by Fernando Meyer on July 10, 2007

I grab this url from a stashed place in the web http://worrydream.com/AlligatorEggs/ it’s a nice puzzle
alligator game.

This game represents the untyped lambda calculus. A hungry alligator is a lambda abstraction, an old alligator is parentheses, and eggs are variables. The eating rule corresponds to beta-reduction. The color rule corresponds to (over-cautious) alpha-conversion. The old age rule says that if a pair of parentheses contains a single term, the parentheses can be removed.
I’m sure that after 4.0 drools release I’m going to implement this game as a drools DRL.

Would you like to learn a second language?

Posted by Fernando Meyer on January 14, 2007

The English language has been at the forefront of globalization. English is celebrated as the language of global corporate management, the Internet, youth culture and science. At the same time, there appears to be a crisis in foreign language learning amongst native English speakers - it seems that there is no need any more to learn foreign languages if everyone now speaks English. But if you want to learn another language like Spanish, German or even Brazilian Portuguese, you can access these podcasts.
Note: You must have ITunes installed in your computer.
Learn Arabic Learn Chinese Learn Chinese Learn Chinese Learn Chinese English As a Second Language ESL English For Business Beginner French Learn French Learn French Learn French Learn French Verbs Learn German I II III IV Learn German Grammar Learn German Learn Greek Learn Hindi Learn Italian Learn Italian Learn Japanese With Video Japanese for Beginners Learn Japanese Symbols Learn Korean Learn Portuguese Learn Brazillian Portuguese in Spanish Learn Russian Learn Russian For Businesses Russian Literature Learn Spanish Learn Spanish Learn Spanish