28 Pages

07-parsing

Course: CS 415, Fall 2008
School: UVA
Rating:
 
 
 
 
 

Word Count: 1040

Document Preview

More In Depth... Grammars Parsing (Slides copied liberally from Ruth Anderson, Hal Perkins and others) 04/19/09 CS415 - Fall 2005 1 Parsing The syntax of most programming languages can be specified by a context-free grammar (CGF) Parsing: Given a grammar G and a sentence w in L(G ), traverse the derivation (parse tree) for w in some standard order and do something useful at each node The tree might not be...

Register Now

Unformatted Document Excerpt

Coursehero >> Virginia >> UVA >> CS 415

Course Hero has millions of student submitted documents similar to the one
below including study guides, practice problems, reference materials, practice exams, textbook help and tutor support.

Course Hero has millions of student submitted documents similar to the one below including study guides, practice problems, reference materials, practice exams, textbook help and tutor support.
More In Depth... Grammars Parsing (Slides copied liberally from Ruth Anderson, Hal Perkins and others) 04/19/09 CS415 - Fall 2005 1 Parsing The syntax of most programming languages can be specified by a context-free grammar (CGF) Parsing: Given a grammar G and a sentence w in L(G ), traverse the derivation (parse tree) for w in some standard order and do something useful at each node The tree might not be produced explicitly, but the control flow of a parser corresponds to a traversal 04/19/09 CS415 - Fall 2005 2 Old Example program program statement assignStmt id expr int G program ::= statement | program statement statement ::= assignStmt | ifStmt assignStmt ::= id = expr ; ifStmt ::= if ( expr ) stmt expr ::= id | int | expr + expr Id ::= a | b | c | i | j | k | n | x | y | z int ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 statement ifStmt expr expr expr id int statement assignStmt id expr int w 04/19/09 a = 1 ; if ( a + 1 ) b = 2 ; 3 CS415 - Fall 2005 "Standard Order" For practical reasons we want the parser to be deterministic (no backtracking), and we want to examine the source program from left to right. (i.e., parse the program in linear time in the order it appears in the source file) 04/19/09 CS415 - Fall 2005 4 Common Orderings Top-down Start with the root Traverse the parse tree depth-first, left-to-right (leftmost derivation) LL(k) Bottom-up Start at leaves and build up to the root Effectively a rightmost derivation in reverse(!) LR(k) and subsets (LALR(k), SLR(k), etc.) 04/19/09 CS415 - Fall 2005 5 Top-down vs. bottom-up Consider the grammar (Scott, p. 49) id_list -> id id_list_tail id_list_tail -> , id id_list_tail id_list_tail -> ; And input text: A, B, C; 04/19/09 CS415 - Fall 2005 6 04/19/09 CS415 - Fall 2005 7 "Something Useful" At each point (node) in the traversal, perform some semantic action Construct nodes of full parse tree (rare) Construct abstract syntax tree (common) Construct linear, lower-level representation (more common in later parts of a modern compiler) Generate target code on the fly (1-pass compiler; not common in production compilers can't generate very good code in one pass) 04/19/09 CS415 - Fall 2005 8 Context-Free Grammars Formally, a grammar G where is a tuple <N,,P,S> N a finite set of non-terminal symbols a finite set of terminal symbols P a finite set of productions A subset of N (N U )* S the start symbol, a distinguished element of N If not specified otherwise, this is usually assumed to be the non-terminal on the left of the first production 04/19/09 CS415 - Fall 2005 9 Standard Notations a, b, c w, x, y, z A, B, C X, Y, Z , , A or A ::= 04/19/09 elements of elements of * elements of N elements of N U elements of (N U )* if <A, > in P CS415 - Fall 2005 10 Derivation Relations (1) A => derives iff A ::= in P A =>* w if there is a chain of productions starting with A that generates w transitive closure 04/19/09 CS415 - Fall 2005 11 Derivation Relations (2) w A =>lm w derives leftmost iff A ::= in P A w =>rm w iff A ::= in P derives rightmost We will only be interested in leftmost and rightmost derivations not random orderings 04/19/09 CS415 - Fall 2005 12 Languages For A in N, L(A) = { w | A =>* w } If S is the start symbol of grammar G, define L(G ) = L(S ) 04/19/09 CS415 - Fall 2005 13 Reduced Grammars Grammar G is reduced iff for every production A ::= in G there is a derivation S =>* x A z => x z =>* xyz i.e., no production is useless Convention: will we use only reduced grammars 04/19/09 CS415 - Fall 2005 14 Ambiguity Grammar G is unambiguous iff every w in L(G ) has a unique leftmost (or rightmost) derivation Fact: unique leftmost or unique rightmost implies the other A grammar without this property is ambiguous Note that other grammars that generate the same language may be unambiguous We need unambiguous grammars for parsing 04/19/09 CS415 - Fall 2005 15 Example: Ambiguous Grammar for Arithmetic Expressions expr ::= expr + expr | expr - expr | expr * expr | expr / expr | int int ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 Exercise: show that this is ambiguous How? Show two different leftmost or rightmost derivations for the same string Equivalently: show two different parse trees for the same string 04/19/09 CS415 - Fall 2005 16 Example (cont) Give two leftmost derivations of 2+3*4 and show the parse tree expr ::= expr + expr | expr - expr | expr * expr | expr / expr | int int ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 04/19/09 CS415 - Fall 2005 17 Another example Give two different derivations of 5+6+7 expr ::= expr + expr | expr - expr | expr * expr | expr / expr | int int ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 04/19/09 CS415 - Fall 2005 18 What's going on here? The grammar has no notion of precedence or associatively Solution Create a non-terminal for each level of precedence Isolate the corresponding part of the grammar Force the parser to recognize higher precedence sub-expressions first 04/19/09 CS415 - Fall 2005 19 Classic Expression Grammar expr ::= expr + term | expr term | term term ::= term * factor | term / factor | factor factor ::= int | ( expr ) int ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 04/19/09 CS415 - Fall 2005 20 Check: Derive 2 + 3 * 4 expr ::= expr + term | expr term | term term ::= term * factor | term / factor | factor factor ::= int | ( expr ) int ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 CS415 - Fall 2005 21 04/19/09 Check: Derive 5 + 6 + 7 expr ::= expr + term | expr term | term term ::= term * factor | term / factor | factor factor ::= int | ( expr ) int ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 CS415 - Fall 2005 Note interaction between le...

Find millions of documents on Course Hero - Study Guides, Lecture Notes, Reference Materials, Practice Exams and more. Course Hero has millions of course specific materials providing students with the best way to expand their education.

Below is a small sample set of documents:

UVA - CS - 202
Nested QuantifiersCS/APMA 202, Spring 2005 Rosen, section 1.4 Aaron Bloomfield1Multiple quantifiersYou can have multiple quantifiers on a statement x y P(x, y) &quot;For all x, there exists a y such that P(x,y)&quot; Example: x y (x+y = 0) xy P(x,y)
UVA - CS - 445
CS 445 Introduction to Computer GraphicsFall 2006 Aaron BloomfieldOverviewIntroductionWhat is computer graphics? What is it good for? What will I learn in this course? How much work will there be?ApplicationsSyllabusCoursework
UVA - CS - 415
CS 415: Programming LanguagesAlgol Aaron Bloomfield Fall 2005Historical perspectiveBy mid/late 50s a lot of PLs were out there Interest in universal language European and American groups got together in Zurich Result was Algol 58 8 people spe
UVA - CS - 445
General-Purpose Computation on Graphics HardwareDavid LuebkeUniversity of VirginiaCourse Introduction The GPU on commodity video cards has evolved into an extremely flexible and powerful processor Programmability Precision Power We are in
UVA - CS - 445
RasterizationAaron Bloomfield CS 445: Introduction to Graphics Fall 2006 (Slide set originally by David Luebke)The Rendering Pipeline: A TourTransform Illuminate Transform Clip Project RasterizeMode &amp; C e l am ra Param te e rsRe ring Pipe nde
UVA - CS - 202
FunctionsCS 202 Epp section ? Aaron Bloomfield1Definition of a function A function takes an element from a set and maps it to a UNIQUE element in another set2Function terminologyf maps R to Z Domain R f Z Co-domainf(4.3) 4.3 4Pre-image
UVA - CS - 202
Propositional EquivalencesCS/APMA 202, Spring 2005 Rosen, section 1.2 Aaron Bloomfield1Tautology and ContradictionA tautology is a statement that is always truep p will always be true(Negation Law)A contradiction is a statement that is al
UVA - CS - 415
Objective Caml (Ocaml)Aaron Bloomfield CS 415 Fall 20051ML history ML first developed in late 1970's Stands for Meta Langauage Not a &quot;pure&quot; function language Has functions with side effects, imperative programming capabilities Haskell is a
UVA - CS - 202
Methods of ProofCS 202 Rosen section 1.5 Aaron Bloomfield1In this slide set.Rules of inference for propositions Rules of inference for quantified statements Ten methods of proof2Proof methods in this slide setLogical equivalences Ten pro
UVA - CS - 202
Boolean LogicCS 202, Spring 2007 Epp, sections 1.1 and 1.2 Aaron Bloomfield1Administratrivia HW 1: due next Friday Section 1.1 # 49, 52 Section 1.2 # 34, 44, 46 Today's lecture will be somewhat of a review Next week we will see applications
UVA - CS - 445
Making MoviesAaron Bloomfield CS 445: Introduction to Graphics Fall 2006 (Slide set originally by David Brogan)Making Movies Concept Storyboarding Sound Character Development Layout and look Effects Animation Lighting2Concept&quot;Not
UVA - CS - 101
GUI programmingGraphical user interfacebased programmingWindchill Windchill There are several formulas for calculating the windchill temperature twc The one provided by U.S. National Weather Service and is applicable for a windspeed greater tha
UVA - CS - 101
Fall 2004 - CS 101: Test 1Name _UVA Email ID _I. Computing and programming fundamentals1. (4 points) Give two examples of non-PC computing devices.Part I Part II Part III2. (4 points) What does Java program compilation do?Total3. (4 poin
UVA - CS - 101
Fall 2004 - CS 101: Test 3Name _UVA Email ID _Page 1 _ / 10 1. (Bonus 2 points) What is your section? 101 Page 4 _ / 17 101E Page 5 _ / 25 Page 6 _ / 20 Page 2 _ / 10 Page 3 _ / 18Total _ /100 2. (5 points) What is the output of the following c
UVA - CS - 101
CS 101 Exam 1 Spring 200Email Id _ Name _This exam is open text book and closed notes. Different questions have different points associated with them with later occurring questions having more worth than the beginning questions. Because your goal
UVA - CS - 101
CS 101 / CS 101-Ehttp:/www.cs.virginia.edu/~cs101M/W 2:00-3:15 CHM 402 / MEC 205Instructors: CS 101 Aaron Bloomfield http:/www.cs.virginia.edu/~asbCS 101-E James Cohoon http:/www.cs.virginia.edu/~cohoonOffice: Olsson Hall, room 228D Office: O
UVA - CS - 101
Take care with floating-point valuesConsider double a = 1; double b = 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 double c = .9999999999999999; Two true expressions! c = b b != a Two false expressions! a = b b != c Problem lies with th
UVA - CS - 101
Testing and ExceptionsException Abnormal event occurring during program execution Examples Manipulate nonexistent files File file = new File(s); Scanner fileIn = new Scanner(file); Improper array subscripting int[] a = new int[3]; a
UVA - CS - 101
BooleanvaluesGatewaytodecisionmakingBackground Ourproblemsolvingsolutionssofarhavethestraightlineproperty TheyexecutethesamestatementsforeveryrunoftheprogrampublicclassDisplayForecast /main():applicationentrypoint publicstaticvoidmain(String[]a
UVA - CS - 101
Cir cleKeeps on r ol l i ng Pr oblem design a cir cle r epr esent at ionSome possi bl e questi ons to ask What ki nd of ci r cl e? Why not use an exi sti ng ci r cl e r epr esentati on? What pl ans do you have for the ci r cl e? What
UVA - CS - 101
ClassesPreparation Scenesofarhasbeenbackgroundmaterialandexperience Computingsystemsandproblemsolving Variables Types Inputandoutput Expressions Assignments Objects StandardclassesandmethodsReady ExperiencewhatJavaisreallyabout Designa
UVA - CS - 101
Review for exam 1CS 101 Aaron Bloomfield1Todays lectureAn overview of the review sections of chapters 1-3 Stop me if you want me to go over something in more detail!2Material you may not be comfortable withConstructorsI know there is a
UVA - CS - 101
Iteration 1Java loopingOptions while dowhile for Allow programs to control how many times a statement list is executed 2AveragingProblem Extract a list of positive numbers from standard input and produce their average Number
UVA - CS - 101
Programming with methods and classes 1MethodsInstance (or member) method Operates on a object (i.e., and instance of the class)String s = new String(&quot;Help every cow reach its &quot; + &quot;potential!&quot;); int n = s.length(); Instance method
UVA - CS - 101
Using ObjectsChapter 3 Spring 2005 CS 101 Aaron Bloomfield 1About the assignment statementAssign the value 5 to the variable x int x; x = 5; 5 = x; NOT VALID! This is not a mathematical equals It's a Java assignment The variable you wan
UVA - CS - 101
JavabasicsInclassquiz What aretherule for an ide s ntifie in Java? r In what m thod doe a programbe What is there e s gin? turn typeof that m thod? What e param te doe it re e r(s) s quire ? What is thee xpone ntiation ope rator in Java? How do w
UVA - CS - 101
CS 101Chapter 1: Background Spring 2005 Aaron Bloomfield1Let's beginGoalTeach you how to program effectivelySkills and information to be acquired Mental model of computer and network behavior Problem solving Object-oriented design Jav
UVA - CS - 101
StaplesareourstapleBuilding upon our solutionWhydidthisprogramworkpublicclassStaplerSimulation{ publicstaticvoidmain(String[]args){ StaplermyStapler=newStapler(); System.out.println(myStapler); myStapler.fill(); System.out.println(myStapler); my
UVA - CS - 101
Arrays 1BackgroundProgrammer often need the ability to represent a group of values as a list List may be onedimensional or multidimensional Java provides arrays and the collection classes The Vector class is an example of a collection cla
UVA - CS - 101
ArraysContinued 1Consideredint[] v = new int[10]; int i = 7; int j = 2; int k = 4; v[0] = 1; v[i] = 5; v[j] = v[i] + 3; v[j+1] = v[i] + v[0]; v[v[j] = 12; System.out.println(v[2]); v[k] = stdin.nextInt();v 1v[0]0v[1]8v[2]6v[3]3v
UVA - CS - 101
Decisions,decisions,decisionsChapter5 Spring2005 CS101 AaronBloomfield1BackgroundOurproblemsolvingsolutionssofarhavethestraightlineproperty TheyexecutethesamestatementsforeveryrunoftheprogrampublicclassDisplayForecast /main():applicatione
UVA - CS - 101
Page 2Question 2 No partial creditQuestion 3 No partial creditQuestion 4 No partial creditQuestion 5 No partial creditQuestion 6 -1 if float instead of doubleQuestion 7 -1 if the word 'swap' was mentioned -3 if there are no words
UVA - CS - 101
A B CD E FThis file has 38 characters.
UVA - CS - 101
ABCDEFThisfilehas30characters.
UVA - CS - 415
Fortran lectureFortran history Why do we care? o Was one of the most influential programming languages of all time o It's development mirrors PL evolution o Was the de facto programming languages for many years o Was the first high level language
UVA - CS - 101
Spring 2007 CS 101EMichele CoBoolean Expressions, Precedence, and If StatementsDescription: The following questions demonstrate key concepts related to evaluating Boolean expressions and evaluation precedence. Directions: Discuss your reasoning
UVA - CS - 101
CS 101 Spring 2006 Final ExamName: _Email ID: _This exam is open text book but closed-notes, closed-calculator, closed-neighbor, etc. Unlike the midterm exams, you have a full 3 hours to work on this exam. Please sign the honor pledge here:Pa
UVA - CS - 101
CS 101 Spring 2007 Midterm 1Name: _Email ID: _You only need to write your name and e-mail ID on the first page. This exam is CLOSED text book, closed-notes, closed-calculator, closed-neighbor, etc. Questions are worth different amounts, so be s
UVA - CS - 101
CS 101 Spring 2006 Midterm 3Name: _Email ID: _This exam is open text book but closed-notes, closed-calculator, closed-neighbor, etc. Questions are worth different amounts, so be sure to look over all the questions and plan your time accordingly
UVA - CS - 101
CS 101 Spring 2007 Midterm 2Name: _Email ID: _You only need to write your name and e-mail ID on the first page. This exam is CLOSED text book, closed-notes, closed-calculator, closed-neighbor, etc. Questions are worth different amounts, so be s
UVA - CS - 101
CS 101 Fall 2006 Midterm 3Name: _Email ID: _You only need to write your name and e-mail ID on the first page. This exam is CLOSED text book, closed-notes, closed-calculator, closed-neighbor, etc. Questions are worth different amounts, so be sur
UVA - CS - 101
CS 101 Fall 2006 Final ExamName: _Email ID: _You only need to write your name and e-mail ID on the first page. This exam is CLOSED text book, closed-notes, closed-calculator, closed-neighbor, etc. Questions are worth different amounts, so be su
UVA - CS - 101
CS 101 Fall 2006 Midterm 2Name: _Email ID: _You only need to write your name and e-mail ID on the first page. This exam is CLOSED text book, closed-notes, closed-calculator, closed-neighbor, etc. Questions are worth different amounts, so be sur
UVA - CS - 101
CS 101 &amp; 101-ESpring 2007 http:/www.cs.virginia.edu/~cs101 CS 101: M/W/F 3:00-3:50 in CHM 402 CS 101-E: M/W 2:00-3:15 in MEC 205Instructors: CS 101 Aaron Bloomfield http:/www.cs.virginia.edu/~asbCS 101-E Michele Co http:/www.cs.virginia.edu/~mc2z
UVA - CS - 101
Inheritance and PolymorphismChapter 11 Spring 2007 CS 101 Aaron Bloomfield 1This section is not required material!A note about inheritance. It's not normally covered in 101 It will be gone over in more detail in CS 201 Ask questions if yo
UVA - CS - 101
MethodsChapter 5 Spring 2007 CS 101 Aaron Bloomfield 1PreparationScene so far has been background material and experience Computing systems and problem solving Variables Types Input and output Expressions Assignments Using objects
UVA - CS - 101
Review for Midterm 3CS 101 Spring 2007 1Topic CoverageLoops Chapter 4 Methods Chapter 5 Classes Chapter 6, Designing and creating classes Chapter 9, Static fields and methods, wrapper classes Arrays Chapter 8 2ClassesCircl
UVA - CS - 101
ReviewforExam1Spring2007 CS101/CS101ETodaysclassAnoverviewofchapters13 Stop me if you want me to go over something in moredetail!2Chapter13IntroComputersthinkinbits(1or0)00101001=81Eightbitsperbyte 1024bytes=1Kb 1024
UVA - CS - 101
Course SummaryCourse Summary Spring 2007 CS 101 Aaron Bloomfield 1Course Reflection2Course goalsObjectives: Students who complete the course will: Understand fundamentals of programming such as variables, conditional and iterati
UVA - CS - 101
CS 101Chapter 1: Introduction Aaron Bloomfield Spring 2007 Let's beginGoalTeach you how to program effectivelySkills and information to be acquired What the heck all this means Problem solving Objectoriented design Java 2So,
UVA - CS - 101
CS 101 Exam 2 Spring 2005Email Id _ Name _This exam is open text book and closed notes. Different questions have different points associated with them. Because your goal is to maximize your number of points, we recommend that you do not spend too
UVA - CS - 101
CS 101 Final Exam Fall 2004Email Id _Name _This exam is open book. Each question is worth 3 points.Page 1 Page 2 Page 3 Page 4 Page 5 Page 6 Page 7 Page 8 Total _ / 15 _ / 15 _ / 12 _ / 18 _ / 15 _ / 9 _ / 12 _ / 6 _ / 100 (maximum is 102)1. A
UVA - CS - 101
CS 101 Exam 1 Spring 200Email Id _ Name _This exam is open text book and closed notes. Different questions have different points associated with them with later occurring questions having more worth than the beginning questions. Because your goal
UVA - CS - 101
CS 101 (Fall 05) Exam 1 Grading Guidelines Question 1: 2 points All or nothing Question 2: 2 points 1 point for each column Questions 3-8: 3 points -2 for type error -1 for math error -2 for associativity error -1 for forgetting the .0 for a float/do
UVA - CS - 101
CS 101 Final Exam Grading GuidelinesQuestions 1 &amp; 2: all or nothing Question 3 -1 for wrong modifiers (static, public, etc.) per variable to a max of -3 -4 for no head/tail variables -3 for missing a variable (head, tail, etc) if resulting class doe
UVA - CS - 101
CS 101 Exam Regrade Request FormName: UVa e-mail ID: Exam: Question(s) to be regraded: Action (To be filled in by TA/Grader): a. No Change b. Revised grade:Reasons for Regrade Request: a. Incorrect total. b. Problem (or part thereof) was overlooke
UVA - CS - 101
CS 101 Fall 2005 Midterm 3Name: _Email ID: _This exam is open text book but closed-notes, closed-calculator, closed-neighbor, etc. Questions are worth different amounts, so be sure to look over all the questions and plan your time accordingly.
UVA - CS - 101
CS 101 Fall 2005 Midterm 2Name: _Email ID: _This exam is open text book but closed-notes, closed-calculator, closed-neighbor, etc. Questions are worth different amounts (in particular, the final two questions are worth substantially more than a
UVA - CS - 101
CS 101 Midterm 3 Grading GuidelinesQuestions 1 &amp; 2: All or nothing, as long as they entered a value Question 3 (top of page 2: there were two questions labeled as question 3): -2 for each missing i = 2 -2 for missing int[] c. Note that they don't ha
UVA - CS - 101
Course SummaryCourse Summary Fall 2005 CS 101 Aaron Bloomfield 1Course Reflection2Course goalsObjectives: Students who complete the course will: Understand fundamentals of programming such as variables, conditional and iterative
UVA - CS - 101
TheStackClassFinalReview Fall2005 CS101 AaronBloomfield1MotivationSameasforVectors Wewantaneasywaytostoreelementsinaobjectwithouthaving toworryaboutmanipulatingarrays2PropertiesofourStackclassItneedstohaveanarraytoholdthevalues T