Study of the general concepts underlying various programming languages and the most important language tools using the ADA language. Topics: concept of data types (type constructions, subtypes, types with parameters, aggregates, private types, packages). Subprograms (procedures and functions), parameters, overloading. Program structure, compilation unit, subunit. Elaboration of a declaration (static, dynamic). Scope and visibility, block structure, global and local variables. Exception handling. Concept and use of generic. Support of parallel programming (task object, task type). Object oriented features (Ada95). Predefinit library units.
Overview of the classical imperative programming languages. The evaluation of the programming languages. Historical background. Common elements of imperative languages: lexical units, constants, expressions, evaluation strategy of expressions, statements, scope and life. Modules, subprograms, parameter passing. Types and type checking. FORTRAN, COBOL, Algol 60, PL/1, Simula 67, Algol 68. Detailed discussion of the C language.