Liveness based Garbage Collection

Size: px
Start display at page:

Download "Liveness based Garbage Collection"

Transcription

1 CS618: Program Analsis I st Semester Ideal Garbage Collection Liveness based Garbage Collection Ame Karkare karkare@cse.iitk.ac.in karkare@cse.iitb.ac.in Department of CSE, IIT Kanpur/Bomba... garbage collection (GC) is a form of automatic memor management. The garbage collector, or just collector, attempts to reclaim garbage, or memor occupied b objects that are no longer in use b the program.... From Wikipedia karkare, CSE, IITK/B CS618 1/36 karkare, CSE, IITK/B CS618 2/36 Real Garbage Collection Liveness based GC... All garbage collectors use some efficient approximation to liveness. In tracing garbage collection, the approximation is that an object can t be live unless it is reachable.... From Memor Management Glossar During execution, there are significant amounts of heap allocated data that are reachable but not live. Current GCs will retain such data. Our idea: We do a liveness analsis of heap data and provide GC with its result. Modif GC to mark data for retention onl if it is live. Consequences: Fewer cells marked. More garbage collected per collection. Fewer garbage collections. Programs expected to run faster and with smaller heap. karkare, CSE, IITK/B CS618 3/36 karkare, CSE, IITK/B CS618 4/36

2 The language analzed An Example First order eager Scheme-like functional language. In Administrative Normal Form (ANF). p Prog ::= d 1...d n e main d Fdef ::= (define (f x 1... x n) e) (if x e 1 e 2 ) e Expr ::= (let x a in e) (return x) k (cons x 1 x 2 ) a App ::= (car x) (cdr x) (null? x) (+ x 1 x 2 ) (f x 1... x n) (if (null?l1)l2 (cons (carl1) (append (cdrl1)l2)))) (letz (cons (cons 4 (cons 5 nil)) (cons 6 nil)) in (let (cons 3 nil) in (letw (appendz) in π:(car (cdrw))))) 3 w z 4 6 Though all cells are reachable at π, a liveness-based GC will retain onl the cells pointed b thick arrows. 5 karkare, CSE, IITK/B CS618 5/36 karkare, CSE, IITK/B CS618 6/36 Liveness Basic Concepts and Notations Demand Access paths: Strings over {0, 1}. 0 access car field 1 access cdr field Denote traversals over the heap graph z w (car (cdrw)) w z Liveness environment: Maps root variables to set of access paths. L i : z {ǫ} w {ǫ, 1, 10, 100} Alternate representation. L i : {z.ǫ} {w.ǫ, w.1, w.10, w.100} karkare, CSE, IITK/B CS618 7/36 Demand (notation: σ) is a description of intended use of the result of an expression. karkare, CSE, IITK/B CS618 8/36

3 Demand Liveness analsis The big picture Demand (notation: σ) is a description of intended use of the result of an expression. We assume the demand on the main expression to be (0+1), which we call σ all. The demands on each function bod, σ f, have to be computed. π main : (letz... in (let... in π 9 : (letw (appendz) in π 10 : (leta (cdrw) in π 11 : (letb (cara) in π 12 : (returnb))))))) π 1 : (lettest (null?l1) in π 2 : (iftest π 3 :(returnl2) π 4 : (lettl (cdrl1) in π 5 : (letrec (append tl l2) in π 6 : (lethd (carl1) in π 7 : (letans (cons hd rec) in π 8 : (returnans)))))))) karkare, CSE, IITK/B CS618 9/36 karkare, CSE, IITK/B CS618 10/36 Liveness analsis The big picture Liveness analsis π main : (letz... in (let... in π 9 : (letw (appendz) in π 10 : (leta (cdrw) in π 11 : (letb (cara) in π 12 : (returnb))))))) Liveness environments: L 1 =... L 2 = L 9 =... L 10 =... π 1 : (lettest (null?l1) in π 2 : (iftest π 3 :(returnl2) π 4 : (lettl (cdrl1) in π 5 : (letrec (append tl l2) in π 6 : (lethd (carl1) in π 7 : (letans (cons hd rec) in π 8 : (returnans)))))))) GOAL: Compute Liveness Environment at various program points, staticall. Lapp(a,σ) Liveness environment generated b an application a, given a demand σ. Lexp(e,σ) Liveness environment before an expression e, given a demand σ. karkare, CSE, IITK/B CS618 11/36 karkare, CSE, IITK/B CS618 12/36

4 Liveness analsis of Expressions Liveness analsis of Primitive Applications Lexp((return x), σ) = {x.σ} x Lexp((if x e 1 e 2 ),σ) = {x.ǫ} Lexp(e 1,σ) Lexp(e 2,σ) Lexp((let x s in e),σ) = L\{x. } Lapp(s, L(x)) where L = Lexp(e,σ) (car x) σ 0 Lapp((car x), σ) = {x.ǫ, x.0σ} Notice the similarit with: α live in (B) = live out (B)\kill(B) gen(b) in classical dataflow analsis for imperative languages. karkare, CSE, IITK/B CS618 13/36 karkare, CSE, IITK/B CS618 14/36 Liveness analsis of Primitive Applications Liveness Analsis of Function Applications x (cons x ) σ 0 1 Lapp((cons x ),σ) = {x.α 0α σ} {.β 1β σ} x (f x ) σ LF 1 f(α) ψ x LF 2 f(β) ψ Lapp((f x ),σ) = x.ψ x σ.ψ σ α β 0 Removal of a leading 0 1 Removal of a leading 1 α β Lapp((cons x ), σ) = x.0σ.1σ We use LF f : context independent summar of f. To find LF i f (...): Assume a smbolic demand σ sm. Let e f be the bod of f. Set LF i f(σ sm ) to Lexp(e f,σ sm )(x i ). How to handle recursive calls? Use LF f with appropriate demand!! karkare, CSE, IITK/B CS618 15/36 karkare, CSE, IITK/B CS618 16/36

