The universality - or otherwise - of human language constructs continues to be hotly debated. From this article : "cultural evolution is the primary factor that determines linguistic structure, with the current state of a linguistic system shaping and constraining future states.".
The whole debate relates to programming languages, too, in my opinion, as these are, no less than Gaelic or Japanese, linguistic creations of mankind. I think of it this way : the concepts of variable binding and conditional branching occur in every programming language aimed at von Neumann architectures because you cannot be Turing complete without set and branch-test operations. (Right?)
So the existence of these two in the syntax, or underlying parse tree, or underlying machine code, of nearly all programming languages, is to be expected. However, if you find yourself swimming in curly braces (Java, Lua, C++), you are probably, culturally speaking, in C or some descendant thereof. If there are strings everywhere, you are in Snobol or some descendant thereof. Etc.
Now, if in final analysis, nothing is truly universal to these languages other than the concept of a universal Turing machine, then *that*, arguably, is the shared construct - not any linguistic device used to leverage the construct. Having said that,there is no way to wield the construct without creating syntax so the difference is, perhaps, moot. Think of it like gravity. It impacts mass. So, to wield gravity to your advantage, you need mass. The end is gravity, but the means to the end is mass...
"O body swayed to music, O brightening glance,
How can we know the dancer from the dance?" -- W.B. Yeats