Supongo que depende de lo que entiendas por sintaxis válida.
Puedes diseñar un lenguaje que acepte cualquier cadena pero que ignore cualquier cosa que no haya recibido un significado específico. Básicamente, esto equivale a decir "Me desharé de los errores de sintaxis, pero al decir que no son errores", bastante inútil y enormemente indeseable por muchas razones.
Más allá de eso, la única forma en que podría tener un lenguaje que no tuviera errores de sintaxis sería que todas las cadenas posibles tuvieran una instrucción / uso válido asociado. La única forma en que puedo ver eso es tener todas las operaciones como caracteres individuales y garantizar que cada uno tenga una operación asignada.
Hay un millón de cosas que están mal con esto: obviamente no hay palabras reservadas, se trata de dónde se usa en contexto y, como resultado, sería básicamente ilegible y, aunque es inmune a los errores de sintaxis, es mucho más probable que experimente cualquier otro tipo de error.
Teóricamente posible (AmmoQ lo pone mucho más ordenado que yo) pero totalmente indeseable.