Question: I'm a computer science student. Currently we are learning the Ada programming language. The compilation is very straightforward for now: `gnatmake source.adb` so I don't have any idea of what gnatmake actually does or is (script? binary? something else?). Anyway, I was wondering in what language the compiler itself (also the parser, if written in a different language) was coded?

Answer: 
Within the Ada part of the GCC source tree (`gcc/ada`), there are ~2000 Ada source files and ~50 C source files. The C acts as glue to the OS and to other parts of GCC. Some (at least 50) of the Ada source files are for tools such as gnatmake.

You can see more about what `gnatmake` does by using the `-v` option in various ways: the ones I use most often are `gnatmake -v source.adb` for an overview, `gnatmake source.adb -cargs -v` to show how the compiler is called, `gnatmake source.adb -largs -v` for an overview of what the GNAT linker `gnatlink` does, and `gnatmake source.adb -largs -Wl,-v` to show in detail how `gnatlink` calls the system linker.
To answer the part of the question "What is it?" and asuming you are on a unix/linux type system: 

```
$ which gnatmake
/usr/bin/gnatmake
$ file /usr/bin/gnatmake
/usr/bin/gnatmake: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped

```

... so it is a binary :)