Introduction to programming languages. History and development of programming languages. Structures and meanings of the languages: CFG, BNF, recursive descent parsing, attribute grammars, Lexical and syntactic analysis using Lex and Yacc. Basic properties of the variables: name, address, type, value, scope and lifetime. Type checking. Analysis of basic and compound data types. Arithmetic and logical statements, assigning. Control structures. Usage and implementation of functions, parameter passing methods. Data abstraction. Object oriented, functional and logic programming languages.