C Programming: The Tutorial is the ideal book for learning the C language for students, IT professionals or autodidacts without assuming any prior programming experience. Concepts are smoothly introduced while thoroughly described with a great number of examples and figures. The author willfully takes more » the side of focusing on basic and short examples highlighting the features being described instead of long and wearing examples.
Trickier and essential points are not fully conveyed in a single “dose” as it is generally done. Instead, they are described with different perspectives in different sections, each time adding new pieces of information in order to tame them step-by-step efficiently.
The book details the most important features of the C language and C libraries as specified by the standards C90 and C99. A dedicated chapter introducing C11 gives the most useful new features that can be exploited by beginners and intermediate programmers in C.
C Programming: The Tutorial not only does it set the learning up a sound basis but goes beyond the description of the C language. If, in the first part of the book, it describes the C language, it provides valuable material in the last three chapters in which it explains, in Linux and UNIX systems, how to compile C program with gcc, manage compilations with make, improve programs with additional tools such as GDB, cope with the versions of programs with SCCS and RCS. « less
This book is an assembly language programming textbook introducing programmers to 64 bit Intel assembly language. The book is intended as a first assembly language book for programmers experienced in high level programming in a language like C or C++. The assembly programming is performed using the yasm more » assembler (much like the nasm assembler) under the Linux operating system. The book primarily teaches how to write assembly code compatible with C programs.
The reader will learn to call C functions from assembly language and to call assembly functions from C in addition to writing complete programs in assembly language. The gcc compiler is used for C programming. The book starts early emphasizing using the gdb debugger to debug programs. Being able to single-step assembly programs is critical in learning assembly programming. Highlights of the book include doing input/output programming using the Linux system calls and the C library, implementing data structures in assembly language and high performance assembly language programming.
A companion web site has a collection of PDF slides which instructors can use for in-class presentations and source code for sample programs. Early chapters of the book rely on using the debugger to observe program behavior. After a chapter on functions, the user is prepared to use printf and scanf from the C library to perform I/O. The chapter on data structures covers singly linked lists, doubly linked circular lists, hash tables and binary trees. Test programs are presented for all these data structures. There is a chapter on optimization techniques and 3 chapters on specific optimizations. One chapter covers how to efficiently count the 1 bits in an array with the most efficient version using the recently-introduced popcnt instruction.
Another chapter covers using SSE instructions to create an efficient implementation of the Sobel filtering algorithm. The final high performance programming chapter discusses computing correlation between data in 2 arrays. There is an AVX implementation which achieves 20.5 GFLOPs on a single core of a Core i7 CPU. « less
Everything you need to know about using the GNU Compiler Collection and related tools
The GNU Compiler Collection (GCC) offers a variety of compilers for different programming languages including C, C++, Java, Fortran, and Ada. The Definitive Guide to GCC, Second Edition has been revised to reflect the changes made in the most recent major GCC release, version 4. Providing in-depth information more » on GCC’s enormous array of features and options, and introducing crucial tools such as autoconf, gprof, and libtool, this book functions as both a guide and reference.
This book goes well beyond a general introduction to GCC and covers key programming techniques such as profiling and optimization that, when used in conjunction with GCC’s advanced features, can greatly improve application performance. This second edition will prove to be an invaluable resource, whether youre a student seeking familiarity with this crucial tool or an expert who uses GCC on a daily basis. « less
The Definitive Guide to GCC is a comprehensive tutorial and guide to using GCC, the GNU Compiler Collection. GCC is quite simply the most-used and most powerful tool for programmers on the planet. GCC has long been available for most major hardware and operating system platforms and is often the preferred more » compiler for those platforms. As a general-purpose compiler, GCC produces higher quality, faster performing executable code with fewer bugs than equivalent offerings supplied by hardware and software vendors. GCC, along with GNU Emacs, the Linux operating system, the Apache web server, the Sendmail mail server, and the BIND DNS server, is one of the showpieces of the free software world and proof that sometimes you can get a free lunch.
In The Definitive Guide to GCC, authors William von Hagen and Kurt Wall teach you how to build, install, customize, use, and troubleshoot GCC 3.2. This guide goes beyond just command-line invocations to show you how to use GCC to improve the quality of your code (with debugging, code profiling, and test code coverage), and how to integrate other GNU development tools, such as libtool, automake, and autoconf, into your GCC-based development projects. « less