[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: LIBROS PROGRAMACION C



Ipsissima verba Jose Miguel:
> Gracias a todos por vuestros consejos, al final me he decidido por
> EL LENGUAJE DE PROGRAMACION C, ya lo tengo pedido y la semana que
> viene me llegara, aunque mi intencion es comprar todos los que me
> habeis recomendado, pero roma no se construyó en dos dias, asi que
> uno detrás de otro ;-)

Es una buena elección.  Sin embargo nota que (a reserva de que alguien
me corrija, cosa que le agradeceré) ese libro es muy viejo y no
describe un C moderno precisamente, sino el dialecto original que en
el medio se conoce como "K&R".

En general nadie usa ya la sintaxis de K&R, pero todos los
compiladores que conozco la entienden.  Y la visceversa no
necesariamente aplica (maldito %$/#& aborto de compilador de
HP-UX...).

El C moderno, usado esencialmente por el mundo entero y su perro, es
algo cercano al lenguaje definido en el documento ANS X3.159-1989,
ratificado en Diciembre de 1989 ("ANSI C").  Digo "cercano" porque no
faltan las "extensiones" (¡cof! ¡cof!  *Microsoft* ¡cof!), las
implementaciones deficientes y las interpretaciones "creativas" del
estándar (que además no ayuda mucho, pues deja demasiadas cosas a
criterio de los implementadores, EMO).  Ésta es una de las principales
razones detrás de la existencia de monstruosidades como autoconf.

(Por cierto, en este mismo hilo, Tresseth anotó "ANSI C" en su
recomendación del libro de K&R, cosa que me resultó curiosa.  ¿Hay una
edición actualizada del libro de K&R, entonces?)

El C "post-moderno" es el definido en el documento ISO/IEC 9899,
adoptado por la ISO en 1999 ("C99").  Muchos compiladores aún se
atragantan con las extensiones (e.g. variables automáticas con "scope"
de bloque, no sólo de función; arreglos de tamaño variable; etc.) , y
hay bastante código ANSI allá afuera que no es portable a C99 con solo
recompilarlo (C99 agrega restricciones un tanto rococó en lo que toca
a los "casts" de apuntadores, por ejemplo).  GCC 3 se apega bastante,
si no es que del todo, a ese estándar.

En fin.  Nada de esto es muy importante, realmente, puesto que los
conceptos y la mayor parte de la sintaxis siguen siendo los mismos.
Las diferencias son relativamente superficiales.  E.g. la definición
de una función en C K&R:

  int funcion(a, b)
    int a;
    int b;
  {
    ....
  }

Y en C ANSI/ISO:

  int funcion(int a, int b)
  {
    ...
  }

Cosas por el estilo.

Mi recomendación es que, además del libro de K&R te consigas una copia
del estándar C99.  Eso no es necesariamente fácil, porque no está
disponible al público general, te lo venden (hazme el fabrón cavor).
Yo uso uno de los últimos "drafts" que sí se hicieron públicos.  Si te
interesa, te lo envío.

El estándar es denso y muy difícil de "parsear" por mortales vulgares
y silvestres como nosotros.  Pero yo creo que usando el K&R como guía,
y el C99 como referencia, estarás muy bien armado para aprender y
entender C.

Que te sea leve.

 -CR

-- 
Ceterum censeo: SCO delenda est.



Reply to: