Error de compilación


De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

El error de compilación se refiere a un estado en el que un compilador no puede compilar una parte del código fuente de un programa de computadora , ya sea debido a errores en el código o, más inusualmente, debido a errores en el propio compilador. Un mensaje de error de compilación a menudo ayuda a los programadores a depurar el código fuente. Aunque las definiciones de compilación e interpretación pueden ser vagas, generalmente los errores de compilación solo se refieren a la compilación estática y no a la compilación dinámica . Sin embargo, es importante tener en cuenta que la compilación dinámica todavía puede tener técnicamente errores de compilación, [ cita requerida ] aunque muchos programadores y fuentes pueden identificarlos como errores en tiempo de ejecución. La mayoría de los compiladores justo a tiempo , como el motor Javascript V8 , se refieren de manera ambigua a los errores de compilación como errores de sintaxis, ya que los buscan en tiempo de ejecución . [1] [2]

Ejemplos de

Errores comunes de compilación de C ++

  • Identificador no declarado, por ejemplo:

doy.cpp: In function `int main()': doy.cpp:25: `DayOfYear' undeclared (first use this function)[3]

Esto significa que la variable "DayOfYear" está intentando utilizarse antes de declararse.

  • Función común no declarada, por ejemplo:

xyz.cpp: In function `int main()': xyz.cpp:6: `cout' undeclared (first use this function)[3]

Esto significa que el programador probablemente olvidó incluir iostream .

  • Error de análisis, por ejemplo:

somefile.cpp:24: parse error before `something'[4]

Esto podría significar que falta un punto y coma al final de la declaración anterior.

Errores internos del compilador

Un error interno del compilador (comúnmente abreviado como ICE) es un error que ocurre no debido a un código fuente erróneo, sino a un error en el propio compilador. A veces se pueden solucionar haciendo cambios pequeños e insignificantes en el código fuente alrededor de la línea indicada por el error (si tal línea está indicada), [5] [se necesita una fuente mejor ] pero a veces se deben hacer cambios más grandes, como refactorizarel código, para evitar ciertas construcciones. El uso de un compilador diferente o una versión diferente del compilador puede resolver el problema y ser una solución aceptable en algunos casos. Cuando se alcanza un error interno del compilador, muchos compiladores no generan un error estándar, sino que generan una versión abreviada, con archivos adicionales adjuntos, que solo se proporcionan para errores internos del compilador. Esto es para asegurar que el programa no se bloquee al registrar el error, lo que haría que la solución del error fuera casi imposible. Los archivos adicionales adjuntos para errores internos del compilador generalmente tienen formatos especiales que se guardan, como .dumppara Java . Estos formatos son generalmente más difíciles de analizar que los archivos normales, pero aún pueden tener información muy útil para resolver el error que causa el bloqueo.[6]

Ejemplo de un error interno del compilador:

somefile.c: 1001: error interno del compilador: falla de segmentación
Envíe un informe de errores completo,
con fuente preprocesada si corresponde.
Consulte <http://bugs.gentoo.org/> para obtener instrucciones.

Referencias

  1. ^ "Errores | Documentación de Node.js v7.9.0" . nodejs.org . Consultado el 14 de abril de 2017 .
  2. ^ "SyntaxError" . Red de desarrolladores de Mozilla . Consultado el 14 de abril de 2017 .
  3. ^ a b "Errores comunes del vinculador y del compilador de C ++" . Archivado desde el original el 16 de febrero de 2008 . Consultado el 12 de febrero de 2008 .
  4. ^ "Errores del compilador, vinculador y tiempo de ejecución" .
  5. Cunningham, Ward (18 de marzo de 2010). "Error del compilador" . WikiWikiWeb . Consultado el 14 de abril de 2017 .
  6. ^ జగదేశ్. "Analizando un bloqueo de JVM" . Consultado el 15 de abril de 2017 .
Obtenido de " https://en.wikipedia.org/w/index.php?title=Compilation_error&oldid=1007001360 "