Libros recomendados sobre lenguaje C
Comprensión profunda de los sistemas informáticos (edición revisada)
Este libro es adecuado para programadores que desean escribir programas más rápidos y confiables. Al comprender cómo se asignan los programas al sistema y cómo se ejecutan, los lectores pueden comprender mejor por qué los programas se comportan como lo hacen y cómo se causan las ineficiencias. En términos generales, un sistema informático incluye hardware de procesador y memoria, compilador, sistema operativo y entorno de interconexión de red. A través de la perspectiva de un programador, los lectores pueden comprender profundamente que aprender el funcionamiento interno de los sistemas informáticos les ayudará aún más en su trabajo futuro como investigadores e ingenieros en informática. También ayuda a sentar las bases para futuros estudios de arquitectura informática, sistemas operativos, compiladores e interconexiones de red.
Los temas principales de este libro incluyen: representación de datos, representación a nivel de máquina de programas C, arquitectura de procesador, optimización de programas, jerarquía de memoria, vinculación, flujo de control de excepciones, memoria virtual y administración de memoria, a nivel de sistema. E/S, programación de red y programación concurrente. El material cubierto en este libro se centra en cómo estos aspectos afectan a los programadores de aplicaciones y sistemas. Por ejemplo, cuando se habla de representación de datos, este libro propone que el método de representación utilizado para representar números es limitado. Puede representar aproximadamente números enteros y números reales, pero este método de representación es limitado y los programadores deben comprenderlo. Cuando se trata de almacenamiento en caché, el libro analiza cómo el orden de las variables de bucle en el código matricial afecta el rendimiento del programa. Al analizar las interconexiones de red, este libro describe cómo los servidores simultáneos pueden manejar de manera eficiente las solicitudes de múltiples clientes.
Este libro está basado en máquinas compatibles con Intel (IA32) y ejecuta programas C en Unix o sistemas operativos relacionados (como Linux). Aunque el libro incluye algunos consejos para ayudar a los lectores a convertir Java a C, aún requiere que los lectores tengan cierta comprensión de C o C++.