About the Book
        
        Please note that the content of this book primarily consists of articles available from Wikipedia or other free sources online. Pages: 90. Chapters: Abstract syntax, Affix grammar, Aliasing (computing), Array access analysis, Aspect weaver, Attribute grammar, Backus-Naur Form, Basic block, Binary recompiler, Bootstrapping (compilers), Call graph, Code generation (compiler), Compilers: Principles, Techniques, and Tools, Compiler correctness, Compiler Description Language, Compile time, Compile time function execution, Context-free grammar, Control flow graph, Control table, Data structure alignment, Dead code, Dominator (graph theory), Dynamic compilation, Dynamic recompilation, ECLR-attributed grammar, Extended Backus-Naur Form, Extended basic block, First-class function, Funarg problem, GNU cflow, Intermediate language, Intrinsic function, Just-in-time compilation, L-attributed grammar, Lexical analysis, Link time, Literal pool, Loop dependence analysis, Manifest expression, Man or boy test, Memory model (programming), Memory ordering, Metacompilation, Name mangling, Name resolution, Normalized loop, Object file, Overhead code, Parsing, Principles of Compiler Design, S-attributed grammar, Semantic dictionary encoding, Sethi-Ullman algorithm, Static build, Static single assignment form, String grammar, Symbol table, Syntax-directed translation, TBNF, Three address code, Thunk (object-oriented programming), Tombstone diagram, Trace scheduling, Trace tree, Tracing just-in-time compilation, Translation unit (programming), Van Wijngaarden grammar, Works Records System. Excerpt: Control tables are tables that control the control flow or play a major part in program control. There are no rigid rules about the structure or content of a control table-its qualifying attribute is its ability to direct control flow in some way through "execution" by a processor or interpreter. The design of such tables is sometimes referred to as table-driven design (although this typically refers to generating code automatically from external tables rather than direct run-time tables). In some cases, control tables can be specific implementations of finite-state-machine-based automata-based programming. If there are several hierarchical levels of control table they may behave in a manner equivalent to UML state machines Control tables often have the equivalent of conditional expressions or function references embedded in them, usually implied by their relative column position in the association list. Control tables reduce the need for programming similar structures or program statements over and over again. The two-dimensional nature of most tables makes them easier to view and update than the one-dimensional nature of program code. In some cases, non-programmers can be assigned to maintain the control tables. Controlling a main loop in event-driven programming using a control variable for state transitionsControlling the program cycle for Online transaction processing applications similar to bytecode - but usually with operations implied by the table structure itself The tables can have multiple dimensions, of fixed or variable lengths and are usually portable between computer platforms, requiring only a change to the interpreter, not the algorithm itself - the logic of which is essentially embodied within the table structure and content. The structure of the table may be similar to a multimap associative array, where a data value (or combination of data values) may be mapped to one or more functions to be performed. In perhaps its simplest implementation, a co