Pure specification itself is useless without actual implementation (which does the job), so, trying to write such specification (in a natural language) has no practical sense.
A specification describes the externally observable behavior, constraints, and properties of a system. That's independent of how those properties are implemented.
An implementation is a concrete realization of a specification, that achieves the specified behavior using particular algorithms, data structures, and operational mechanisms.
> Pure specification itself is useless without actual implementation (which does the job), so, trying to write such specification (in a natural language) has no practical sense.
That's a non sequitur, i.e. the part of your sentence after the commas doesn't follow from the first part.
"Pure specification itself" has a purpose, which is to guide implementations. That's the "practical sense".
If you want a specification from source code, you need to reverse engineer it. Although that’s a bit easier now, with LLMs.