Compiler Design
Terminologies Glossary: Essential Concepts of Compiler Construction.
A comprehensive collection of key terms and definitions across all phases of compiler design, explained in English and Hinglish.
Categories of all notes📚 Compiler Design: Terminologies Glossary (English + Hinglish)
1. Compiler
English: A program that translates source code from a high-level language into machine code or intermediate code.
Hinglish: Ek program jo high-level language ke code ko machine code ya intermediate code mein badalta hai.
2. Lexical Analyzer (Lexer)
English: The compiler phase that breaks input code into tokens (words or symbols).
Hinglish: Compiler ka wo part jo code ko chhote chhote parts (tokens) mein todta hai.
3. Token
English: A sequence of characters that represents a basic element like keyword, identifier, or operator.
Hinglish: Code ka chhota unit jaise keyword, variable name, ya operator.
4. Syntax Analyzer (Parser)
English: The phase that checks the token sequence against the grammar rules and builds parse trees.
Hinglish: Wo compiler ka hissa jo tokens ko grammar ke rules se match karta hai aur parse tree banata hai.
5. Parse Tree
English: A tree that represents the syntactic structure of the source code according to grammar rules.
Hinglish: Ek tree jo code ki structure ko grammar ke hisaab se dikhata hai.
6. Context-Free Grammar (CFG)
English: A set of production rules that describe all possible strings in a language.
Hinglish: Rules ka set jo language ke sentences banata hai bina context ke.
7. Ambiguity
English: When a grammar allows multiple parse trees for the same input string.
Hinglish: Jab ek sentence ke liye grammar se do ya zyada parse tree ban sakte hain.
8. Finite State Machine (FSM)
English: A machine model used to recognize patterns or tokens in lexical analysis.
Hinglish: Ek model jo tokens ko identify karne ke liye states ke through chalta hai.
9. Regular Expression
English: A formula to describe patterns in strings, often used in lexical analysis.
Hinglish: Pattern banane ka ek tarika jo tokens ko define karta hai.
10. YACC (Yet Another Compiler Compiler)
English: A tool to automatically generate parsers from grammar specifications.
Hinglish: Ek tool jo grammar se apne aap parser banata hai.
11. Intermediate Code
English: A code between source code and machine code, easier to optimize and translate.
Hinglish: Source aur machine code ke beech ka code jo compiler banata hai.
12. Three Address Code (TAC)
English: A type of intermediate code where each instruction has at most three operands.
Hinglish: Intermediate code jisme instructions mein max 3 operands hote hain.
13. Symbol Table
English: A data structure used to store information about identifiers (variables, functions).
Hinglish: Table jisme variable aur function ke details rakhe jaate hain.
14. Type Checking
English: Verifying that operations in the code are used with compatible data types.
Hinglish: Check karna ki variables aur operators sahi type ke saath use ho rahe hain ya nahi.
15. Scope
English: The region in the program where a variable or function is valid or visible.
Hinglish: Program ka wo area jahan variable ya function ko access kiya ja sakta hai.
16. Bootstrapping
English: Writing a compiler in the language it is supposed to compile.
Hinglish: Compiler ko usi language mein likhna jise wo compile karega.
17. Basic Block
English: A straight-line code sequence with no branches except at entry and exit.
Hinglish: Code ka aisa hissa jisme bina branch ke instructions sequence hote hain.
18. Code Optimization
English: Improving intermediate or machine code to make it faster or smaller.
Hinglish: Code ko aisa banana ki wo jaldi chale ya kam space le.
19. Parsing Table
English: Data structure used by parser to decide parsing actions based on current state and input.
Hinglish: Table jo parser ko batata hai ki next step kya lena hai.
20. SLR, LR, LALR Parsers
English: Different types of bottom-up parsers with increasing power to handle complex grammars.
Hinglish: Parser ke types jo grammar ko different tareeke se parse karte hain, jaise SLR, LR, LALR.
21. Shift-Reduce Parsing
English: A parsing method that shifts input tokens on stack and reduces them by grammar rules.
Hinglish: Parsing jisme tokens ko stack par daalte hain aur grammar ke rules se reduce karte hain.
22. Predictive Parsing
English: A top-down parsing technique using lookahead tokens to decide the production.
Hinglish: Parser jo agla token dekh ke decide karta hai kaunsa rule lagana hai.
23. Error Recovery
English: Techniques to handle and recover from errors detected during compilation.
Hinglish: Compiler mein errors ko pakad kar unhe sahi karne ki koshish.
24. Loop Optimization
English: Code optimization focused on improving loops for better performance.
Hinglish: Loops ke code ko optimize karna taki wo fast chale.
25. Data Flow Analysis
English: Technique to gather information about the flow of data in a program.
Hinglish: Program mein data ke movement ko analyze karna.
26. Automatic Parser Generator
English: Software that generates parser code automatically from grammar rules.
Hinglish: Aisa software jo grammar se automatic parser banata hai.
27. Postfix Notation
English: A mathematical notation where operators come after operands, useful in code generation.
Hinglish: Expression jisme operator operands ke baad aate hain, jaise ab+
.
28. Quadruples and Triples
English: Intermediate code formats to represent instructions with operands and operators.
Hinglish: Intermediate code ke formats jisme instructions ke details diye hote hain.
29. Syntax-Directed Translation
English: Translation of source code guided by syntax rules using attributes and actions.
Hinglish: Grammar ke rules ke hisaab se source code ka translation karna.
30. Run-Time Stack
English: Stack used to store information about active subroutines during execution.
Hinglish: Execution ke time pe functions ke data ko store karne wali stack.
31. Passes in Compiler
English: Different stages in the compiler where the source code is processed step-by-step.
Hinglish: Compiler ke alag-alag phases jahan code ko ek-ek karke process kiya jata hai.
32. Phases of Compiler
English: Specific steps in a compiler like lexical analysis, syntax analysis, semantic analysis, optimization, and code generation.
Hinglish: Compiler ke alag kaam jaise token banana, grammar check karna, meaning samajhna, code sudharna aur machine code banana.
33. Pass
English: One complete scan of the source code by the compiler or part of the compiler.
Hinglish: Compiler ka ek baar source code ko pura padhna.
34. Lexical Errors
English: Errors due to invalid characters or tokens during lexical analysis.
Hinglish: Galat characters ya tokens jo lexical analyzer detect karta hai.
35. Syntactic Errors
English: Errors caused by incorrect arrangement of tokens that violate grammar rules.
Hinglish: Jab code grammar rules ke against likha ho, tab syntactic error hota hai.
36. Semantic Errors
English: Errors where statements are syntactically correct but meaningless or invalid logically.
Hinglish: Code sahi lagta hai grammar se, lekin logic galat hai.
37. Backpatching
English: Technique used in code generation to handle forward jumps where target address is not yet known.
Hinglish: Jab jump ka address nahi pata hota to baad mein usse fix karna.
38. Attribute Grammar
English: Grammar that associates attributes with grammar symbols for semantic analysis.
Hinglish: Grammar jisme symbols ke saath extra information (attributes) hoti hai.
39. Syntax-Directed Definition (SDD)
English: Rules associating attributes and computations with grammar productions.
Hinglish: Rules jo grammar ke parts ke attributes define karte hain aur unke calculation ka tarika batate hain.
40. Control Flow Statements
English: Statements that alter the sequence of execution like if, while, for loops.
Hinglish: Aise statements jo program ke flow ko change karte hain, jaise if, while, for.
41. Data Types
English: Classification of data like int, float, char, etc. in programming languages.
Hinglish: Variables ke types jaise integer, float, character.
42. Overloading
English: Using the same name for different functions or operators with different meanings.
Hinglish: Ek hi naam se alag alag function ya operator banana.
43. Run-Time Environment
English: The environment where the program runs, including memory, stack, and registers.
Hinglish: Program chalne ka waqat ka system jisme memory aur stack shamil hain.
44. Stack Allocation
English: Allocating memory for variables and function calls in stack during execution.
Hinglish: Memory ko stack mein allocate karna jab function call hota hai.
45. Flow Graph
English: Graph representing the control flow between basic blocks in a program.
Hinglish: Graph jo program ke different parts ke flow ko dikhata hai.
46. Data Flow Graph
English: Graph showing how data moves between operations in a program.
Hinglish: Graph jo dikhata hai ki data program mein kaise flow karta hai.
47. Value Numbering
English: Technique to identify expressions that compute the same value to avoid duplicate calculations.
Hinglish: Same calculation ko ek baar karne ka tareeka.
48. Algebraic Laws
English: Rules like associativity, commutativity used to optimize expressions in code.
Hinglish: Maths ke rules jo code optimization mein use hote hain.
49. Loop Invariant Code Motion
English: Moving code out of loops if the code doesn’t change during iterations to optimize.
Hinglish: Jo code loop mein baar baar nahi badalta usse loop ke bahar le jana.
50. DAG (Directed Acyclic Graph)
English: Graph used to represent expressions without cycles to optimize common subexpressions.
Hinglish: Ek graph jo cycle nahi banata aur expressions ko efficiently dikhata hai.
51. Basic Block Leader
English: First instruction in a basic block.
Hinglish: Basic block ka pehla instruction.
52. Lookahead Symbol
English: Next input symbol seen by the parser to decide parsing action.
Hinglish: Parser ke samne agla token jo wo dekh kar decision leta hai.
53. Conflict in Parsing
English: When parser can’t decide between two actions due to ambiguity or grammar.
Hinglish: Jab parser confuse ho jata hai ki kya action lena hai.
54. Error Recovery Strategies
English: Methods like panic mode, phrase level used to handle errors during parsing.
Hinglish: Errors ko handle karne ke tarike jaise panic mode.
55. Semantic Rules
English: Rules that specify how to compute attribute values during parsing.
Hinglish: Rules jo parsing ke dauran attributes ka value batate hain.
56. Recursive Descent Parsing
English: A top-down parser built from set of recursive procedures for each grammar rule.
Hinglish: Parser jo recursion ka use karke grammar ke rules ko implement karta hai.
57. Bottom-Up Parsing
English: Parsing method that starts from input tokens and tries to build the start symbol.
Hinglish: Parser jo tokens se start karta hai aur start symbol tak pahuchta hai.
58. Deterministic Finite Automaton (DFA)
English: FSM with exactly one transition per input symbol from each state.
Hinglish: FSM jisme har input ke liye ek hi next state hota hai.
59. Nondeterministic Finite Automaton (NFA)
English: FSM where multiple transitions are possible for the same input from a state.
Hinglish: FSM jisme ek input ke liye kai alag state transition ho sakte hain.
60. Closure and Goto Functions (in LR Parsing)
English: Functions to find all possible states and moves in constructing LR automata.
Hinglish: Functions jo LR parser ke states aur moves ko nikalte hain.
61. LR(0) Item
English: A grammar production with a dot at some position indicating how much of the production has been seen during parsing.
Hinglish: Grammar ka ek rule jisme dot lagakar dikhaya jata hai ki kitna part parser ne padha hai.
62. SLR Parsing (Simple LR Parsing)
English: A simplified LR parsing technique using Follow sets to resolve conflicts.
Hinglish: LR parsing ka simple version jo Follow sets use karke decision leta hai.
63. Canonical LR Parsing
English: Full LR parsing method using LR(0) items and lookahead symbols for precise parsing.
Hinglish: Complete LR parsing jisme lookahead symbols ke saath precise parsing hoti hai.
64. LALR Parsing (LookAhead LR Parsing)
English: Combines states of canonical LR parsing with same core items but different lookaheads to reduce table size.
Hinglish: LR parsing ka efficient version jo table size kam karta hai by merging states.
65. Shift-Reduce Conflict
English: A parser conflict when it can either shift the next input or reduce by a rule but can’t decide.
Hinglish: Parser confuse hota hai ki agla token read kare ya rule apply kare.
66. Reduce-Reduce Conflict
English: A parser conflict when two different reductions are possible at the same point.
Hinglish: Jab parser ke paas ek hi position pe do alag rules apply karne ka option hota hai.
67. Ambiguous Grammar
English: Grammar that can generate more than one parse tree for the same string.
Hinglish: Grammar jisme ek sentence ke liye do ya zyada parse tree bante hain.
68. Parser Generator
English: Tool that automatically creates a parser from a given grammar specification.
Hinglish: Aisi tool jo grammar se parser khud bana deta hai.
69. YACC (Yet Another Compiler Compiler)
English: Popular parser generator tool that takes grammar and produces C code parser.
Hinglish: Parser generator jo grammar leke C code mein parser banata hai.
70. Lexical Analyzer (Lexer)
English: The part of compiler that converts source code into tokens.
Hinglish: Compiler ka woh part jo code ko chhote parts (tokens) mein todta hai.
71. Token
English: A sequence of characters grouped as a meaningful unit like keywords, identifiers.
Hinglish: Characters ka group jo ek meaningful word ya symbol banata hai.
72. Regular Expression (Regex)
English: A notation to describe sets of strings used for pattern matching in lexical analysis.
Hinglish: Pattern jo string ke forms ko define karta hai, lexer mein use hota hai.
73. Finite State Machine (FSM)
English: A model of computation used to recognize patterns and implement lexical analyzers.
Hinglish: Ek simple machine jo input dekh kar state change karta hai, lexer mein use hota hai.
74. Deterministic Finite Automaton (DFA)
English: FSM with exactly one possible move from each state on each input symbol.
Hinglish: FSM jisme har input pe ek hi agla state hota hai.
75. Non-Deterministic Finite Automaton (NFA)
English: FSM which can have multiple possible moves for one input symbol from a state.
Hinglish: FSM jisme ek input pe kai alag state transition ho sakte hain.
76. Parse Tree
English: Tree showing the syntactic structure of a string according to grammar.
Hinglish: Tree jo batata hai ki sentence grammar ke hisab se kaise bana hai.
77. Syntax Tree (Abstract Syntax Tree – AST)
English: Simplified parse tree showing the hierarchical syntactic structure without all details.
Hinglish: Parse tree ka simplified version jo sirf important syntax dikhata hai.
78. Three Address Code (TAC)
English: Intermediate code where each instruction has at most three addresses (operands).
Hinglish: Ek tarah ka code jisme har instruction mein teen parts hote hain.
79. Quadruple
English: A representation of three-address code with four fields: operator, argument1, argument2, result.
Hinglish: Three-address code ka form jisme 4 columns hote hain.
80. Triple
English: Similar to quadruple but stores result position implicitly without a separate field.
Hinglish: Quadruple jaisa hi par result column alag se nahi hota.
81. Intermediate Code
English: Code between source and target code used for optimization and easy translation.
Hinglish: Source aur machine code ke beech ka code jo optimize karna aasan banata hai.
82. Symbol Table
English: Data structure used by the compiler to store information about identifiers.
Hinglish: Table jisme compiler variables, functions ke baare mein information rakhta hai.
83. Scope
English: The region of the program where a variable or function is accessible.
Hinglish: Program ka woh hissa jahan variable ya function use kiya ja sakta hai.
84. Type Checking
English: Process of verifying that operations in the program are semantically correct with respect to types.
Hinglish: Check karna ki variables aur operations ka type sahi hai ya nahi.
85. Type Conversion
English: Automatic or explicit conversion of data from one type to another.
Hinglish: Ek type ke data ko dusre type mein badalna.
86. Basic Block
English: A sequence of instructions with no jumps except at entry and exit.
Hinglish: Instructions ka aisa group jisme sirf start aur end pe hi jumps hote hain.
87. Flow Graph
English: Graph representing control flow between basic blocks.
Hinglish: Graph jo dikhata hai program ke blocks ka execution order.
88. Code Optimization
English: Process of improving intermediate or target code to run faster or use less memory.
Hinglish: Code ko aise sudharna ki wo jaldi chale ya kam memory le.
89. Loop Optimization
English: Techniques to improve loops like unrolling, invariant code motion.
Hinglish: Loops ko optimize karne ke tarike taaki wo tezi se chale.
90. Back-End of Compiler
English: The part of compiler responsible for code generation and optimization.
Hinglish: Compiler ka hissa jo machine code banata hai aur optimize karta hai.