Understanding Follow Function

Duration: 7 min

This video lesson is available to enrolled students.

Return to /learn/BIHAR-POLYTECHNIC-LECTURER-COMPUTER-SCIENCE/paper-2-compiler-design/syntax-analysis-top-down/first-and-follow-sets/asset-understanding-follow-function after enrolling

Inside: a video lesson and guided study material.

Module outline

  1. Discrete Mathematics: Permutation, Combination and Probability / क्रमचय, संचय एवं प्रायिकता, Set Theory, Relations, Functions, Propositional and Predicate Logic, Graph Theory, Group Theory
  2. Digital Logic: Digital Systems & Boolean Basics, Boolean Expression, Boolean Minimization, Logic Gates & Hardware, Combinational Circuit, Sequential Circuits, Number System, Number Representation, Floating Point Rep
  3. Computer Organization and Architecture: Basics of COA, Programming the Basic Computer, Cache Memory Organization, Input Output Organisation, Instr Formats & Modes, Register Transfer and Microoperations, Control Unit Design, Pipelining, Multiprocessors
  4. Programming: Language Design, C Fundamentals, Control Flow, Functions, Arrays & Pointers, Storage Classes, Structures & Enums, DMA, Macros, Scoping & File Handling, OOPS with C++
  5. Data Structures: Introduction to DS, Array, Linked List, Stack, Queue, Tree, Graphs, Hashing
  6. Algorithms: Algorithm Analysis, Time Complexity Analysis, Sorting Algorithms, Greedy Algorithms, Dynamic Programming, Minimum Spanning Trees, Shortest Path Algos, Advanced Algorithms
  7. Theory of Computation: Grammar, Regular Language Properties, Moore & Mealy Machines, Turing Machines
  8. Compiler Design: Intro to Compilers, Lexical Analysis, Grammar & CFG, Syntax Analysis: Top-Down, Syntax Analysis: Bottom-Up, Semantic Analysis & SDT, Intermediate Code Gen, Code Optimization, Run Time Environment, Introduction to TOC, Deterministic FA (DFA), Non-Deterministic FA, Regular Expressions, Pushdown Automata & CFG, Complexity Theory
  9. Operating Systems: Introduction to OS, Process Management, CPU Scheduling, Process Synchronization, Threads & Process Creation, Deadlock, Memory Management, Virtual Memory, Disc Scheduling, File Management, Unix OS, Linux OS, Security
  10. Database Management Systems: Basics of DBMS, ER Diagram, Relational Model & Functional Dependencies, Keys & Integrity Constraints, Normalization (1NF - BCNF), Decomposition Properties & 4NF, File Organization & Indexing, Relational Algebra, SQL, Relational Calculus, Transaction Management, Concurrency Control, ORDBMS, NoSQL
  11. Computer Networks: Introduction to CN, Data Communication, DLL: Access Control, DLL: Flow Control, DLL: Error Control, DLL: Framing, Data Link Layer - Ethernet, Net Layer: IPv4 & Proto, Net Layer: IP Addressing, Net Layer:Routing Protocol, Transport Layer Services, TL: Congestion & UDP, Application Layer, Hardware basics, Network Security
AI summary & chapters

AI Summary

An AI-generated summary of this video lecture.

This educational video provides a detailed lecture on computing Follow sets within the context of Context-Free Grammars and compiler design. The instructor begins by defining Follow(A) as the set of terminals that can appear immediately to the right of a non-terminal A in any sentential form. He systematically presents four fundamental rules used to calculate these sets, covering cases for start symbols, productions with non-epsilon suffixes, and productions where the suffix can derive epsilon. The lecture then transitions into practical applications, solving examples of increasing complexity to demonstrate the application of these rules.

Chapters

  1. 0:00 – 2:00 00:00-02:00

    The lecture begins with the definition of Follow(A) displayed on the slide. The instructor explains that Follow(A) contains terminals following A in sentential grammars. He lists four specific rules: Rule 1 states that if A is the start symbol, Follow(A) includes the end marker $. Rule 2 applies when A is followed by a non-epsilon beta, setting Follow(A) to First(beta). Rule 3 handles the case where A is the last symbol in a production, equating Follow(A) to Follow(S). Rule 4 addresses the scenario where A is followed by a beta that can derive epsilon, combining First(beta) and Follow(S). The instructor uses hand-drawn diagrams with arrows and lines to visually represent derivations and the position of terminals relative to non-terminals.

  2. 2:00 – 5:00 02:00-05:00

    Next, the presenter moves to a simple example where S -> epsilon. He determines First(S) is {epsilon} and Follow(S) is {$} because S is the start symbol. He then introduces a slightly more complex grammar: S -> aA and A -> bA / epsilon. He calculates First(S) as {a} and First(A) as {b, epsilon}. For Follow sets, he establishes Follow(S) as {$}. To find Follow(A), he notes that A appears at the end of the production S -> aA. Applying Rule 3, he concludes that Follow(A) must equal Follow(S), which is {$}. He writes these values clearly on the slide to reinforce the concept.

  3. 5:00 – 7:06 05:00-07:06

    Subsequently, the class analyzes a grammar with multiple productions: S -> AaBb / BbAa, with A -> epsilon and B -> epsilon. The instructor calculates Follow(S) as {$}. For Follow(A), he observes that A is followed by 'a' in both productions, so Follow(A) = {a}. Similarly, B is followed by 'b' in both productions, so Follow(B) = {b}. Finally, he introduces a standard arithmetic expression grammar: E -> E+T / T, T -> T*F / F, F -> (E) / id. He begins calculating Follow sets for this recursive grammar. He determines Follow(E) = {$, +} based on the start symbol and the '+' in E -> E+T. He finds Follow(T) = {*, $, +} by combining the end marker, the '*' from T -> T*F, and the '+' from E -> E+T. He writes Follow(F) = {*, $, +}, indicating the terminals that can follow F in the derived strings.

The video effectively bridges theoretical definitions with practical calculation methods. By starting with abstract rules and moving to concrete examples, the instructor demonstrates how to handle epsilon productions and recursive structures. The progression from simple start symbol cases to complex arithmetic grammars provides a comprehensive guide for students learning to construct parsing tables or analyze grammars.

Loading lesson…