5 Liveness analsis The big picture π main : (letz... in (let... in π 9 : (letw (appendz) in π 10 : (leta (cdrw) in π 11 : (letb (cara) in π 12 : (returnb))))))) Liveness environments: L l1 1 = {ǫ} 00σ append 1LF 1 append (1σ append) L l2 1 = σ LF 2 append (1σ append)... L 9 = LF1 append ({ǫ, 1} 10σ all) π 1 : (lettest (null?l1) in π 2 : (iftest π 3 :(returnl2) π 4 : (lettl (cdrl1) inσ π 5 : (letrec (append tl l2) in π 6 : (lethd (carl1) in π 7 : (letans (cons hd rec) in 1σ π 8 : (returnans)))))))) σ Demand summaries: LF 2 append(1σ) Function summaries: LF 1 append (σ) = {ǫ} 00σ 1LF 1 append (1σ) LF 2 append (σ) = σ LF2 append (1σ) Liveness analsis Demand Summar σ main = σ all π main : (letz... in (let... in σ 1 π 9 : (letw (appendz) in π 10 : (leta (cdrw) in π 11 : (letb (cara) in π 12 : (returnb))))))) Liveness environments: L l1 1 = {ǫ} 00σ append 1LF 1 append (1σ append) L l2 1 = σ LF 2 append (1σ append)... L 9 = LF1 append ({ǫ, 1} 10σ all) σ append = σ 1...σ 2 π 1 : (lettest (null?l1) in π 2 : (iftest π 3 :(returnl2) π 4 : (lettl (cdrl1) in σ 2 π 5 : (letrec (append tl l2) in π 6 : (lethd (carl1) in π 7 : (letans (cons hd rec) in π 8 : (returnans)))))))) Demand summaries: σ main = σ all σ append = {ǫ, 1} 10σ all 1σ append Function summaries: LF 1 append (σ) = {ǫ} 00σ 1LF 1 append (1σ) LF 2 append (σ) = σ LF2 append (1σ) karkare, CSE, IITK/B CS618 17/36 karkare, CSE, IITK/B CS618 18/36 Obtaining a closed form solution for LF Summar of Analsis Results Function summaries will alwas have the form: LF i f (σ) = Ii f Di f σ Consider the equation for LF 1 append Liveness at program points: Demand summaries: Function summaries: LF 1 append (σ) = {ǫ} 00σ 1LF1 append (1σ) Substitute the assumed form in the equation: I 1 append D1 append σ = {ǫ} 00σ 1(I1 append D1 append 1σ) Equating the terms without and with σ, we get: I 1 append = {ǫ} 1I1 append D 1 append = 00 1D1 append 1 L l1 1 = {ǫ} 00σ 1(I 1 append D1 append 1σ append) L l2 1 = {ǫ} I 2 append D 2 append 1σ append L l1 5 = {ǫ} 00σ append L tl 5 = I 1 append D1 append 1σ append L l2 5 = I 2 append D2 append 1σ append... σ append = {ǫ, 1} 1σ append 10σ all I 1 append = {ǫ} 1I1 append D 1 append = 00 1D1 append 1 I 2 append = I2 append D 2 append = {ǫ} D2 append 0 karkare, CSE, IITK/B CS618 19/36 karkare, CSE, IITK/B CS618 20/36

6 Solution of the equations Working of Liveness-based GC (Mark phase) View the equations as grammar rules: L l1 1 ǫ 00σ 1(I 1 append D1 append 1σ append) I 1 append ǫ 1I 1 append D 1 append 00 1D 1 append 1 The solution of L l1 1 is the language L(L l1 1 ) generated b it. GC invoked at a program point π GC traverses a path α starting from a root variable x. GC consults L x π: Does α L(L x π)? If es, then mark the current cell Note that α is a forward-onl access path consisting onl of edges 0 and 1, but not 0 or 1 But L(L x π) has access paths marked with 0/1 for 0/1 removal arising from the cons rule. karkare, CSE, IITK/B CS618 21/36 karkare, CSE, IITK/B CS618 22/36 0/1 handling GC decision problem 0 removal from a set of access paths: α 1 00α 2 α 1 α 2 α 1 01α 2 drop α 1 01α 2 from the set 1 removal from a set of access paths: α 1 11α 2 α 1 α 2 α 1 10α 2 drop α 1 10α 2 from the set Deciding the membership in a CFG augmented with a fixed set of unrestricted productions. 00 ǫ 11 ǫ The problem shown to be undecidable 1. Reduction from Halting problem. 1 Prasanna, Sanal, and Karkare. Liveness-Based Garbage Collection for Laz Languages, ISMM karkare, CSE, IITK/B CS618 23/36 karkare, CSE, IITK/B CS618 24/36

7 Practical 0/1 simplification Example The simplification is possible to do on a finite state automaton. Over-approximate the CFG b an automaton (Mohri-Nederhoff transformation). Perform 0/1 removal on the automaton. Grammar for L 9 L 9 I 1 append D1 append (ǫ 1 10σ all) I 1 append ǫ 1I 1 append D 1 append 00 1D 1 append 1 σ all ǫ 0σ all 1σ all After Mohri-Nederhoff transformation L 9 I 1 append D1 append (ǫ 1 10σ all) I 1 append ǫ 1I 1 append D 1 append 00 D 1 append 1D1 append D 1 append 1 D 1 append ǫ σ all ǫ 0σ all 1σ all karkare, CSE, IITK/B CS618 25/36 karkare, CSE, IITK/B CS618 26/36 Automaton for L 9 Experimental Setup 1 L 9 ǫ 1 1 0/1 ǫ 0 0 ǫ 1 0 Built a prototpe consisting of: An ANF-scheme interpreter Liveness analzer A single-generation coping collector /1 L 9 q 0 0 q 0 1 q 1 2 q 0 3 q 4 ǫ 1 0/1 1/1 1 L 9 q 0 0 q 0 6 q /1 0/1 L 9 q 0 0 q 0 1 q 0 5 q 2 1 0/1 L 9 q 0 0 q 6 ǫ The collector optionall uses liveness Marks a link during GC onl if it is live. Benchmark programs are mostl from the no-fib suite. karkare, CSE, IITK/B CS618 27/36 karkare, CSE, IITK/B CS618 28/36

