TAR is not compressed. This is why you see tar.gz, tar.bz2, etc... Because .gz
is gzip and .bz2 is bzip2. These are stream compression formats, tar stores
files as a single stream, and running that stream through a stream compressor
gives you a compressed archive.
ZIP is a compressed archive format that operates differently.
.elf isn't an extension though, Ubuntu reads the file header in the file to
determine its type for most of the time. You'll notice that looking in your
/usr/bin directory, they are executables, sometimes shell scripts will have an
"sh" extension, or python "py" and "php" for PHP. But this isn't required.
Linux also rely on the execute bits in the file permissions, if it doesn't have
a execute bit, Linux won't execute it.
http://en.wikipedia.org/wiki/Tar_(file_format)