please i need some resources to begin (i am a cs student)
Lisp / Scheme was what we were tasked with using back in uni.
They leant themselves quite well to the task.
Dan
While I once had a text book titled 'modern compiler implementation in Java' I think the professionals still use C. Other than to prove that their language can compile itself.
The answer can be very subjective here. But I'd recommend using ANTLR if you want to write a parser. Currently ANTLR supports C, C#, ActionScript, JavaScript, and Java targets. From my experience the Java version is really stable to use and has been used in many powerful opensource projects namely Drools and Hibernate.
Do you want to write a parser for a general purpose language? In this case writing (and bootstrapping) in the target language is clearly recommended. You should eat your own dogfood.
If you implementing a compiler from the ground up, most programming languages are up to the task. (I've even know of compilers / parsers written in Fortran IV and COBOL, though I wouldn't recommend trying that!)
But if the language you are trying to implement has even a non-trivial grammar, you would do better using a lexer generator and/or a parser generator to implement the front end. You'll get a much faster and more reliable parser.
So, on that basis, suitable programming languages for which a decent parser generator is available. There is a page on Wikipedia that compares a large number of parser generators. I didn't realize there were so many!
If your aim is to learn the techniques behind parsers (and tokenizers), maybe it's better to write one yourself from scratch. You can do this in most programming languages, so you can pick one you're comfortable with.
A while ago, I wrote a series of blog posts that show how easy it is to write a parser for a small fictitional BASIC-like programming language, in C#. I don't want to spam here, so I won't provide a direct link, but if you visit blog (see my profile) and go to the bottom, you can find a link "Writing a parser" in the "my posts"-section.
You'll want to look into parser generators. If you're a CS student then you'll probably want to take a look at the Dragon Book: http://en.wikipedia.org/wiki/Compilers:_Principles,_Techniques,_and_Tools.
It would probably be easiest to build a parser using C# or Java, since you won't have to worry about things like memory management, etc and can focus on the grammar.
A good C# parser generator is GPPG: http://plas.fit.qut.edu.au/gppg/.
Parsers and compilers are two separate problems. For example I might write a compiler in C, but I would never write a parser in C (I would use a parser generator). For very simple parsers where speed isn't a high priority, I might hand-code the parser in Perl or Python, which have good text-manipulation facilities. But for anything beyond a very basic parser, I would use some sort of parser-generation tools. The most commonly-used ones are ANTLR, Coco/R, and Lex/Yacc and the GNU implementation Flex/Bison. My personal preference is Coco/R, but ANTLR seems to be more popular these days.
If you're writing a general-purpose programming language, you may want to consider writing it in itself. There are many benefits to this, including portability (people only have to port the first version of the language) and demonstration of capabilities (parsing is a hard problem, so if it can be done in your language that's a testament to your language). If your language is interpreted, this may not be appropriate for performance reasons.