8 GC behavior as a graph 1.89e e e e e Cells in active semi-space (LGC) Cells in active semi-space (RGC) No. of reachable cells No. of live cells Results as Tables Analsis Performance: Program sudoku lcss gc_bench knightstour treejoin nqueens lambda Time (msec) DFA size Precision(%) Garbage collection performance e+06 6e+06 9e e e+07 nqueens karkare, CSE, IITK/B CS618 29/36 Laz evaluation # Collected MinHeap GC time cells per GC #GCs (#cells) (sec) Program RGC LGC RGC LGC RGC LGC RGC LGC sudoku lcss gc_bench nperm karkare, CSE, IITK/B CS618 30/36 fibheap knightstour treejoin nqueens lambda Laziness: Example LGC collects more garbage than RGC. Garbage collection performance An evaluation strateg in which evaluation of an expression is postponed until its value is needed Binding of a variable to an expression does not force evaluation of the expression Ever expression is evaluated at most once # Collected MinHeap GC time (define (lengthl) cells per GC #GCs (define (#cells) (main) (sec) Program(if (null?l) RGC LGC RGC LGC (leta ( RGC LGC a BIG closure RGC) in LGC sudoku return 0 lcss (letb (+a1) 1701 in gc_benchreturn (+ 1 (length (cdrl))))) (letc (consbnil) in.075 nperm (letw (lengthc) in.9 fibheap (returnw)))))) knightstour treejoin nqueens lambda # collections of LGC no higher than RGC. Often, smaller. karkare, CSE, IITK/B CS618 31/36 Garbage collection performance karkare, CSE, IITK/B CS618 32/36

