While that's true, I'd just add that languages aren't math. They are organic and there's tons of ways to express meaning in a language that literally make no sense if you look at them from a purely grammatical perspective, they're just exceptions to grammatical rules. On the other hand, programming is purely mechanical and technical. If the computer says there's a problem with your code, the computer is always right. There are NO arguments in C++ like the disagreements over verb splitting in English. Like, this phrase, "To very quickly run away" is considered incorrect by some people because "To run" is supposed to always be one (1) unit that can't be broken up by adverbs.
It's been a long while since I did a linguistics syntax course so I can't give a super thorough explanation of it, but they reduce human languages to be just as restrictive as computer languages.
Sentences that have two possible interpretations are basically the result of putting parenthesis in different places, so the structure of the sentence is different even if the sequential string of words is identical. Garden path sentences are fun examples of people's parenthetical instincts being subverted.
The thing about splitting verbs is just head movement. Basically, you can draw sentences as binary trees to show the relationships between the words in the sentence. The words have classes (kind of like parts of speech, but more specific than that), and there are rules about which classes of nodes are allowed to go into other nodes. This is like when a function requires arguments of specific types.
Often times, the syntax trees will have nodes that appear to be empty, but we know that the nodes are there because of the type compatibility thing. If the types don't match up, there's some number of invisible null-only layers between the words that we can see. Verb splitting is not random, it occurs when a verb uses those null nodes to climb the syntactic tree to another position in the sentence. The OK-ness of that movement varies between people/languages, but there are also degrees of wrongness and some people who say it's wrong will still say that it makes sense.
If you can put an explicit word in one of the null nodes to "block" the verb from moving but still try to split the verb, then the result is an even more wrong sentence that sounds wrong to everyone - even the people who are OK with verb splitting balk at it. Due to Universal Grammar, this can be seen across different languages too, and the sentences used to probe the phenomena are often not even in English. (we can still more or less figure it out because of the data type compatibility thing; even if the words look like nonsense to us we still have the basic concept of what a noun and a verb are).
I would try to give you sample sentences to demonstrate, but again, it's been a while, they're not usually in English, and quite honestly doing grammar badly in purpose is
hard. If you actually care, maybe Google syntax head movement and hope someone was forced to do a presentation for class.
E: I will add that there is meaning that doesnt fit under grammar like idioms and metaphors, but verb splitting isn't one of them. Verb splitting is just people having different configurations set for when head movement is legitimate.