I appreciate the flexible structure of Eclipse. I really want to know what programming language is used to write such software, and what design concepts are used in it to make it so flexible.
It's open source - you can download it and examine to your heart's content.
One way to visualize programming/markup languages used to write a piece of free or open source software is using Ohloh. Ohloh's code analysis for Eclipse shows that many languages were used, but mostly Java, XML, and HTML.
When you look at http://dev.eclipse.org/viewcvs/index.cgi/ you can actually read the source. That should answer all your questions.
Eclipse is written in Java. The GUI toolkit is called SWT (Standard Widget Toolkit) which is also written in Java, but with small portions in languages like C to allow the native binding.
The architecture is highly plugin-based. With the exception of a minimal core, everything is a plugin. The plugin can provide extension points that other plugins can implement. With this mechanism, the mesh of plugins allows the high flexibility of the overall system. Wikipedia provides a nice summary of the plugin architecture.
The source of Eclipse is (to a large extend) very clean and provides lots of nice use s for the central design patterns, like Vistitors, Adapters, and so on.