Articulo de referencia

Error de sintaxis

Un programa BASIC falla debido a un error de sintaxis en su código. Un error de sintaxis es una discrepancia en la sintaxis de los datos introducidos en un sistema informático q...

Un programa BASIC falla debido a un error de sintaxis en su código.

Un error de sintaxis es una discrepancia en la sintaxis de los datos introducidos en un sistema informático que requiere una sintaxis específica. En el código fuente de un lenguaje de programación , un compilador detecta los errores de sintaxis antes de la ejecución del software (en tiempo de compilación), mientras que un intérprete los detecta en tiempo de ejecución . Un error de sintaxis puede deberse a reglas sintácticas distintas a las definidas por el lenguaje de programación. Por ejemplo, introducir una ecuación no válida en una calculadora (un intérprete) constituye un error de sintaxis.

Algunos errores que ocurren durante la traducción del código fuente pueden ser considerados errores de sintaxis por algunos, pero no por otros. Por ejemplo, algunos afirman que una variable no inicializada en Java es un error de sintaxis, pero otros discrepan [ 1 ] [ 2 ] , clasificándola como un error semántico estático . [ 2 ] [ 3 ] [ 4 ]

Ejemplos

En Java

El compilador de Java genera un error de sintaxis en el siguiente código, ya que la cadena no está entre comillas. El proceso de compilación falla y no produce un ejecutable utilizable.

System.out.println ( " Hola Mundo " ) ;

La sintaxis válida es:

System.out.println ( " Hola Mundo " ) ;

En Lisp

El código (add 1 1)es un programa Lisp sintácticamente válido (suponiendo que existe la función 'add') que suma 1 y 1.

Sin embargo, (_ 1 1)resulta en un error de sintaxis lexical error: '_' is not valid. El analizador léxico no puede identificar el primer error; todo lo que sabe es que, después de producir el token LEFT_PAREN, '(' el resto del programa es inválido, ya que ninguna regla de palabra comienza con '_'. Y, (add 1 1resulta en un error de sintaxis parsing error: missing closing ')'. El analizador sintáctico identifica la regla de producción "list" debido al token '(' (como la única coincidencia), y por lo tanto da un mensaje de error; en general, puede ser una gramática ambigua .

Los errores de tipo y los errores de variables no declaradas a veces se consideran errores de sintaxis cuando se detectan en tiempo de compilación (lo cual suele ocurrir al compilar lenguajes fuertemente tipados), aunque es común clasificar este tipo de errores como errores semánticos . [ 5 ] [ 6 ] [ 2 ]

En Python

En el código Python , 'a' + 1contiene un error de tipo porque suma un literal de cadena a un literal entero. Un error de tipo como este puede detectarse en tiempo de compilación ( durante el análisis sintáctico) si el compilador usa reglas separadas que permiten " literal entero + literal entero " pero no " literal de cadena + literal entero ". Sin embargo, es más probable que el compilador use una regla de análisis sintáctico que permita expresiones de la forma " literal o identificador + literal o identificador ", y entonces el error se detectará durante el análisis contextual (cuando se realiza la verificación de tipos). En algunos casos, el compilador no realiza esta validación y estos errores solo se detectan en tiempo de ejecución.

En un lenguaje de tipado dinámico, donde el tipo solo se puede determinar en tiempo de ejecución, muchos errores de tipo solo se pueden detectar en ese momento. Por ejemplo, en Python, a + bla sintaxis es válida a nivel de frase, pero la corrección de los tipos de `a` y `b` solo se puede determinar en tiempo de ejecución, ya que las variables no tienen tipo en Python, solo los valores. Si bien existe controversia sobre si un error de tipo detectado por el compilador debe considerarse un error de sintaxis (semántico estático), los errores de tipo que solo se pueden detectar en tiempo de ejecución del programa siempre se consideran errores semánticos en lugar de errores de sintaxis.

En una calculadora

Error de sintaxis en una calculadora científica

Puede producirse un error de sintaxis en una calculadora (especialmente en una calculadora científica o gráfica ) cuando la ecuación introducida es incorrecta de maneras como las siguientes:

  • Número u operación no válidos
  • Abra el soporte sin cerrarlo
  • Usar el signo menos en lugar del símbolo negativo (o viceversa).

Véase también

Referencias

  1. ¿Problema de sintaxis o de semántica?
  2. 1 2 3 Errores semánticos en Java
  3. Aho, Alfred V.; Monica S. Lam; Ravi Sethi; Jeffrey D. Ullman (2007). Compiladores: Principios, técnicas y herramientas (2.ª  ed.). Addison Wesley. ISBN 978-0-321-48681-3.Sección 4.1.3: Manejo de errores de sintaxis, págs. 194-195 .
  4. Louden, Kenneth C. (1997). Construcción de compiladores: Principios y práctica . Brooks/Cole. ISBN 981-243-694-4.Ejercicio 1.3, págs. 27-28 .
  5. Aho, Alfred V.; Monica S. Lam; Ravi Sethi; Jeffrey D. Ullman (2007). Compiladores: Principios, técnicas y herramientas (2.ª ed.). Addison Wesley. ISBN  978-0-321-48681-3.Sección 4.1.3: Manejo de errores de sintaxis, págs. 194-195 .
  6. Louden, Kenneth C. (1997). Construcción de compiladores: Principios y práctica . Brooks/Cole. ISBN 981-243-694-4.Ejercicio 1.3, págs. 27-28 .
Obtenido de " https://en.wikipedia.org/w/index.php?title=Syntax_error&oldid=1344928863 "