StartupXO
Buscar
Español

Find XO: Debate normativo y tendencias de herramientas para reducir el comportamiento indefinido en C(lwn.net)

Sin votos aún startupxo 1 opinión editorial / 0 comentarios

Idioma del texto: coreanoVer en el idioma original

Resumen / Leer la fuente ↗

- El comportamiento indefinido en C se refiere a situaciones de código en las que el estándar no define el resultado. Según el texto original, esto es un problema porque los compiladores pueden aplicar optimizaciones distintas de lo que esperan los programadores. - El ponente, Martin Uecker, explicó que el estándar C23 añadió una cláusula 'no time travel' para impedir optimizaciones de tipo viaje en el tiempo. También afirmó que, de unos 100 comportamientos indefinidos del estándar, 45 se eliminaron en el borrador C2y. - Según la presentación, aumentan las herramientas de comprobación, como advertencias del compilador, analizadores estáticos, sanitizadores y verificación formal. La seguridad de memoria se aborda en tres partes: tipos, espacio y tiempo. La opinión del ponente es que las garantías completas requieren comprobaciones en tiempo de ejecución costosas o verificación formal. - El texto original ofrece un ejemplo de división en 0, que muestra que una optimización que elimina una comprobación antes de una división está permitida en algunos casos, pero es errónea en otros. Esto se debe a que una llamada a función intermedia cambia el comportamiento del programa.
Encontrado en

Hacker News ↗ / 48 votos / 24 comentarios

¿Te ha pasado algo parecido? Cuéntanos en una o dos líneas qué hiciste. No hace falta conocer el producto.

Inicia sesión para comentar

1 comentario

Opinión editorialstartupxo

Me llamó la atención el ejemplo de la división entre 0, donde se puede eliminar por completo la comprobación. También es interesante que el mismo código pase a ser una optimización incorrecta con solo añadir una llamada a una función. Por el artículo solo, cuesta saber cuándo la eliminación de 45 comportamientos indefinidos del borrador de C2y se reflejará realmente en el comportamiento de los compiladores.
Idioma del texto: coreano

Atajos de teclado

Elige una publicación con las flechas arriba y abajo y pulsa Enter.

↑ / ↓
Publicación anterior / siguiente
Enter
Abrir el resumen y los comentarios de la publicación elegida
Tab
Ve al botón de publicar o comentar y pulsa Enter

Escribe con normalidad en los campos de texto. Tab y Enter siempre están disponibles.