9 Handling laz semantics: Challenges Handling possible non-evaluation Laziness complicates liveness analsis itself. Data is made live b evaluation of closures In laz languages, the place in the program where this evaluation takes place cannot be staticall determined Liveness-based garbage collector significantl more complicated than that for an eager language. Need to track liveness of closures But a closure can escape the scope in which it was created Solution: carr the liveness information in the closure itself For precision: need to update the liveness information as execution progresses Liveness no longer remains independent of demand σ If (carx) is not evaluated at all, it does not generate an liveness forx Require a new terminal 2 with following semantics { if σ = 2σ {ǫ} otherwise Lapp((carx),σ) =x.{2, 0}σ karkare, CSE, IITK/B CS618 33/36 karkare, CSE, IITK/B CS618 34/36 Scope for future work Conclusions Reducing GC-time. Reducing re-visits to heap nodes. Basing the implementation on full Scheme, not ANF-Scheme Increasing the scope of the method. Laz languages. (Under review) Higher order functions. Specialize all higher order functions (Firstification) Analsis on the firstified program For partial applications, carr information about the base function Using the notion of demand for other analsis. Program Slicing Strictness Analsis All path problem, requires doing intersection of demands intersection of CFGs under-approximation Proposed a liveness-based GC scheme. Not covered in this talk: The soundness of liveness analsis. Details of undecidabilit proof. Details of handling laz languages. A prototpe implementation to demonstrate: the precision of the analsis. reduced heap requirement. reduced GC time for a majorit of programs. Unfinished agenda: Improving GC time for a larger fraction of programs. Extending scope of the method. karkare, CSE, IITK/B CS618 35/36 karkare, CSE, IITK/B CS618 36/36

Liveness based Garbage Collection

Liveness based Garbage Collection CS738: Advanced Compiler Optimizations Liveness based Garbage Collection Amey Karkare karkare@cse.iitk.ac.in http://www.cse.iitk.ac.in/~karkare/cs738 Department of CSE, IIT Kanpur Ideal Garbage Collection...

More information

Decidability (intro.)

Decidability (intro.) CHAPTER 4 Decidability Contents Decidable Languages decidable problems concerning regular languages decidable problems concerning context-free languages The Halting Problem The diagonalization method The

More information

Points-to Analysis using Types

Points-to Analysis using Types CS618: Program Analysis 2016-17 I st Semester Points-to Analysis using Types Amey Karkare karkare@cse.iitk.ac.in karkare@cse.iitb.ac.in Department of CSE, IIT Kanpur/Bombay karkare, CSE, IITK/B CS618 1/10

More information

Great Theoretical Ideas in Computer Science. Lecture 4: Deterministic Finite Automaton (DFA), Part 2

Great Theoretical Ideas in Computer Science. Lecture 4: Deterministic Finite Automaton (DFA), Part 2 5-25 Great Theoretical Ideas in Computer Science Lecture 4: Deterministic Finite Automaton (DFA), Part 2 January 26th, 27 Formal definition: DFA A deterministic finite automaton (DFA) M =(Q,,,q,F) M is

More information

Computability Theory

Computability Theory CS:4330 Theory of Computation Spring 2018 Computability Theory Decidable Problems of CFLs and beyond Haniel Barbosa Readings for this lecture Chapter 4 of [Sipser 1996], 3rd edition. Section 4.1. Decidable

More information

SYLLABUS. Introduction to Finite Automata, Central Concepts of Automata Theory. CHAPTER - 3 : REGULAR EXPRESSIONS AND LANGUAGES

SYLLABUS. Introduction to Finite Automata, Central Concepts of Automata Theory. CHAPTER - 3 : REGULAR EXPRESSIONS AND LANGUAGES Contents i SYLLABUS UNIT - I CHAPTER - 1 : AUT UTOMA OMATA Introduction to Finite Automata, Central Concepts of Automata Theory. CHAPTER - 2 : FINITE AUT UTOMA OMATA An Informal Picture of Finite Automata,

More information

Theory Bridge Exam Example Questions

Theory Bridge Exam Example Questions Theory Bridge Exam Example Questions Annotated version with some (sometimes rather sketchy) answers and notes. This is a collection of sample theory bridge exam questions. This is just to get some idea

More information

Theory of Computation (IX) Yijia Chen Fudan University

Theory of Computation (IX) Yijia Chen Fudan University Theory of Computation (IX) Yijia Chen Fudan University Review The Definition of Algorithm Polynomials and their roots A polynomial is a sum of terms, where each term is a product of certain variables and

More information

FORMAL LANGUAGES, AUTOMATA AND COMPUTATION

FORMAL LANGUAGES, AUTOMATA AND COMPUTATION FORMAL LANGUAGES, AUTOMATA AND COMPUTATION DECIDABILITY ( LECTURE 15) SLIDES FOR 15-453 SPRING 2011 1 / 34 TURING MACHINES-SYNOPSIS The most general model of computation Computations of a TM are described

More information

Parsing Algorithms. CS 4447/CS Stephen Watt University of Western Ontario

Parsing Algorithms. CS 4447/CS Stephen Watt University of Western Ontario Parsing Algorithms CS 4447/CS 9545 -- Stephen Watt University of Western Ontario The Big Picture Develop parsers based on grammars Figure out properties of the grammars Make tables that drive parsing engines

More information

CS 301. Lecture 18 Decidable languages. Stephen Checkoway. April 2, 2018

CS 301. Lecture 18 Decidable languages. Stephen Checkoway. April 2, 2018 CS 301 Lecture 18 Decidable languages Stephen Checkoway April 2, 2018 1 / 26 Decidable language Recall, a language A is decidable if there is some TM M that 1 recognizes A (i.e., L(M) = A), and 2 halts

More information

Computational Models - Lecture 4

Computational Models - Lecture 4 Computational Models - Lecture 4 Regular languages: The Myhill-Nerode Theorem Context-free Grammars Chomsky Normal Form Pumping Lemma for context free languages Non context-free languages: Examples Push

More information

THEORY OF COMPUTATION (AUBER) EXAM CRIB SHEET

THEORY OF COMPUTATION (AUBER) EXAM CRIB SHEET THEORY OF COMPUTATION (AUBER) EXAM CRIB SHEET Regular Languages and FA A language is a set of strings over a finite alphabet Σ. All languages are finite or countably infinite. The set of all languages

More information

UNIT-VIII COMPUTABILITY THEORY

UNIT-VIII COMPUTABILITY THEORY CONTEXT SENSITIVE LANGUAGE UNIT-VIII COMPUTABILITY THEORY A Context Sensitive Grammar is a 4-tuple, G = (N, Σ P, S) where: N Set of non terminal symbols Σ Set of terminal symbols S Start symbol of the

More information

Computability Theory

Computability Theory CS:4330 Theory of Computation Spring 2018 Computability Theory Decidable Languages Haniel Barbosa Readings for this lecture Chapter 4 of [Sipser 1996], 3rd edition. Section 4.1. Decidable Languages We

More information

Theory of Computation p.1/?? Theory of Computation p.2/?? We develop examples of languages that are decidable

Theory of Computation p.1/?? Theory of Computation p.2/?? We develop examples of languages that are decidable Decidable Languages We use languages to represent various computational problems because we have a terminology for dealing with languages Definition: A language is decidable if there is an algorithm (i.e.

More information

Decidability (What, stuff is unsolvable?)

Decidability (What, stuff is unsolvable?) University of Georgia Fall 2014 Outline Decidability Decidable Problems for Regular Languages Decidable Problems for Context Free Languages The Halting Problem Countable and Uncountable Sets Diagonalization

More information

Final exam study sheet for CS3719 Turing machines and decidability.

Final exam study sheet for CS3719 Turing machines and decidability. Final exam study sheet for CS3719 Turing machines and decidability. A Turing machine is a finite automaton with an infinite memory (tape). Formally, a Turing machine is a 6-tuple M = (Q, Σ, Γ, δ, q 0,

More information

MA/CSSE 474 Theory of Computation

MA/CSSE 474 Theory of Computation MA/CSSE 474 Theory of Computation CFL Hierarchy CFL Decision Problems Your Questions? Previous class days' material Reading Assignments HW 12 or 13 problems Anything else I have included some slides online

More information

λ S : A Lambda Calculus with Side-effects

λ S : A Lambda Calculus with Side-effects L14-1 λ S : A Lambda Calculus with Side-effects delivered by Jacob Schwartz Laboratory for Computer Science M.I.T. Lecture 14 M-Structures and Barriers L14-2 Some problems cannot be expressed functionally

More information

Context-Free Languages (Pre Lecture)

Context-Free Languages (Pre Lecture) Context-Free Languages (Pre Lecture) Dr. Neil T. Dantam CSCI-561, Colorado School of Mines Fall 2017 Dantam (Mines CSCI-561) Context-Free Languages (Pre Lecture) Fall 2017 1 / 34 Outline Pumping Lemma

More information

Computability and Complexity

Computability and Complexity Computability and Complexity Decidability, Undecidability and Reducibility; Codes, Algorithms and Languages CAS 705 Ryszard Janicki Department of Computing and Software McMaster University Hamilton, Ontario,

More information

CS5371 Theory of Computation. Lecture 12: Computability III (Decidable Languages relating to DFA, NFA, and CFG)

CS5371 Theory of Computation. Lecture 12: Computability III (Decidable Languages relating to DFA, NFA, and CFG) CS5371 Theory of Computation Lecture 12: Computability III (Decidable Languages relating to DFA, NFA, and CFG) Objectives Recall that decidable languages are languages that can be decided by TM (that means,

More information

Interoperation for Lazy and Eager Evaluation

Interoperation for Lazy and Eager Evaluation Interoperation for Lazy and Eager Evaluation 1 Matthews & Findler New method of interoperation Type safety, observational equivalence & transparency Eager evaluation strategies Lazy vs. eager 2 Lambda

More information

Abstracting Definitional Interpreters. David Van Horn

Abstracting Definitional Interpreters. David Van Horn Abstracting Definitional Interpreters David Van Horn Abstracting Definitional Interpreters David Van Horn Northeastern University Definitional interpreters written in monadic style can express a wide variety

More information

Static Analysis of Programs: A Heap-Centric View

Static Analysis of Programs: A Heap-Centric View Static Analysis of Programs: A Heap-Centric View (www.cse.iitb.ac.in/ uday) Department of Computer Science and Engineering, Indian Institute of Technology, Bombay 5 April 2008 Part 1 Introduction ETAPS

More information

CSE 105 THEORY OF COMPUTATION

CSE 105 THEORY OF COMPUTATION CSE 105 THEORY OF COMPUTATION Spring 2017 http://cseweb.ucsd.edu/classes/sp17/cse105-ab/ Review of CFG, CFL, ambiguity What is the language generated by the CFG below: G 1 = ({S,T 1,T 2 }, {0,1,2}, { S

More information

Chapter 4: Computation tree logic

Chapter 4: Computation tree logic INFOF412 Formal verification of computer systems Chapter 4: Computation tree logic Mickael Randour Formal Methods and Verification group Computer Science Department, ULB March 2017 1 CTL: a specification

More information

CSE 105 THEORY OF COMPUTATION

CSE 105 THEORY OF COMPUTATION CSE 105 THEORY OF COMPUTATION Spring 2016 http://cseweb.ucsd.edu/classes/sp16/cse105-ab/ Today's learning goals Sipser Ch 4.1, 5.1 Define reductions from one problem to another. Use reductions to prove

More information

CS5371 Theory of Computation. Lecture 14: Computability V (Prove by Reduction)

CS5371 Theory of Computation. Lecture 14: Computability V (Prove by Reduction) CS5371 Theory of Computation Lecture 14: Computability V (Prove by Reduction) Objectives This lecture shows more undecidable languages Our proof is not based on diagonalization Instead, we reduce the problem

More information

CSCE 551 Final Exam, April 28, 2016 Answer Key

CSCE 551 Final Exam, April 28, 2016 Answer Key CSCE 551 Final Exam, April 28, 2016 Answer Key 1. (15 points) Fix any alphabet Σ containing the symbol a. For any language L Σ, define the language a\l := {w Σ wa L}. Show that if L is regular, then a\l

More information

Notes on State Minimization

Notes on State Minimization U.C. Berkeley CS172: Automata, Computability and Complexity Handout 1 Professor Luca Trevisan 2/3/2015 Notes on State Minimization These notes present a technique to prove a lower bound on the number of

More information

Solutions to Old Final Exams (For Fall 2007)

Solutions to Old Final Exams (For Fall 2007) Solutions to Old Final Exams (For Fall 2007) CS 381 (Fall 2002, Fall 2004, Fall 2005, Fall 2006) Yogi Sharma Disclaimer: I, Yogi Sharma, do not claim these solution to be complete, or even to be absolutely

More information

Theory of Computation

Theory of Computation Thomas Zeugmann Hokkaido University Laboratory for Algorithmics http://www-alg.ist.hokudai.ac.jp/ thomas/toc/ Lecture 14: Applications of PCP Goal of this Lecture Our goal is to present some typical undecidability

More information

cse303 ELEMENTS OF THE THEORY OF COMPUTATION Professor Anita Wasilewska

cse303 ELEMENTS OF THE THEORY OF COMPUTATION Professor Anita Wasilewska cse303 ELEMENTS OF THE THEORY OF COMPUTATION Professor Anita Wasilewska LECTURE 6 CHAPTER 2 FINITE AUTOMATA 2. Nondeterministic Finite Automata NFA 3. Finite Automata and Regular Expressions 4. Languages

More information

Let us first give some intuitive idea about a state of a system and state transitions before describing finite automata.

Let us first give some intuitive idea about a state of a system and state transitions before describing finite automata. Finite Automata Automata (singular: automation) are a particularly simple, but useful, model of computation. They were initially proposed as a simple model for the behavior of neurons. The concept of a

More information

Introduction. Foundations of Computing Science. Pallab Dasgupta Professor, Dept. of Computer Sc & Engg INDIAN INSTITUTE OF TECHNOLOGY KHARAGPUR

Introduction. Foundations of Computing Science. Pallab Dasgupta Professor, Dept. of Computer Sc & Engg INDIAN INSTITUTE OF TECHNOLOGY KHARAGPUR 1 Introduction Foundations of Computing Science Pallab Dasgupta Professor, Dept. of Computer Sc & Engg 2 Comments on Alan Turing s Paper "On Computable Numbers, with an Application to the Entscheidungs

More information

EXAM. CS331 Compiler Design Spring Please read all instructions, including these, carefully

EXAM. CS331 Compiler Design Spring Please read all instructions, including these, carefully EXAM Please read all instructions, including these, carefully There are 7 questions on the exam, with multiple parts. You have 3 hours to work on the exam. The exam is open book, open notes. Please write

More information

CS 301. Lecture 17 Church Turing thesis. Stephen Checkoway. March 19, 2018

CS 301. Lecture 17 Church Turing thesis. Stephen Checkoway. March 19, 2018 CS 301 Lecture 17 Church Turing thesis Stephen Checkoway March 19, 2018 1 / 17 An abridged modern history of formalizing algorithms An algorithm is a finite, unambiguous sequence of steps for solving a

More information

DM17. Beregnelighed. Jacob Aae Mikkelsen

DM17. Beregnelighed. Jacob Aae Mikkelsen DM17 Beregnelighed Jacob Aae Mikkelsen January 12, 2007 CONTENTS Contents 1 Introduction 2 1.1 Operations with languages...................... 2 2 Finite Automata 3 2.1 Regular expressions/languages....................

More information

Theory of Computation Turing Machine and Pushdown Automata

Theory of Computation Turing Machine and Pushdown Automata Theory of Computation Turing Machine and Pushdown Automata 1. What is a Turing Machine? A Turing Machine is an accepting device which accepts the languages (recursively enumerable set) generated by type

More information

Chapter 2: Finite Automata

Chapter 2: Finite Automata Chapter 2: Finite Automata 2.1 States, State Diagrams, and Transitions Finite automaton is the simplest acceptor or recognizer for language specification. It is also the simplest model of a computer. A

More information

Computational Models - Lecture 3

Computational Models - Lecture 3 Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. p. 1 Computational Models - Lecture 3 Equivalence of regular expressions and regular languages (lukewarm leftover

More information

C4.1 Closure Properties

C4.1 Closure Properties Theory of Computer Science April 4, 2016 C4. Regular Languages: Closure Properties and Decidability Theory of Computer Science C4. Regular Languages: Closure Properties and Decidability C4.1 Closure Properties

More information

ACS2: Decidability Decidability

ACS2: Decidability Decidability Decidability Bernhard Nebel and Christian Becker-Asano 1 Overview An investigation into the solvable/decidable Decidable languages The halting problem (undecidable) 2 Decidable problems? Acceptance problem

More information

Properties of Context-Free Languages

Properties of Context-Free Languages Properties of Context-Free Languages Seungjin Choi Department of Computer Science and Engineering Pohang University of Science and Technology 77 Cheongam-ro, Nam-gu, Pohang 37673, Korea seungjin@postech.ac.kr

More information

CS481F01 Solutions 8

CS481F01 Solutions 8 CS481F01 Solutions 8 A. Demers 7 Dec 2001 1. Prob. 111 from p. 344 of the text. One of the following sets is r.e. and the other is not. Which is which? (a) { i L(M i ) contains at least 481 elements }

More information

CSE 105 THEORY OF COMPUTATION

CSE 105 THEORY OF COMPUTATION CSE 105 THEORY OF COMPUTATION Spring 2016 http://cseweb.ucsd.edu/classes/sp16/cse105-ab/ Today's learning goals Sipser Ch 2 Define push down automata Trace the computation of a push down automaton Design

More information

Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2018

Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2018 Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2018 Lecture 14 Ana Bove May 14th 2018 Recap: Context-free Grammars Simplification of grammars: Elimination of ǫ-productions; Elimination of

More information

Decidability. Human-aware Robotics. 2017/10/31 Chapter 4.1 in Sipser Ø Announcement:

Decidability. Human-aware Robotics. 2017/10/31 Chapter 4.1 in Sipser Ø Announcement: Decidability 2017/10/31 Chapter 4.1 in Sipser Ø Announcement: q q q Slides for this lecture are here: http://www.public.asu.edu/~yzhan442/teaching/cse355/lectures/decidability.pdf Happy Hollaween! Delayed

More information

Chapter 5. Finite Automata

Chapter 5. Finite Automata Chapter 5 Finite Automata 5.1 Finite State Automata Capable of recognizing numerous symbol patterns, the class of regular languages Suitable for pattern-recognition type applications, such as the lexical

More information

A Short Introduction to Hoare Logic

A Short Introduction to Hoare Logic A Short Introduction to Hoare Logic Supratik Chakraborty I.I.T. Bombay June 23, 2008 Supratik Chakraborty (I.I.T. Bombay) A Short Introduction to Hoare Logic June 23, 2008 1 / 34 Motivation Assertion checking

More information

Foundations of Informatics: a Bridging Course

Foundations of Informatics: a Bridging Course Foundations of Informatics: a Bridging Course Week 3: Formal Languages and Semantics Thomas Noll Lehrstuhl für Informatik 2 RWTH Aachen University noll@cs.rwth-aachen.de http://www.b-it-center.de/wob/en/view/class211_id948.html

More information

Operational semantics for disintegration

Operational semantics for disintegration Operational semantics for disintegration Chung-chieh Shan (Indiana University) Norman Ramsey (Tufts University) Mathematical Foundations of Programming Semantics 2016-05-25 1 What is semantics for? 1.

More information

The View Over The Horizon

The View Over The Horizon The View Over The Horizon enumerable decidable context free regular Context-Free Grammars An example of a context free grammar, G 1 : A 0A1 A B B # Terminology: Each line is a substitution rule or production.

More information

Generalizing Data-flow Analysis

Generalizing Data-flow Analysis Generalizing Data-flow Analysis Announcements PA1 grades have been posted Today Other types of data-flow analysis Reaching definitions, available expressions, reaching constants Abstracting data-flow analysis

More information

Context Free Languages: Decidability of a CFL

Context Free Languages: Decidability of a CFL Theorem 14.1 Context Free Languages: Decidability of a CFL Statement: Given a CFL L and string w, there is a decision procedure that determines whether w L. Proof: By construction. 1. Proof using a grammar

More information

Properties of Context-Free Languages. Closure Properties Decision Properties

Properties of Context-Free Languages. Closure Properties Decision Properties Properties of Context-Free Languages Closure Properties Decision Properties 1 Closure Properties of CFL s CFL s are closed under union, concatenation, and Kleene closure. Also, under reversal, homomorphisms

More information

Regular Expressions and Language Properties

Regular Expressions and Language Properties Regular Expressions and Language Properties Mridul Aanjaneya Stanford University July 3, 2012 Mridul Aanjaneya Automata Theory 1/ 47 Tentative Schedule HW #1: Out (07/03), Due (07/11) HW #2: Out (07/10),

More information

6.001 Recitation 22: Streams

6.001 Recitation 22: Streams 6.001 Recitation 22: Streams RI: Gerald Dalley, dalleyg@mit.edu, 4 May 2007 http://people.csail.mit.edu/dalleyg/6.001/sp2007/ The three chief virtues of a programmer are: Laziness, Impatience and Hubris

More information

Prof. Mohamed Hamada Software Engineering Lab. The University of Aizu Japan

Prof. Mohamed Hamada Software Engineering Lab. The University of Aizu Japan Language Processing Systems Prof. Mohamed Hamada Software Engineering La. The University of izu Japan Syntax nalysis (Parsing) 1. Uses Regular Expressions to define tokens 2. Uses Finite utomata to recognize

More information

Decentralized Control of Discrete Event Systems with Bounded or Unbounded Delay Communication

Decentralized Control of Discrete Event Systems with Bounded or Unbounded Delay Communication Decentralized Control of Discrete Event Systems with Bounded or Unbounded Delay Communication Stavros Tripakis Abstract We introduce problems of decentralized control with communication, where we explicitly

More information

Push Down Automaton. Announcement. Puzzle of the day. Last lecture. Running Example. 10/2 things Chomsky hates about CFGs

Push Down Automaton. Announcement. Puzzle of the day. Last lecture. Running Example. 10/2 things Chomsky hates about CFGs Announcement Push Down Automaton Mid term If you have not collected yours yet, see me after/before class. Atri Rudra May 10 A. Rudra, CSE322 2 Puzzle of the day Last lecture Design a context free grammar

More information

CSCE 551: Chin-Tser Huang. University of South Carolina

CSCE 551: Chin-Tser Huang. University of South Carolina CSCE 551: Theory of Computation Chin-Tser Huang huangct@cse.sc.edu University of South Carolina Church-Turing Thesis The definition of the algorithm came in the 1936 papers of Alonzo Church h and Alan

More information

CSE 105 THEORY OF COMPUTATION

CSE 105 THEORY OF COMPUTATION CSE 105 THEORY OF COMPUTATION Spring 2016 http://cseweb.ucsd.edu/classes/sp16/cse105-ab/ Today's learning goals Sipser Ch 2 Design a PDA and a CFG for a given language Give informal description for a PDA,

More information

Automata Theory. CS F-10 Non-Context-Free Langauges Closure Properties of Context-Free Languages. David Galles

Automata Theory. CS F-10 Non-Context-Free Langauges Closure Properties of Context-Free Languages. David Galles Automata Theory CS411-2015F-10 Non-Context-Free Langauges Closure Properties of Context-Free Languages David Galles Department of Computer Science University of San Francisco 10-0: Fun with CFGs Create

More information

Data flow analysis. DataFlow analysis

Data flow analysis. DataFlow analysis Data flow analysis DataFlow analysis compile time reasoning about the runtime flow of values in the program represent facts about runtime behavior represent effect of executing each basic block propagate

More information

PROOFS IN PREDICATE LOGIC AND COMPLETENESS; WHAT DECIDABILITY MEANS HUTH AND RYAN 2.3, SUPPLEMENTARY NOTES 2

PROOFS IN PREDICATE LOGIC AND COMPLETENESS; WHAT DECIDABILITY MEANS HUTH AND RYAN 2.3, SUPPLEMENTARY NOTES 2 PROOFS IN PREDICATE LOGIC AND COMPLETENESS; WHAT DECIDABILITY MEANS HUTH AND RYAN 2.3, SUPPLEMENTARY NOTES 2 Neil D. Jones DIKU 2005 12 September, 2005 Some slides today new, some based on logic 2004 (Nils

More information

Compiling Techniques

Compiling Techniques Lecture 6: 9 October 2015 Announcement New tutorial session: Friday 2pm check ct course webpage to find your allocated group Table of contents 1 2 Ambiguity s Bottom-Up Parser A bottom-up parser builds

More information

arxiv: v2 [cs.fl] 29 Nov 2013

arxiv: v2 [cs.fl] 29 Nov 2013 A Survey of Multi-Tape Automata Carlo A. Furia May 2012 arxiv:1205.0178v2 [cs.fl] 29 Nov 2013 Abstract This paper summarizes the fundamental expressiveness, closure, and decidability properties of various

More information

Opleiding Informatica

Opleiding Informatica Opleiding Informatica Tape-quantifying Turing machines in the arithmetical hierarchy Simon Heijungs Supervisors: H.J. Hoogeboom & R. van Vliet BACHELOR THESIS Leiden Institute of Advanced Computer Science

More information

Finite Automata. Dr. Neil T. Dantam. Fall CSCI-561, Colorado School of Mines. Dantam (Mines CSCI-561) Finite Automata Fall / 35

Finite Automata. Dr. Neil T. Dantam. Fall CSCI-561, Colorado School of Mines. Dantam (Mines CSCI-561) Finite Automata Fall / 35 Finite Automata Dr. Neil T. Dantam CSCI-561, Colorado School of Mines Fall 2017 Dantam (Mines CSCI-561) Finite Automata Fall 2017 1 / 35 Outline Dantam (Mines CSCI-561) Finite Automata Fall 2017 2 / 35

More information

Computation Tree Logic (CTL) & Basic Model Checking Algorithms

Computation Tree Logic (CTL) & Basic Model Checking Algorithms Computation Tree Logic (CTL) & Basic Model Checking Algorithms Martin Fränzle Carl von Ossietzky Universität Dpt. of Computing Science Res. Grp. Hybride Systeme Oldenburg, Germany 02917: CTL & Model Checking

More information

Roy L. Crole. Operational Semantics Abstract Machines and Correctness. University of Leicester, UK

Roy L. Crole. Operational Semantics Abstract Machines and Correctness. University of Leicester, UK Midlands Graduate School, University of Birmingham, April 2008 1 Operational Semantics Abstract Machines and Correctness Roy L. Crole University of Leicester, UK Midlands Graduate School, University of

More information

Closure Properties of Regular Languages. Union, Intersection, Difference, Concatenation, Kleene Closure, Reversal, Homomorphism, Inverse Homomorphism

Closure Properties of Regular Languages. Union, Intersection, Difference, Concatenation, Kleene Closure, Reversal, Homomorphism, Inverse Homomorphism Closure Properties of Regular Languages Union, Intersection, Difference, Concatenation, Kleene Closure, Reversal, Homomorphism, Inverse Homomorphism Closure Properties Recall a closure property is a statement

More information

CS21 Decidability and Tractability

CS21 Decidability and Tractability CS21 Decidability and Tractability Lecture 3 January 9, 2017 January 9, 2017 CS21 Lecture 3 1 Outline NFA, FA equivalence Regular Expressions FA and Regular Expressions January 9, 2017 CS21 Lecture 3 2

More information

Temporal logics and explicit-state model checking. Pierre Wolper Université de Liège

Temporal logics and explicit-state model checking. Pierre Wolper Université de Liège Temporal logics and explicit-state model checking Pierre Wolper Université de Liège 1 Topics to be covered Introducing explicit-state model checking Finite automata on infinite words Temporal Logics and

More information

Lecturecise 22 Weak monadic second-order theory of one successor (WS1S)

Lecturecise 22 Weak monadic second-order theory of one successor (WS1S) Lecturecise 22 Weak monadic second-order theory of one successor (WS1S) 2013 Reachability in the Heap Many programs manipulate linked data structures (lists, trees). To express many important properties

More information

CS21004 Formal Languages and Automata Theory, Spring

CS21004 Formal Languages and Automata Theory, Spring CS21004 Formal Languages and Automata Theory, Spring 2011 12 End-Semester Test Maximum marks: 60 Date: 20 Apr 2012 Duration: Three hours Roll no: Name: Write your answers in the question paper itself.

More information

Nondeterministic finite automata

Nondeterministic finite automata Lecture 3 Nondeterministic finite automata This lecture is focused on the nondeterministic finite automata (NFA) model and its relationship to the DFA model. Nondeterminism is an important concept in the

More information

HKN CS/ECE 374 Midterm 1 Review. Nathan Bleier and Mahir Morshed

HKN CS/ECE 374 Midterm 1 Review. Nathan Bleier and Mahir Morshed HKN CS/ECE 374 Midterm 1 Review Nathan Bleier and Mahir Morshed For the most part, all about strings! String induction (to some extent) Regular languages Regular expressions (regexps) Deterministic finite

More information

CS 581: Introduction to the Theory of Computation! Lecture 1!

CS 581: Introduction to the Theory of Computation! Lecture 1! CS 581: Introduction to the Theory of Computation! Lecture 1! James Hook! Portland State University! hook@cs.pdx.edu! http://www.cs.pdx.edu/~hook/cs581f10/! Welcome!! Contact Information! Jim Hook! Office:

More information

Beyond First-Order Logic

Beyond First-Order Logic Beyond First-Order Logic Software Formal Verification Maria João Frade Departmento de Informática Universidade do Minho 2008/2009 Maria João Frade (DI-UM) Beyond First-Order Logic MFES 2008/09 1 / 37 FOL

More information

Lecture VII Part 2: Syntactic Analysis Bottom-up Parsing: LR Parsing. Prof. Bodik CS Berkley University 1

Lecture VII Part 2: Syntactic Analysis Bottom-up Parsing: LR Parsing. Prof. Bodik CS Berkley University 1 Lecture VII Part 2: Syntactic Analysis Bottom-up Parsing: LR Parsing. Prof. Bodik CS 164 -- Berkley University 1 Bottom-Up Parsing Bottom-up parsing is more general than topdown parsing And just as efficient

More information

Finite Automata. Dr. Neil T. Dantam. Fall CSCI-561, Colorado School of Mines. Dantam (Mines CSCI-561) Finite Automata Fall / 43

Finite Automata. Dr. Neil T. Dantam. Fall CSCI-561, Colorado School of Mines. Dantam (Mines CSCI-561) Finite Automata Fall / 43 Finite Automata Dr. Neil T. Dantam CSCI-561, Colorado School of Mines Fall 2018 Dantam (Mines CSCI-561) Finite Automata Fall 2018 1 / 43 Outline Languages Review Traffic Light Example Deterministic Finite

More information

Decidability. Overview. Preliminaries to Halting Problem. Decidable Problems of Regular Languages. Decidable Problems of Context-Free Languages

Decidability. Overview. Preliminaries to Halting Problem. Decidable Problems of Regular Languages. Decidable Problems of Context-Free Languages CS533 Class 04a: 1 c P. Heeman, 2017 Introduction: Decidability Overview Decidable Problems of Regular Languages Decidable Problems of Context-Free Languages Preliminaries to Halting Problem CS533 Class

More information

Deterministic Finite Automaton (DFA)

Deterministic Finite Automaton (DFA) 1 Lecture Overview Deterministic Finite Automata (DFA) o accepting a string o defining a language Nondeterministic Finite Automata (NFA) o converting to DFA (subset construction) o constructed from a regular

More information

The Turing machine model of computation

The Turing machine model of computation The Turing machine model of computation For most of the remainder of the course we will study the Turing machine model of computation, named after Alan Turing (1912 1954) who proposed the model in 1936.

More information

Lecture Notes on Emptiness Checking, LTL Büchi Automata

Lecture Notes on Emptiness Checking, LTL Büchi Automata 15-414: Bug Catching: Automated Program Verification Lecture Notes on Emptiness Checking, LTL Büchi Automata Matt Fredrikson André Platzer Carnegie Mellon University Lecture 18 1 Introduction We ve seen

More information

Lecture 23: Rice Theorem and Turing machine behavior properties 21 April 2009

Lecture 23: Rice Theorem and Turing machine behavior properties 21 April 2009 CS 373: Theory of Computation Sariel Har-Peled and Madhusudan Parthasarathy Lecture 23: Rice Theorem and Turing machine behavior properties 21 April 2009 This lecture covers Rice s theorem, as well as

More information

Automatic Verification of Parameterized Data Structures

Automatic Verification of Parameterized Data Structures Automatic Verification of Parameterized Data Structures Jyotirmoy V. Deshmukh, E. Allen Emerson and Prateek Gupta The University of Texas at Austin The University of Texas at Austin 1 Outline Motivation

More information

CSE 311 Lecture 28: Undecidability of the Halting Problem. Emina Torlak and Kevin Zatloukal

CSE 311 Lecture 28: Undecidability of the Halting Problem. Emina Torlak and Kevin Zatloukal CSE 311 Lecture 28: Undecidability of the Halting Problem Emina Torlak and Kevin Zatloukal 1 Topics Final exam Logistics, format, and topics. Countability and uncomputability A quick recap of Lecture 27.

More information

CPSC 421: Tutorial #1

CPSC 421: Tutorial #1 CPSC 421: Tutorial #1 October 14, 2016 Set Theory. 1. Let A be an arbitrary set, and let B = {x A : x / x}. That is, B contains all sets in A that do not contain themselves: For all y, ( ) y B if and only

More information

Theory of computation: initial remarks (Chapter 11)

Theory of computation: initial remarks (Chapter 11) Theory of computation: initial remarks (Chapter 11) For many purposes, computation is elegantly modeled with simple mathematical objects: Turing machines, finite automata, pushdown automata, and such.

More information

CSE 311: Foundations of Computing I Autumn 2014 Practice Final: Section X. Closed book, closed notes, no cell phones, no calculators.

CSE 311: Foundations of Computing I Autumn 2014 Practice Final: Section X. Closed book, closed notes, no cell phones, no calculators. CSE 311: Foundations of Computing I Autumn 014 Practice Final: Section X YY ZZ Name: UW ID: Instructions: Closed book, closed notes, no cell phones, no calculators. You have 110 minutes to complete the

More information

Midterm Exam 2 CS 341: Foundations of Computer Science II Fall 2016, face-to-face day section Prof. Marvin K. Nakayama

Midterm Exam 2 CS 341: Foundations of Computer Science II Fall 2016, face-to-face day section Prof. Marvin K. Nakayama Midterm Exam 2 CS 341: Foundations of Computer Science II Fall 2016, face-to-face day section Prof. Marvin K. Nakayama Print family (or last) name: Print given (or first) name: I have read and understand

More information

Formal Languages, Automata and Compilers

Formal Languages, Automata and Compilers Formal Languages, Automata and Compilers Lecure 4 2017-18 LFAC (2017-18) Lecture 4 1 / 31 Curs 4 1 Grammars of type 3 and finite automata 2 Closure properties for type 3 languages 3 Regular Expressions

More information

Automata & languages. A primer on the Theory of Computation. Laurent Vanbever. ETH Zürich (D-ITET) October,

Automata & languages. A primer on the Theory of Computation. Laurent Vanbever.   ETH Zürich (D-ITET) October, Automata & languages A primer on the Theory of Computation Laurent Vanbever www.vanbever.eu ETH Zürich (D-ITET) October, 19 2017 Part 5 out of 5 Last week was all about Context-Free Languages Context-Free

More information

Plan for Today and Beginning Next week (Lexical Analysis)

Plan for Today and Beginning Next week (Lexical Analysis) Plan for Today and Beginning Next week (Lexical Analysis) Regular Expressions Finite State Machines DFAs: Deterministic Finite Automata Complications NFAs: Non Deterministic Finite State Automata From

More information

NPDA, CFG equivalence

NPDA, CFG equivalence NPDA, CFG equivalence Theorem A language L is recognized by a NPDA iff L is described by a CFG. Must prove two directions: ( ) L is recognized by a NPDA implies L is described by a CFG. ( ) L is described

More information