Mailinglist Archive: opensuse-es (1168 mails)

< Previous Next >
Re: [opensuse-es] Rutina sencilla " for... in... do") :-)
  • From: "Carlos E. R." <robin.listas@xxxxxxxxxxxxxx>
  • Date: Sat, 11 Apr 2009 01:03:40 +0200 (CEST)
  • Message-id: <alpine.LSU.2.00.0904110047080.10101@xxxxxxxxxxxxxxxx>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1



El 2009-04-10 a las 21:46 +0200, lluis escribió:

On Friday 10 April 2009 21:04:11 Carlos E. R. wrote:
a) Como son añejos, utilizan tecnicas de programacion obsoletas, que el
compilador ya no acepta, por ende se rompe y se debe gastar tiempo en
corregir el codigo

Eso es un fallo del compilador. El compilador nunca debió haber aceptado
esas técnicas de programación incorrectas, pero lo hacía porque el
compilador mismo estaba incompleto, sin terminar de hacer (es el caso del
GCC). Otros compiladores, cuando hacen eso, suelen añadir también switches
de compatibilidad, para aceptar técnicas antiguas aún sabiendo que son
incorrectas ahora.

No entiendo la expresión "técnicas de programación obsoletas".

Existe una definición formal de la mayoría de lenguajes, o al menos de los mas
recientes.

Si, la hay, y algunos lenguajes tienen una organización que se encarga de consensuarlo y definirla.

La definición original de C era una hoja.


Cualquier expresión que no cumpla dicha definición debería estar considerada
un error.

Esa es la teoría, en efecto, pero el C da una gran libertad, y muchas veces los errores no los detecta el compilador. Hay muchas cosas que se sabe que son errores, o al menos, maneras incorrectas de hacer las cosas, pero el compilador no te lo advierte. En el caso de GCC pues han ido añadiendo comprobaciones con cada versión.

Lo que ocurría muchas veces es que el compilador, si se encontraba con algo que no estaba claro, pues hacía una suposición, en vez de avisarte y parar.


- -- Saludos
Carlos E.R.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (GNU/Linux)

iEYEARECAAYFAknf0E4ACgkQtTMYHG2NR9UqPgCaAvcxhqLUOQBCEkTgU6CwJHs9
SIcAnREFSnAb0LOuCDURfEtjvLTg38xD
=9vlr
-----END PGP SIGNATURE-----
< Previous Next >