Довольно сложный процесс. Код, написанный в более-менее понятной человеку (программисту, в частности) форме с помощью трансляторов (компиляторы, интерпретаторы и т.д.) переводится в набор инструкций промежуточного языка (как правило), а затем - в малопонятный человеку бинарный код. Если вы попытаетесь открыть в каком-нибудь текстовом редакторе запускаемый файл (а это и есть бинарный код плюс всякие специфичные для запускаемой среды данные), то увидите там всякие кракозябры: так редактор попытается интерпретировать исполняемый код.
Грубо говоря, код:
if ( a > 10 )
do_something();
сперва превратится во что-то типа:
load r1,0x100500;
cmp $r1, 10;
call do_something
где код имеет все еще понятную форму (сможете посмотреть в блокноте:))
А затем, если посмотреть как это будет расположено в памяти:
110010101000010101000 (если откроете в блокноте, то увидите их символьную интерпретацию, всякие там загогулины и прочее).
Так вот, такой код уже вполне пригоден для исполнения процессором. После прочтения последовательности, в которой закодирована очередная инструкция, происходит ее исполнение - программа выполняется до тех пор, пока не будет достигнут конец.
Что касается кода для сайтов, то тут браузер принимает html/css/js/др. файлы и начинает исполнять тот код, который там написан. Прочел <b>text</b> - нарисовал "text" жирным, ну и так далее.
Различие языков - также целая тема. Их классифицируют по специализации (общего назначения, web, для баз данных и т.д.), по уровню - низкоуровневые (как например тот самый, "промежуточный" язык), высокоуровневые (первый кусок кода из моего примера); по типу трансляции: компилируемый/интерпретируемый (не буду пояснять, сами почитаете :)); по парадигме: декларативные, императивные, логические и т.д. - это определяет своего рода стиль логических рассуждений при написании программ; Существует еще много всяких классификаций.
Все это, конечно, сильно упрощенное объяснение - не судите строго, в двух словах тут трудно все разложить по полочкам, слишком объемный вопрос.
Если на пальцах, то компьютер это иностранец понимающий свой язык, программа его язык, а программист переводчик с человеческого на компьютерный
HTML - язык разметки страниц