Difference between revisions of "Programming Languages and Compilers"
(9 intermediate revisions by the same user not shown) | |||
Line 35: | Line 35: | ||
[http://linedu.vsb.cz/~beh01/wiki_data/PLC_uvod.pdf Úvod do PLC] [http://linedu.vsb.cz/~beh01/wiki_data/PLC_introduction.pdf Introduction to PLC] | [http://linedu.vsb.cz/~beh01/wiki_data/PLC_uvod.pdf Úvod do PLC] [http://linedu.vsb.cz/~beh01/wiki_data/PLC_introduction.pdf Introduction to PLC] | ||
− | + | [http://linedu.vsb.cz/~beh01/wiki_data/PLC_Presentation.pdf Programming Languages and Compilers] | |
[http://linedu.vsb.cz/~beh01/wiki_data/PLC_ANTLR.pdf ANTLR Tutorial] | [http://linedu.vsb.cz/~beh01/wiki_data/PLC_ANTLR.pdf ANTLR Tutorial] | ||
[http://linedu.vsb.cz/~beh01/wiki_data/antlr_tutorial.zip ANTLR Tutorial - complementary source codes] | [http://linedu.vsb.cz/~beh01/wiki_data/antlr_tutorial.zip ANTLR Tutorial - complementary source codes] | ||
+ | |||
+ | [http://linedu.vsb.cz/~beh01/wiki_data/PLC_advanced_topics.pdf Advanced Topics] | ||
<translate> | <translate> | ||
Line 47: | Line 49: | ||
* Lecture 3: [http://linedu.vsb.cz/~beh01/wiki_data/PLC_Presentation.pdf#page=58 Page 56] - [http://linedu.vsb.cz/~beh01/wiki_data/PLC_Presentation.pdf#page=68 Page 66] | * Lecture 3: [http://linedu.vsb.cz/~beh01/wiki_data/PLC_Presentation.pdf#page=58 Page 56] - [http://linedu.vsb.cz/~beh01/wiki_data/PLC_Presentation.pdf#page=68 Page 66] | ||
* Lecture 4: [http://linedu.vsb.cz/~beh01/wiki_data/PLC_Presentation.pdf#page=69 Page 68] - [http://linedu.vsb.cz/~beh01/wiki_data/PLC_Presentation.pdf#page=80 Page 78] | * Lecture 4: [http://linedu.vsb.cz/~beh01/wiki_data/PLC_Presentation.pdf#page=69 Page 68] - [http://linedu.vsb.cz/~beh01/wiki_data/PLC_Presentation.pdf#page=80 Page 78] | ||
− | * Lecture 5: [http://linedu.vsb.cz/~beh01/wiki_data/PLC_Presentation.pdf#page=81 Page 80] - [http://linedu.vsb.cz/~beh01/wiki_data/PLC_Presentation.pdf#page= | + | * Lecture 5: [http://linedu.vsb.cz/~beh01/wiki_data/PLC_Presentation.pdf#page=81 Page 80] - [http://linedu.vsb.cz/~beh01/wiki_data/PLC_Presentation.pdf#page=91 Page 89] |
− | * Lecture 6: [http://linedu.vsb.cz/~beh01/wiki_data/PLC_ANTLR.pdf#page=1 ANTLR Beginning] - [http://linedu.vsb.cz/~beh01/wiki_data/PLC_ANTLR.pdf#page= | + | * Lecture 6: [http://linedu.vsb.cz/~beh01/wiki_data/PLC_Presentation.pdf#page=92 Page 90] - [http://linedu.vsb.cz/~beh01/wiki_data/PLC_Presentation.pdf#page=99 Page 97][http://linedu.vsb.cz/~beh01/wiki_data/PLC_ANTLR.pdf#page=1 ANTLR Beginning] - [http://linedu.vsb.cz/~beh01/wiki_data/PLC_ANTLR.pdf#page=12 ANTLR Page 10] |
− | + | * Lecture 7: [http://linedu.vsb.cz/~beh01/wiki_data/PLC_ANTLR.pdf#page=13 ANTLR Page 11] - [http://linedu.vsb.cz/~beh01/wiki_data/PLC_ANTLR.pdf#page=23 ANTLR Page 21] | |
<translate> | <translate> | ||
Line 65: | Line 67: | ||
* [[PLC_Laboratory_8 | Laboratory 8]] | * [[PLC_Laboratory_8 | Laboratory 8]] | ||
* [[PLC_Laboratory_9 | Laboratory 9]] | * [[PLC_Laboratory_9 | Laboratory 9]] | ||
+ | * [[PLC_Laboratory_10 | Laboratory 10]] | ||
* Project's evalution | * Project's evalution | ||
Line 86: | Line 89: | ||
=== Tutorial 3 === | === Tutorial 3 === | ||
* Presentation [http://linedu.vsb.cz/~beh01/wiki_data/PLC_Presentation.pdf#page=71 Page 69] - [http://linedu.vsb.cz/~beh01/wiki_data/PLC_Presentation.pdf#page=97 Page 95] | * Presentation [http://linedu.vsb.cz/~beh01/wiki_data/PLC_Presentation.pdf#page=71 Page 69] - [http://linedu.vsb.cz/~beh01/wiki_data/PLC_Presentation.pdf#page=97 Page 95] | ||
− | * Activity ( | + | * Activity (20 points) - written test on FIRST and FOLLOW. |
* [[PLC_Laboratory_5 | Laboratory 5]] | * [[PLC_Laboratory_5 | Laboratory 5]] | ||
* [[PLC_Laboratory_6 | Laboratory 6]] | * [[PLC_Laboratory_6 | Laboratory 6]] | ||
Line 92: | Line 95: | ||
=== Tutorial 4 === | === Tutorial 4 === | ||
+ | * [http://linedu.vsb.cz/~beh01/wiki_data/PLC_ANTLR.pdf ANTLR Tutorial] | ||
+ | * [http://linedu.vsb.cz/~beh01/wiki_data/antlr_tutorial.zip ANTLR Tutorial - complementary source codes] | ||
* [[PLC_Laboratory_7 | Laboratory 7]] | * [[PLC_Laboratory_7 | Laboratory 7]] | ||
− | |||
− | |||
− | |||
* Activity (10 points) - written test on LL1 grammars. | * Activity (10 points) - written test on LL1 grammars. | ||
* Guidelines to project - [[PLC_Project | Project's description]]. | * Guidelines to project - [[PLC_Project | Project's description]]. | ||
=== Tutorial 5 === | === Tutorial 5 === | ||
− | * | + | * [http://linedu.vsb.cz/~beh01/wiki_data/PLC_advanced_topics.pdf Advanced Topics] |
+ | * [[PLC_Laboratory_8 | Laboratory 8]] | ||
+ | * [[PLC_Laboratory_9 | Laboratory 9]] | ||
+ | * [[PLC_Laboratory_10 | Laboratory 10]] | ||
+ | * You can ask about the project, if you already solve it, it will be evaluated. | ||
</translate> | </translate> |
Latest revision as of 06:24, 17 April 2024
Basic introduction
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.
Subject aims expressed by acquired skills and competences
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.
Recommended literature
Torben Mogensen: Basics of Compiler Design - freely available at http://www.diku.dk/hjemmesider/ansatte/torbenm/Basics/
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
Evaluation compose from two parts. During the exercise, students will be programing assigned tasks (40 points). Remaining points can be obtained for a project – a compiler that will be continuously implemented during the semester (60 points).
Software
In our lectures, we will be using...
Presentations
Presentations used in our lectures:
Úvod do PLC Introduction to PLC
Programming Languages and Compilers
ANTLR Tutorial ANTLR Tutorial - complementary source codes
Schedule:
- Lecture 1: Beginning - Page 28
- Lecture 2: Page 29 - Page 55
- Lecture 3: Page 56 - Page 66
- Lecture 4: Page 68 - Page 78
- Lecture 5: Page 80 - Page 89
- Lecture 6: Page 90 - Page 97ANTLR Beginning - ANTLR Page 10
- Lecture 7: ANTLR Page 11 - ANTLR Page 21
Laboratories
- Laboratory 1
- Laboratory 2
- Laboratory 3
- Laboratory 4
- Laboratory 5
- Laboratory 6
- Laboratory 7
- Laboratory 8
- Laboratory 9
- Laboratory 10
- Project's evalution
Project
Combine study
Tutorial 1
- Presentation Beginning - Page 55
- Laboratory 1
- Laboratory 2
Tutorial 2
- Presentation Page 56 - Page 68
- Activity (10 points) - for solution of Laboratory 1
- Laboratory 3
- Laboratory 4
Tutorial 3
- Presentation Page 69 - Page 95
- Activity (20 points) - written test on FIRST and FOLLOW.
- Laboratory 5
- Laboratory 6
Tutorial 4
- ANTLR Tutorial
- ANTLR Tutorial - complementary source codes
- Laboratory 7
- Activity (10 points) - written test on LL1 grammars.
- Guidelines to project - Project's description.
Tutorial 5
- Advanced Topics
- Laboratory 8
- Laboratory 9
- Laboratory 10
- You can ask about the project, if you already solve it, it will be evaluated.