Разработчик языка программирования создает только стандарт?
Язык ведь определяет его транслятор?
Вообще, это плохо. Конечно, у некоторых языков есть популярные стандартные реализации, на которые все равняются и которые как бы задают стандарт языка де-факто, но записанный стандарт всегда лучше стандарта-по-реализации. Потому что всегда есть, куда посмотреть, и бага реализации не превратится в фичу языка: почитайте про typeof null === 'object' в Джаваскрипте, это отличный пример, когда в стандарте языка закрепилась бага реализации.
С другой стороны, при написании стандарта обязательно делаются тестовые (пусть и не вполне стабильные, но все-таки рабочие) реализации. Иначе можно стандартизировать нерабочие или нереализуемые концепции и фичи. Особенно это касается сложных языков вроде C++, где при добавлении новой фичи нужно учесть кучу моментов и состыковать её с уже существующими возможностями языка.Когда говорят, что Страуструп создал ЯП, это значит он создал стандарт и рекомендации для компилятора или еще и сам компилятор?
Точного определения понятия "создать язык программирования" мне не известно. Те же плюсы сначала были Си с классами, и классы, ЕМНИП, были реализованы с помощью макросов. Можно уже тогда было сказать, что был создан C++ или еще нет? А может, C++ был создан когда была написана первая программа на нём? Или когда был разработан первый стандарт? Поэтому лучше говорить конкретно - "была создана формальная спецификация языка" или "была создана первая реализация".
Для некоторых эзотерических языков (например, Malborge), первые программы были написаны гораздо позже создания самого языка, причём в автоматическом режиме. Это конечно извращенный пример, но он (как и сам вышеупомянутый язык) показывает относительность понятия "создание языка".
Язык ведь определяет его транслятор?
Язык - это множество цепочек над алфавитом. Чтобы задать язык, нужно составить грамматику, порождающую все цепочки языка.
Транслятор - это программа, переводящая цепочку одного языка над одним алфавитом в цепочку другого языка над другим алфавитом. При этом цепочки должны быть семантически эквивалентными.
Поэтому язык представляет из себя грамматику, которую составляют и для которой реализуют транслятор.
Например, ассемблер - это язык (грамматика). Цепочка инструкций ассемблера с помощью транслятора транслируется в цепочку кодов машинного языка.
А стандарт - это документ, фиксирующий грамматику, которому потом должны подчиняться все реализации, которые реализуют этот язык.