460-2018/01 – Programming Languages and Compilers (PJP)

Gurantor departmentDepartment of Computer ScienceCredits6
Subject guarantorIng. Marek Běhálek, Ph.D.Subject version guarantorIng. Marek Běhálek, Ph.D.
Study levelundergraduate or graduateRequirementOptional
Year2Semestersummer
Study languageCzech
Year of introduction2010/2011Year of cancellation2021/2022
Intended for the facultiesFEIIntended for study typesBachelor
Instruction secured by
LoginNameTuitorTeacher giving lectures
BEH01 Ing. Marek Běhálek, Ph.D.
Extent of instruction for forms of study
Form of studyWay of compl.Extent
Full-time Credit and Examination 2+2
Part-time Credit and Examination 8+2

Subject aims expressed by acquired skills and competences

Students get an overview of the area of programming, main programming paradigms (imperative, functional, logic) and their typical representatives. They also get some theoretical body of knowledge and practical experience of compiling methods, especially concentrated to the source code analysis and intermediate code synthesis phases. Students develop practical abilities to use compiler generators like JavaCC. After this lectures student should be able to effectively implement analyzers of a structured text data or of simple languages. Also they should understand concepts and constructions common for today's programming languages.

Teaching methods

Lectures
Tutorials
Project work

Summary

Students get an overview of the area of programming, main programming paradigms (imperative, functional, logic) and their typical representatives. They also get some theoretical body of knowledge and practical experience of compiling methods, especially concentrated to the source code analysis and intermediate code synthesis phases. Students develop practical abilities to use compiler generators like JavaCC.

Compulsory literature:

Torben Mogensen: Basics of Compiler Design - freely available at http://www.diku.dk/hjemmesider/ansatte/torbenm/Basics/

Recommended literature:

Aho, A. V., Lam M.S., Sethi, R., Ullman, J. D.: Compilers. Principles, Techniques, and Tools. Addison Wesley; 2nd edition (September 10, 2006). ISBN 0321486811.7 Pierce B.C.: Types and Programming Languages, MIT Press, 2002, ISBN: 9780262162098.

Way of continuous check of knowledge in the course of semester

Conditions for credit: At least 21 points required. Students obtain points based on solution of two projects.

E-learning

Other requirements

It is expected, that students will be able to actively create programs in programming language Java or C#.

Prerequisities

Subject has no prerequisities.

Co-requisities

Subject has no co-requisities.

Subject syllabus:

Lectures: Introduction: Goals and contents of the course, requirements, organization, resources. Programming languages classification. Usage and applications of compilers. Source and target languages. History of programming languages and compilers: theoretical aspects, first programming languages and compilers, high-order programming languages, structured programming, modular languages, object-oriented languages, scripting languages. Functional and logic programming languages: Declarative style of programming, advantages and disadvantages of this approach, basics of Lambda Calculus, implementation of practical examples in Haskell. Scripting languages: description of differences between traditional languages and scripting languages, description of some representatives of scripting languages, practical examples, overview of PHP. Imperative programming languages: basic principles, imperative programming languages. Examples of different programming paradigms. Object-oriented programming: basic principles, less known object-oriented programming languages. Structure and functions of a compiler: Source code models, transformations. Compiler organization - phases, passes. One-pass and optimising compilers. Utility programs. Testing and maintenance of a compiler. Lexical analysis: Function of a scanner, symbol representation. Regular languages, finite automaton, regular expression. Scanner implementation. Parsing: Goals and methods of the syntactic analysis. Top-down and Bottom-up analysis. LL(1) grammars, FIRST and FOLLOW set computation. Parsing table. Parser implementation: Pushdown automaton for LL(1) languages. Recursive descent analysis. Syntax directed translation: Translation grammar, attribute translation grammar. Implementation of attribute translation during top-down parsing. Compiler Compiler JavaCC. Symbol table: Basic notions - binding, range, visibility, life time. Functions of symbol table. Programming language model. Organization of symbol table. Block structured symbol table. Implementation. Internal representation of program: Formats of internal representation - graph, stack code, three-address code. Implementation of three-address code. Translation of expressions. Array items addressing. Translation of Boolean expressions. Generation of stack code as attribute translation. Run-time program structure: Run-time system. Subroutines - activation, static and dynamic structure, activation record. Memory organization, memory allocation for activation records, access pointers. Parameter passing. Laboratories (only on PC labs): Examples of different programming paradigms. Examples of declarative style of programming. Practical implementation of some simple tasks in Haskell. Implementation of some tasks in Haskell. Scripting languages: Implementation of simple task in PHP. Imperative and object oriented languages. Examples of programs written in some less known languages. Work on firs project. Implementation in simple filters and lexical analyzers. Practical realization of grammars for a basic constructions common in programming languages. Implementation of algorithms for a computation of sets FIRST a FOLLOW. Demonstration of LL(1) a LR(1) based syntactic analyzers. Implementation of a syntactic analyzer using recursive descent. Implementation of a simple compiler using compiler compiler JavaCC. Work on second project.

