1) PHP is an interpretted language. This means that PHP files are basically text files that begin with <?php and end with ?> and have a .php extension. The .php tells the server that they need to go through the PHP engine and the <?php and ?> tells the engine that it actually has to do stuff. You can read the entire source for phpbb if you feel so inclined, just grab everyone's favorite text editor Notepad.

2) Host that have PHP and MySQL will advertise the fact. If they don't tell you they have it then probably they don't. If a host doesn't have them installed, it is very unlikely that you would be able to install them yourself. And you certainly wouldn't be able to install them simply by ftp'ing the files for MySQL and PHP there, you'd need to ssh in to run the configure and make commands. You'd probably pay more for a host that allows you to install mysql and php yourself than you would for a host that has it pre-installed, silly but true. You could install Apache/MySQL/PHP on your computer just to fool with it, just becareful as that's how I ended up learning PHP.

Peace,
Dhej