Search for contacts, projects,
courses and publications

Systems Programming

People

Carzaniga A.

Course director

Di Lauro F.

Assistant

Polverino P.

Assistant

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