Systems Programming
People
Description
The course focuses on the features of the C language and libraries that are particularly useful in programming systems. This includes the memory model, input/output, modularization, its relevant language features, and its relation to the build process. The course will cover:
- Basic features of the C language, including basic types, literals, control structures, basic notion of expression operators and their precedence, structures, functions, parameter semantics, arrays.
- Advanced language features, including a deeper understanding of the memory model, structures and unions, pointers, memory management, execution model.
- Elements of the C standard library, including file I/O, formatted I/O, and memory allocation and deallocation.
- A brief introduction to C++.
- Multi-file projects as well the necessary notions related to the language and to the build process, including symbols, extern declarations, and their relations to compilation units and the linker.
- Modularization in C. Object-oriented programming in C.
- Using make to manage the build process and other non-trivial processes.
- A minimal practical introduction to symbolic debugging.
- System interfaces: network primitives, asynchronous I/O, signals.
Teaching mode
In presence