View.
The syntax refers to the ordering of input, so if you have a language whose value is independent of order, so that a meaningful sentence can be built regardless of the input form, then yes, you can have a language without syntax. Such a language must be somehow distorted or simply determine the value for each possible separable element (token, symbol, etc.) of the Input. You can not depend on the order of such items, but you can depend on their quantity, so something.
In general, this would be rather esoteric, since operational semantics usually depend on the syntax, and for most people it does not immediately become obvious that this dependence is not absolutely necessary. There is no language without syntax:
- Count the characters
a . - Count the characters
b . - Ignore everything else.
- Generate an expression for two counters.
And here is Turing complete:
- Count the characters
a . - Count the characters
b . - Ignore everything else.
- Take a binary representation of the number of characters
a . - Prefix with the number of zeros equal to the number of characters
b . - Rate the result as Jot .
And again, how deep does the rabbit hole go? What is the main unit of your contribution? If these are bytes or characters, then you have a huge number of possible input tokens to work with. If, however, you acknowledge that there is a fundamental order for bits within a character, then you need to reduce the problem further and depend only on the number of 0 bits and the number of 1 bits, which, provided, is still more than enough information from which you can build meaningful the program. Take my Turing example and replace a and b with “clear bits” and “set bit” respectively.
Of course, it was also argued that Lisp has no syntax in some way, since its syntax is a direct representation of the abstract structure of the program, not to mention the entire program as data. In fact, this is not that Lisp and its derivatives are strictly syntactic, since they have a one-to-one correspondence between syntax and value. Just like an integer literal, a Lisp program is actually one large, large literal of code.
source share