У мейнстримных ЯПов (C, C++, Java и т.п) обычно есть и спецификация, и reference. Также я знаю, что у того же Раста есть исключительно reference, вследствие чего ходят шутки в духе "Ха, у Раста нет спеков, поэтому в языке сплошной UB!".
Погуглив я узнал, что спецификация описывает именно внутреннее устройство языка и предназначена для людей, разрабатывающих реализации языка. В это же время reference описывает то, как язык использовать, и предназначен для всех: и для разработчиков реализаций, и для обычных программистов, использующих этот язык.
Это всё, конечно, круто, но мне этого не хватает. Хочется узнать, что именно должны содержать эти документы (прям подробности хочу) и, желательно бы, увидеть хорошие примеры.
Возвращаясь к Расту хочется узнать, так ли нужна языку спецификация? Может ли язык полноценно существовать без спецификации? (Ну, вообще я знаю, что может, но хочется услышать именно развернутый ответ)