\BOOKMARK [1][-]{section.1}{Introduction: Languages, Semantics, Interpreters, Compilers}{}% 1 \BOOKMARK [2][-]{subsection.1.1}{Language and semantics}{section.1}% 2 \BOOKMARK [2][-]{subsection.1.2}{Interpreters}{section.1}% 3 \BOOKMARK [2][-]{subsection.1.3}{Compilers}{section.1}% 4 \BOOKMARK [2][-]{subsection.1.4}{The first example: language of expressions}{section.1}% 5 \BOOKMARK [1][-]{section.2}{Statements, Stack Machine, Stack Machine Compiler}{}% 6 \BOOKMARK [2][-]{subsection.2.1}{Statements}{section.2}% 7 \BOOKMARK [1][-]{section.3}{Stack Machine}{}% 8 \BOOKMARK [2][-]{subsection.3.1}{A Compiler for the Stack Machine}{section.3}% 9 \BOOKMARK [1][-]{section.4}{Structural Induction}{}% 10 \BOOKMARK [2][-]{subsection.4.1}{Structural Control Flow}{section.4}% 11 \BOOKMARK [2][-]{subsection.4.2}{Extended Stack Machine}{section.4}% 12 \BOOKMARK [2][-]{subsection.4.3}{Syntax Extensions}{section.4}% 13 \BOOKMARK [1][-]{section.5}{Procedures}{}% 14 \BOOKMARK [1][-]{section.6}{Extended Stack Machine}{}% 15 \BOOKMARK [1][-]{section.7}{Functions}{}% 16 \BOOKMARK [2][-]{subsection.7.1}{Functions in Expressions}{section.7}% 17 \BOOKMARK [2][-]{subsection.7.2}{Return Statement}{section.7}% 18 \BOOKMARK [1][-]{section.8}{Arrays and strings}{}% 19 \BOOKMARK [2][-]{subsection.8.1}{Adding arrays on expression level}{section.8}% 20 \BOOKMARK [2][-]{subsection.8.2}{Adding arrays on statement level}{section.8}% 21 \BOOKMARK [2][-]{subsection.8.3}{Strings}{section.8}% 22 \BOOKMARK [1][-]{section.9}{S-expressions and Pattern Matching}{}% 23 \BOOKMARK [2][-]{subsection.9.1}{S-expressions on expression level}{section.9}% 24 \BOOKMARK [2][-]{subsection.9.2}{Patterns Matching}{section.9}% 25