Conditions for subject completion

Part-time form (validity from: 2010/2011 Winter semester, validity until: 2021/2022 Summer semester)
Task nameType of taskMax. number of points
(act. for subtasks)
Min. number of pointsMax. počet pokusů
Exercises evaluation and Examination Credit and Examination 100 (100) 51
        Exercises evaluation Credit 45 (45) 21
                First project Project 15  0
                Second project Project 30  0
        Examination Examination 55  25 3
Mandatory attendence participation: At least 80%

Show history

Conditions for subject completion and attendance at the exercises within ISP:

Show history

Occurrence in study plans

Academic yearProgrammeBranch/spec.Spec.ZaměřeníFormStudy language Tut. centreYearWSType of duty
2021/2022 (B2647) Information and Communication Technology (1103R031) Computational Mathematics P Czech Ostrava 2 Optional study plan
2021/2022 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology P Czech Ostrava 2 Optional study plan
2021/2022 (B2647) Information and Communication Technology (1103R031) Computational Mathematics K Czech Ostrava 2 Optional study plan
2021/2022 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology K Czech Ostrava 2 Optional study plan
2021/2022 (B2647) Information and Communication Technology (2612R059) Mobile Technology P Czech Ostrava 2 Optional study plan
2021/2022 (B2647) Information and Communication Technology (2612R059) Mobile Technology K Czech Ostrava 2 Optional study plan
2020/2021 (B2647) Information and Communication Technology (1103R031) Computational Mathematics P Czech Ostrava 2 Optional study plan
2020/2021 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology P Czech Ostrava 2 Optional study plan
2020/2021 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology P Czech Ostrava 2 Optional study plan
2020/2021 (B2647) Information and Communication Technology (2612R059) Mobile Technology P Czech Ostrava 2 Optional study plan
2020/2021 (B2647) Information and Communication Technology (1103R031) Computational Mathematics K Czech Ostrava 2 Optional study plan
2020/2021 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology K Czech Ostrava 2 Optional study plan
2020/2021 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology K Czech Ostrava 2 Optional study plan
2020/2021 (B2647) Information and Communication Technology (2612R059) Mobile Technology K Czech Ostrava 2 Optional study plan
2019/2020 (B2647) Information and Communication Technology (1103R031) Computational Mathematics P Czech Ostrava 2 Optional study plan
2019/2020 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology P Czech Ostrava 2 Optional study plan
2019/2020 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology P Czech Ostrava 2 Optional study plan
2019/2020 (B2647) Information and Communication Technology (2612R059) Mobile Technology P Czech Ostrava 2 Optional study plan
2019/2020 (B2647) Information and Communication Technology (1103R031) Computational Mathematics K Czech Ostrava 2 Optional study plan
2019/2020 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology K Czech Ostrava 2 Optional study plan
2019/2020 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology K Czech Ostrava 2 Optional study plan
2019/2020 (B2647) Information and Communication Technology (2612R059) Mobile Technology K Czech Ostrava 2 Optional study plan
2018/2019 (B2647) Information and Communication Technology (1103R031) Computational Mathematics P Czech Ostrava 2 Optional study plan
2018/2019 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology P Czech Ostrava 2 Optional study plan
2018/2019 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology P Czech Ostrava 2 Optional study plan
2018/2019 (B2647) Information and Communication Technology (2612R059) Mobile Technology P Czech Ostrava 2 Optional study plan
2018/2019 (B2647) Information and Communication Technology (1103R031) Computational Mathematics K Czech Ostrava 2 Optional study plan
2018/2019 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology K Czech Ostrava 2 Optional study plan
2018/2019 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology K Czech Ostrava 2 Optional study plan
2018/2019 (B2647) Information and Communication Technology (2612R059) Mobile Technology K Czech Ostrava 2 Optional study plan
2017/2018 (B2647) Information and Communication Technology (1103R031) Computational Mathematics P Czech Ostrava 2 Optional study plan
2017/2018 (B2647) Information and Communication Technology (1103R031) Computational Mathematics K Czech Ostrava 2 Optional study plan
2017/2018 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology P Czech Ostrava 2 Optional study plan
2017/2018 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology K Czech Ostrava 2 Optional study plan
2017/2018 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology P Czech Ostrava 2 Optional study plan
2017/2018 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology K Czech Ostrava 2 Optional study plan
2017/2018 (B2647) Information and Communication Technology (2612R059) Mobile Technology P Czech Ostrava 2 Optional study plan
2017/2018 (B2647) Information and Communication Technology (2612R059) Mobile Technology K Czech Ostrava 2 Optional study plan
2016/2017 (B2647) Information and Communication Technology (1103R031) Computational Mathematics P Czech Ostrava 2 Optional study plan
2016/2017 (B2647) Information and Communication Technology (1103R031) Computational Mathematics K Czech Ostrava 2 Optional study plan
2016/2017 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology P Czech Ostrava 2 Optional study plan
2016/2017 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology K Czech Ostrava 2 Optional study plan
2016/2017 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology P Czech Ostrava 2 Optional study plan
2016/2017 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology K Czech Ostrava 2 Optional study plan
2016/2017 (B2647) Information and Communication Technology (2612R059) Mobile Technology P Czech Ostrava 2 Optional study plan
2016/2017 (B2647) Information and Communication Technology (2612R059) Mobile Technology K Czech Ostrava 2 Optional study plan
2015/2016 (B2647) Information and Communication Technology (1103R031) Computational Mathematics P Czech Ostrava 2 Optional study plan
2015/2016 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology P Czech Ostrava 2 Optional study plan
2015/2016 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology P Czech Ostrava 2 Optional study plan
2015/2016 (B2647) Information and Communication Technology (2612R059) Mobile Technology P Czech Ostrava 2 Optional study plan
2015/2016 (B2647) Information and Communication Technology (1103R031) Computational Mathematics K Czech Ostrava 2 Optional study plan
2015/2016 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology K Czech Ostrava 2 Optional study plan
2015/2016 (B2647) Information and Communication Technology (2612R059) Mobile Technology K Czech Ostrava 2 Optional study plan
2015/2016 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology K Czech Ostrava 2 Optional study plan
2014/2015 (B2647) Information and Communication Technology (1103R031) Computational Mathematics P Czech Ostrava 2 Optional study plan
2014/2015 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology P Czech Ostrava 2 Optional study plan
2014/2015 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology P Czech Ostrava 2 Optional study plan
2014/2015 (B2647) Information and Communication Technology (2612R059) Mobile Technology P Czech Ostrava 2 Optional study plan
2014/2015 (B2647) Information and Communication Technology (1103R031) Computational Mathematics K Czech Ostrava 2 Optional study plan
2014/2015 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology K Czech Ostrava 2 Optional study plan
2014/2015 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology K Czech Ostrava 2 Optional study plan
2014/2015 (B2647) Information and Communication Technology (2612R059) Mobile Technology K Czech Ostrava 2 Optional study plan
2013/2014 (B2647) Information and Communication Technology (1103R031) Computational Mathematics P Czech Ostrava 2 Optional study plan
2013/2014 (B2647) Information and Communication Technology (1103R031) Computational Mathematics K Czech Ostrava 2 Optional study plan
2013/2014 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology P Czech Ostrava 2 Optional study plan
2013/2014 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology K Czech Ostrava 2 Optional study plan
2013/2014 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology P Czech Ostrava 2 Optional study plan
2013/2014 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology K Czech Ostrava 2 Optional study plan
2013/2014 (B2647) Information and Communication Technology (2612R059) Mobile Technology P Czech Ostrava 2 Optional study plan
2013/2014 (B2647) Information and Communication Technology (2612R059) Mobile Technology K Czech Ostrava 2 Optional study plan
2012/2013 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology P Czech Ostrava 2 Optional study plan
2012/2013 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology K Czech Ostrava 2 Optional study plan
2012/2013 (B2647) Information and Communication Technology (1103R031) Computational Mathematics P Czech Ostrava 2 Optional study plan
2012/2013 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology P Czech Ostrava 2 Optional study plan
2012/2013 (B2647) Information and Communication Technology (2612R059) Mobile Technology P Czech Ostrava 2 Optional study plan
2012/2013 (B2647) Information and Communication Technology (1103R031) Computational Mathematics K Czech Ostrava 2 Optional study plan
2012/2013 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology K Czech Ostrava 2 Optional study plan
2012/2013 (B2647) Information and Communication Technology (2612R059) Mobile Technology K Czech Ostrava 2 Optional study plan
2011/2012 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology P Czech Ostrava 2 Optional study plan
2011/2012 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology K Czech Ostrava 2 Optional study plan
2011/2012 (B2647) Information and Communication Technology (1103R031) Computational Mathematics P Czech Ostrava 2 Optional study plan
2011/2012 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology P Czech Ostrava 2 Optional study plan
2011/2012 (B2647) Information and Communication Technology (2612R059) Mobile Technology P Czech Ostrava 2 Optional study plan
2011/2012 (B2647) Information and Communication Technology (1103R031) Computational Mathematics K Czech Ostrava 2 Optional study plan
2011/2012 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology K Czech Ostrava 2 Optional study plan
2011/2012 (B2647) Information and Communication Technology (2612R059) Mobile Technology K Czech Ostrava 2 Optional study plan
2010/2011 (B2647) Information and Communication Technology (1103R031) Computational Mathematics P Czech Ostrava 2 Optional study plan
2010/2011 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology P Czech Ostrava 2 Optional study plan
2010/2011 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology P Czech Ostrava 2 Optional study plan
2010/2011 (B2647) Information and Communication Technology (2612R059) Mobile Technology P Czech Ostrava 2 Optional study plan
2010/2011 (B2647) Information and Communication Technology (1103R031) Computational Mathematics K Czech Ostrava 2 Optional study plan
2010/2011 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology K Czech Ostrava 2 Optional study plan
2010/2011 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology K Czech Ostrava 2 Optional study plan
2010/2011 (B2647) Information and Communication Technology (2612R059) Mobile Technology K Czech Ostrava 2 Optional study plan
2010/2011 (N2647) Information and Communication Technology (2612T025) Computer Science and Technology (01) Exchange Students P Czech Ostrava Optional study plan
2010/2011 (B2649) Electrical Engineering (2601R004) Measurement and Control Engineering (01) Exchange Students P Czech Ostrava Optional study plan
2010/2011 (B2649) Electrical Engineering (2602R014) Applied and Commercial Electronics (01) Exchange Students P Czech Ostrava Optional study plan
2010/2011 (B2649) Electrical Engineering (3901R039) Biomedical Technician (01) Exchange Students P Czech Ostrava Optional study plan
2010/2011 (B2649) Electrical Engineering (3907R001) Electrical Power Engineering (01) Exchange Students P Czech Ostrava Optional study plan
2010/2011 (B2647) Information and Communication Technology (1103R031) Computational Mathematics (01) Exchange Students P Czech Ostrava Optional study plan
2010/2011 (B2647) Information and Communication Technology (2601R013) Telecommunication Technology (01) Exchange Students P Czech Ostrava Optional study plan
2010/2011 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology (01) Exchange Students P Czech Ostrava Optional study plan
2010/2011 (B2647) Information and Communication Technology (2612R059) Mobile Technology (01) Exchange Students P Czech Ostrava Optional study plan
2010/2011 (N2647) Information and Communication Technology (1103T031) Computational Mathematics (01) Exchange Students P Czech Ostrava Optional study plan
2010/2011 (N2647) Information and Communication Technology (2601T013) Telecommunication Technology (01) Exchange Students P Czech Ostrava Optional study plan
2010/2011 (N2647) Information and Communication Technology (2612T059) Mobile Technology (01) Exchange Students P Czech Ostrava Optional study plan
2010/2011 (N2649) Electrical Engineering (2601T004) Measurement and Control Engineering (01) Exchange Students P Czech Ostrava Optional study plan
2010/2011 (N2649) Electrical Engineering (2612T015) Electronics (01) Exchange Students P Czech Ostrava Optional study plan
2010/2011 (N2649) Electrical Engineering (3901T009) Biomedical Engineering (01) Exchange Students P Czech Ostrava Optional study plan
2010/2011 (N2649) Electrical Engineering (3907T001) Electrical Power Engineering (01) Exchange Students P Czech Ostrava Optional study plan

Occurrence in special blocks

Block nameAcademic yearForm of studyStudy language YearWSType of blockBlock owner

Assessment of instruction



2019/2020 Summer
2018/2019 Summer
2017/2018 Summer
2016/2017 Summer
2015/2016 Summer
2014/2015 Summer
2013/2014 Summer
2011/2012 Summer
2010/2011 Summer