CITS2002 Systems Programming  
next CITS2002 CITS2002 schedule  

What have we learnt about C?

C is:

  • a good general purpose programming language (providing the necessary features to define and store data, perform calculations, and provide control-flow to sequence our programs), and

  • an excellent systems programming language (providing well-defined and well-documented interfaces to system-level APIs for system-calls and support functions).

C is a procedural programming language, not an object-oriented language like Java, Objective-C, or C#.

C programs can be described as "good" programs, if they are:

  • well designed,
  • clearly written and (hence) easy to read,
  • well documented,
  • use high level programming practices,
  • written with portability in mind, and
  • are well tested.

Of course, the above properties are independent of C, and are offered by many high level languages.

  • C has programming features provided by most procedural programming languages - strongly typed variables, constants, standard (or base) datatypes, enumerated types, user-defined types, aggregate structures, standard control flow, recursion, and program modularization.

  • C does not offer OO's classes or objects, nested functions, subrange types, run-time error detection, container data-structures (lists, dictionaries, tuples, sets), and only recently added a Boolean datatype.

  • C does, however, have separate compilation, conditional compilation (through its pre-processor), bitwise operators, pointer arithmetic, and language independent input and output.

 


CITS2002 Systems Programming, Lecture 23, p1, 17th October 2023.