This course illustrates the key features of C language, with emphasis to modern programming style for scientific and technical applications particularly suitable to HPC environments. After a brief introduction on the C fundamentals we will discuss its flaws and strengths and the conceptual guidelines that allowed C to be one of the most widespread, efficient and general purpose languages even decades after its birth. We will show common idioms and best practices focusing on scientific and technical use cases.
Target audience
Researchers and programmers interested in reading C codes, writing new programs, or modifying and extending existent ones with portable C code.
Anyone interested in writing high performance codes at a professional level.
Topics
An overview of C language;
our first C program and the tools needed to write it; the preprocessor; basic data types and aggregates; artihmetics; dynamic memory management and strings; I/O textual and binary; robustness and efficient code writing;
Pre-requisites
A basic knowledge of computer architecture and of any programming paradigm is recommended. A basic knowledge of Unix environment would be helpful.
Target audience
Researchers and programmers interested in reading C codes, writing new programs, or modifying and extending existent ones with portable C code.
Anyone interested in writing high performance codes at a professional level.
Topics
An overview of C language;
our first C program and the tools needed to write it; the preprocessor; basic data types and aggregates; artihmetics; dynamic memory management and strings; I/O textual and binary; robustness and efficient code writing;
Pre-requisites
A basic knowledge of computer architecture and of any programming paradigm is recommended. A basic knowledge of Unix environment would be helpful.