Monday, November 7, Structures and dynamic memory
|
|
- Daniel Gilbert
- 6 years ago
- Views:
Transcription
1 Monday, November 7, 2016 Topics for today Structures Structures and dynamic memory Grammars and Languages (Chapter 7) String generation Parsing Regular languages Structures We have seen one composite data structure - the array. Many high level languages enable users to define structures. The main differences between arrays and structures are: elements of an array are accessed by numeric index, structure elements have names array elements are all the same type, structure elements can be of different types. In C Consider for example, the following C definition of a Person structure. typedef struct { char name[20]; int age; char dept[30]; int salary; } Person; With this definition we can declare and manipulate structures of type Person. Person A, B, C; input (A.age); B.salary = C.salary + 500; C.salary = C.age*4; We can also use Person to create larger data structures as in the following examples Example 1 Person Amgen[6000]; Amgen[k].age=30; Comp 162 Notes Page 1 of 11 November 7, 2016
2 Example 2 typedef struct { Person President; Person Faculty[80]; int enrollment; char URL[30]; } College; College CSUCI; Print(CSUCI.President.salary); Structures in Pep/8 (see p. 310) The easiest way to implement a structure in Pep/8 is to define constants representing the offsets within the structure where each field starts. Thus if we assume that a char is 1 byte and an int is 2 bytes, then in the example of Person name occupies bytes 0 through 19 age occupies bytes 20 and 21 dept occupies bytes 22 through 51 salary occupies bytes 52 and name age dept salary thus we will have name:.equate 0 age :.equate 20 dept:.equate 22 salary:.equate 52 The declarations of the Persons in our example are just blocks of the appropriate size A:.block 54 B:.block 54 C:.block 54 and the accessing/updating instructions in our example are as follows Comp 162 Notes Page 2 of 11 November 7, 2016
3 ; input (A.age) ; ldx age,i deci A,x ; B.salary = C.salary ; ldx salary,i lda C,x ; get C.salary adda 500,i sta B,x ; store in B.salary ; C.salary = C.age * 4 ; ldx age,i lda C,x ; C.age asla asla ; C.age * 4 ldx salary,i sta C,x ; to C.salary Structures and dynamic memory allocation We can use dynamic memory allocation, pointers and structures together to implement data structures such as linked lists and trees. In a high-level language, the structure representing a list node might consist of an integer data item and a pointer to the next node and be declared pictorially typedef struct { int data; node* next; } node; data next Warford's code (Fig. 6.47) shows how to construct a linked list. Each new item is prepended to the existing list. Thus if numbers were input in the order 4, 2, 9, 12, the resulting list could be depicted first Comp 162 Notes Page 3 of 11 November 7, 2016
4 The contents of the list can be output in the following manner. P = first while (P!= 0) // zero is our NULL pointer { output(p->data); P = P->next; } Here is a Pep/8 translation (shorter than Warford's code at the end of Fig. 6.47). We assume that both P and first are local variables stored on the stack with appropriate constants defined for symbols P and first. Think of each list node as an array with two elements (one data, one pointer) pointed to from the stack and you will see how mode sxf is the right one to use. lda first,s sta P,s test: breq done ; finished when pointer = 0 ldx data,i deco P,sxf ; output data field of structure pointed to by P charo ' ',i ; and a separating space ldx next,i lda P,sxf ; get field containing pointer to next node sta P,s ; and assign to P br test ; go see if finished done:... Comp 162 Notes Page 4 of 11 November 7, 2016
5 Grammars and Languages (Chapter 7) A (formal) language is a set of character strings. For example, the Java language is the set of all Java programs, the C language is the set of all C programs. Most interesting languages are, like Java and C, infinite sets of strings. An example of a finite language is the set of California license plates. We can represent a finite language by listing all the strings but we cannot do that for an infinite language and for large finite languages we also might like something more convenient. A grammar can be used to represent a language. A grammar can be used (a) to systematically generate the strings and (b) to determine if a given string is in the language the parsing problem For a particular language there might be more than one grammar that can represent it. A grammar has 4 components: (1) a set of terminal symbols (usually denoted with lower case) (2) a set of non-terminal symbols (denote using upper case) (3) a start symbol - one of the non-terminals, usually S (4) a set of replacement rules Example Grammar 1 (1) { x y z } (2) { A B C S } (3) S (4) S A BB A C B C x C y z A rule such as C y z is read as "C can be replaced by y or z" String Generation We start with the start symbol and apply rules until there are only terminal symbols in the string. The string is then one of the strings in the language. For example, one sequence of replacements for our example is Another is S BB CB Cx zx S A C z Comp 162 Notes Page 5 of 11 November 7, 2016
6 Our first example grammar represents a finite language. Here is the complete set of strings we can generate from this grammar { y z xx xy xz yx yy yz zx zy zz } Example Grammar 2 (omitting everything except the replacement rules) S ARTICLE ADJ NOUN ARTICLE the a ADJ red wild absent-minded NOUN desk puppy car The language defined by this grammar is also finite. Using this grammar we can generate 18 strings (sentences). All are syntactically correct (match the rules of the language) though not all make sense. [ Noam Chomsky gave colorless green ideas sleep furiously as an example of a sentence that is grammatically correct but meaningless] Example sentences are: the wild puppy the absent-minded desk a red car Infinite Languages We can generate an infinite language by using rules that are directly or indirectly recursive. An example of a recursive replacement rule is X ax a which causes X to be replaced by one or more a's, For example X ax aax aaax aaaa X a X ax aax aaax aaaax aaaaax aaaaaax aaaaaaa Here is another example of recursion ADJECTIVAL_PHRASE -> <empty> ADJECTIVE ADJECTIVAL_PHRASE ADJECTIVE -> blue fizzy tame Example strings generated from ADJECTIVAL_PHRASE are: tame blue blue fizzy fizzy tame tame blue Comp 162 Notes Page 6 of 11 November 7, 2016
7 The empty string (sometimes denoted Λ) is useful in defining languages. For example, if we want X to be zero or more a s X ax Λ The parsing problem The parsing problem is determining whether a particular string is in a particular language. It is usually of more interest than string generation. We are asking the question "is the string X in the language defined by grammar G"? A compiler needs to be able to tell if the input is a valid program as defined by the rules of the programming language grammar. We could start with the start symbol of G and see if we can generate the string X or we could start with X and see if we could collapse it back to the start symbol. Either way conceptually we try to build a "parse tree" with start symbol S at the root and the elements of string X as the leaves. Grammar String S WX W bw a b X XYZ Λ Y ay Λ Z bc bbaabc Parse tree (is there another?) S / \ W X bw X Y Z b ay bc ay bb aa bc Comp 162 Notes Page 7 of 11 November 7, 2016
8 Yes, there is another possible tree. S / \ W X bw X Y Z bw ay bc bba a bc So this particular grammar is ambiguous for at least one string there is more than one way to generate that string. Ambiguity is a property of the grammar not the language. There are also likely to be many grammars that represent a particular language. Regular languages Noam Chomsky defined a hierarchy of languages. The types of language are defined by what kind of replacement rules are permitted in the grammar. The fewer the restriction on the rules, the more powerful the device we need to solve the parsing problem. Regular languages (Type 3 in Chomsky s hierarchy) have the most restrictions on replacement rules. Rules in a regular grammar can only be of two forms: Non-terminal terminal Non-terminal terminal Non-terminal A regular language can be represented by a regular expression. A regular expression is defined as follows: any symbol is a regular expression if A and B are regular expressions then so are A* AB and A B A* means zero or more repetitions of A. AB is the concatenation of A and B, that is, A followed by B A B means "A or B" We can use parentheses also. In other words we can construct regular expressions using repetition, sequence and choice (note the similarity with program constructs). Comp 162 Notes Page 8 of 11 November 7, 2016
9 Example regular expressions letter (letter digit)* [ this is the set of identifiers ] (digit period digit* ) (digit* period digit) [ some real numbers ] identifier colon [ label in assembly language] open-paren closing-paren open-paren id-list closing-paren [ parameter list] identifier identifier "," id-list [ identifier list] An example of a language which is not regular is the set of well-formed parenthesis strings. This language includes (()) (()()()) ((()(()))) It is not possible to devise a regular expression that defines the set of well-formed parenthesis strings. This language is Type 2 in Chomsky s hierarchy. A grammar for it is S () S() ()S (S) Reading Finish Chapter 6. Which parts of Chapter 7 to read as we go through it? Section 7.1: You can skip the part on Context-Sensitive grammars pp and skim the part on C++ from pages 341 to the end of section 7.1. Section 7.2: you can skip the stuff on non-determinism through to the end of the section (pp ). Section 7.3: skip the material from An Input Buffer Class to the end of the section (pp ) Section 7.4. Skim this. We will have an alternative approach to code generation. Comp 162 Notes Page 9 of 11 November 7, 2016
10 Review Questions 1. Suppose we define a structure type car as typedef struct = { int yearmade; char make[10]; int miles; int hp; char VIN[17]; } car; and we have an array of these as in car Carmax[500]; (a) How many bytes does Carmax occupy? (b) If, in the Pep/8 implementation, M is the address of a particular car, what is the address of the next one? (c) Write code that output the number of old cars (made before 2005). 2. Turn our list-printing loop into a recursive subroutine that takes a pointer to a list as its parameter. 3. Consider the following grammar S aas Saaa Λ Identify a string that can be generated in more than one way 4. Give a grammar that represents the same language as the regular expression a*bcc*. 5. Give a regular expression that represents the same language as the following grammar. S P Q P kp k Q Λ QR R a b Comp 162 Notes Page 10 of 11 November 7, 2016
11 Review Answers 1. (a) 500 * ( ) = 500 * 33 = (b) M+33 (c) ldx 0,i loop:lda carmax,x cpa 2005,i brge skip lda total,d adda 1,i sta total,d skip:addx 33,i cpx 16500,i brlt loop deco total 2. Here is a possible answer Plist: lda 2,s ; parameter breq exit ; branch if null list ldx data,i deco 2,sxf; output P.data subsp 2,i ; for parameter of recusrion ldx next,i lda 2,sxf ; P.next sta 0,s ; is parameter call Plist; of recursion addsp 2,I ; done with parameter exit: ret0 3. For example S aas aaaas aaaaaas aaaaaa S Saaa Saaaaaa aaaaaa 4. For example 5. kk* (a b)* S PQR P Λ ap Q b R c cr Comp 162 Notes Page 11 of 11 November 7, 2016
Wednesday, April
Wednesday, April 9. 2014 Topics for today Addressing mode summary Structures Structures and dynamic memory Grammars and Languages (Chapter 7) String generation Parsing Regular languages Summary of addressing
More informationMonday, October 24, 2016
Monday, October 24, 2016 Topics for today Arrays and Indexed Addressing Arrays as parameters of functions Multi-dimensional arrays Option A: Space-minimal solution Option B: Iliffe vectors Array bound
More informationWednesday, March 12, 2014
Wednesday, March 12, 2014 Topics for today Solutions to HW #3 Arrays and Indexed Addressing Global arrays Local arrays Buffer exploit attacks Solutions to Homework #3 1. deci N,d < (a) N not defined lda
More informationMonday, March 13, 2017
Monday, March 13, 2017 Topics for today Arrays and Indexed Addressing Global arrays Local arrays Buffer exploit attacks Arrays and indexed addressing (section 6.4) So far we have looked at scalars (int,
More informationWednesday, September 27, 2017
Wednesday, September 27, 2017 Topics for today Chapter 6: Mapping High-level to assembly-level The Pep/9 run-time stack (6.1) Stack-relative addressing (,s) SP manipulation Stack as scratch space Global
More informationWednesday, October 17, 2012
Wednesday, October 17, 2012 Topics for today Arrays and Indexed Addressing Arrays as parameters of functions Multi-dimensional arrays Indexed branching Implementation of switch statement Arrays as parameters
More informationMonday, March 6, We have seen how to translate void functions. What about functions that return a value such as
Monday, March 6, 2017 Topics for today C functions and Pep/9 subroutines Translating functions (c) Non-void functions (d) Recursive functions Reverse Engineering: Pep/9 to C C Functions and Pep/9 Subroutines
More informationMonday, October 17, 2016
Monday, October 17, 2016 Topics for today C functions and Pep/8 subroutines Passing parameters by reference Globals Locals Reverse Engineering II Representation of Booleans C Functions and Pep/8 Subroutines
More informationMonday, March 9, 2015
Monday, March 9, 2015 Topics for today C functions and Pep/8 subroutines Passing parameters by reference Globals Locals More reverse engineering: Pep/8 to C Representation of Booleans C Functions and Pep/8
More informationMonday, October 26, 2015
Monday, October 26, 2015 Topics for today Indexed branching Implementation of switch statement Reusable subroutines Indexed branching It turns out that arrays are useful in translating other language constructs,
More informationMonday, September 28, 2015
Monda, September 28, 2015 Topics for toda Chapter 6: Mapping High-level to assembl-level The Pep/8 run-time stack (6.1) Stack-relative addressing (,s) SP manipulation Stack as scratch space Global variables
More informationWednesday, March 14, 2018
Wednesday, March 14, 2018 Topics for today Arrays and Indexed Addressing Arrays as parameters of functions Multi-dimensional arrays Option A: Space-minimal solution Option B: Iliffe vectors Array bound
More informationWednesday, February 19, 2014
Wednesda, Februar 19, 2014 Topics for toda Solutions to HW #2 Topics for Eam #1 Chapter 6: Mapping High-level to assembl-level The Pep/8 run-time stack Stack-relative addressing (,s) SP manipulation Stack
More informationWednesday, March 29, Implementation of sets in an efficient manner illustrates some bit-manipulation ideas.
Wednesday, March 29, 2017 Topics for today Sets: representation and manipulation using bits Dynamic memory allocation Addressing mode summary Sets Implementation of sets in an efficient manner illustrates
More informationCSC 221: Computer Organization, Spring 2009
1 of 7 4/17/2009 10:52 AM Overview Schedule Resources Assignments Home CSC 221: Computer Organization, Spring 2009 Practice Exam 2 Solutions The exam will be open-book, so that you don't have to memorize
More informationWednesday, February 28, 2018
Wednesday, February 28, 2018 Topics for today C functions and Pep/9 subroutines Introduction Location of subprograms in a program Translating functions (a) Void functions (b) Void functions with parameters
More informationMonday, February 16, 2015
Monday, February 16, 2015 Topics for today How assemblers work Symbol tables ILC Pass 1 algorithm, Error checking Pass 2 Immediate mode and equate Assembler variants: Disassembler, Cross assembler Macros
More informationMonday, February 11, 2013
Monday, February 11, 2013 Topics for today The Pep/8 memory Four example programs The loader The assembly language level (Chapter 5) Symbolic Instructions Assembler directives Immediate mode and equate
More informationMonday, March 27, 2017
Monday, March 27, 2017 Topics for today Indexed branching Implementation of switch statement Reusable subroutines Indexed branching It turns out that arrays are useful in translating other language constructs,
More informationWednesday, February 15, 2017
Wednesday, February 15, 2017 Topics for today Before and after assembly: Macros, Linkers Overview of Chapter 6 Branching Unconditional Status bits and branching If statements While statements The V and
More informationWednesday, April 16, 2014
Wednesday, pril 16, 2014 Topics for today Homework #5 solutions Code generation nalysis lgorithm 4: infix to tree Synthesis lgorithm 5: tree to code Optimization HW #5 solutions 1. lda 0,i ; for sum of
More informationWednesday, September 21, 2016
Wednesday, September 21, 2016 Topics for today More high-level to translations Compilers and Assemblers How assemblers work Symbol tables ILC Pass 1 algorithm, Error checking Pass 2 Immediate mode and
More informationWednesday, February 7, 2018
Wednesday, February 7, 2018 Topics for today The Pep/9 memory Four example programs The loader The assembly language level (Chapter 5) Symbolic Instructions Assembler directives Immediate mode and equate
More informationMonday, November 9, 2015
Monday, November 9, 2015 Topics for today Grammars and Languages (Chapter 7) Finite State Machines Semantic actions Code generation - Overview nalysis lgorithm 1: evaluation of postfix lgorithm 2: infix
More informationMonday, April 14, 2014
Monday, April 14, 2014 Topics for today Grammars and Languages (Chapter 7) Finite State Machines Semantic actions Code generation - Overview Analysis Algorithm 1: evaluation of postfix Algorithm 2: infix
More informationWednesday, September 20, 2017
Wednesday, September 20, 2017 Topics for today More high-level to Pep/9 translations Compilers and Assemblers How assemblers work Symbol tables ILC Pass 1 algorithm, Error checking Pass 2 Immediate mode
More informationLow-level software. Components Circuits Gates Transistors
QUIZ Pipelining A computer pipeline has 4 processors, as shown above. Each processor takes 15 ms to execute, and each instruction must go sequentially through all 4 processors. A program has 10 instructions.
More informationWednesday, April 22, 2015
Wednesday, April 22, 2015 Topics for today Topics for Exam 3 Process management (Chapter 8) Loader Traps Interrupts, Time-sharing Storage management (Chapter 9) Main memory (1) Uniprogramming (2) Fixed-partition
More informationCompiler Construction
Compiler Construction Exercises 1 Review of some Topics in Formal Languages 1. (a) Prove that two words x, y commute (i.e., satisfy xy = yx) if and only if there exists a word w such that x = w m, y =
More informationQUIZ. Name all the 4 parts of the fetch-execute cycle.
QUIZ Name all the 4 parts of the fetch-execute cycle. 1 Solution Name all the 4 parts of the fetch-execute cycle. 2 QUIZ Name two fundamental differences between magnetic drives and optical drives: 3 QUIZ
More informationLOW-LEVEL PROGRAMMING LANAGUAGES AND PSEUDOCODE. Introduction to Computer Engineering 2015 Spring by Euiseong Seo
LOW-LEVEL PROGRAMMING LANAGUAGES AND PSEUDOCODE Introduction to Computer Engineering 2015 Spring by Euiseong Seo Where are we? Chapter 1: The Big Picture Chapter 2: Binary Values and Number Systems Chapter
More informationMonday, April 9, 2018
Monday, April 9, 208 Topics for today Grammars and Languages (Chapter 7) Finite State Machines Semantic actions Code generation Overview Finite State Machines (see 7.2) If a language is regular (Type 3)
More informationPrinciples of Programming Languages COMP251: Syntax and Grammars
Principles of Programming Languages COMP251: Syntax and Grammars Prof. Dekai Wu Department of Computer Science and Engineering The Hong Kong University of Science and Technology Hong Kong, China Fall 2007
More informationQUIZ. Name all the 4 parts of the fetch-execute cycle.
QUIZ Name all the 4 parts of the fetch-execute cycle. 1 Solution Name all the 4 parts of the fetch-execute cycle. 2 QUIZ Name two fundamental differences between magnetic drives and optical drives: 3 Solution
More informationLanguages and Compilers
Principles of Software Engineering and Operational Systems Languages and Compilers SDAGE: Level I 2012-13 3. Formal Languages, Grammars and Automata Dr Valery Adzhiev vadzhiev@bournemouth.ac.uk Office:
More informationWednesday, November 8, 2017
Wednesday, November 8, 207 Topics for today Grammars and Languages (hapter 7) Finite State Machines Semantic actions ode generation - Overview Finite State Machines (see 7.2) If a language is regular (Type
More informationA rubric for programming assignments
Fall 2012 Comp 162 Peter Smith A rubric for programming assignments Generally, half the points for a program assignment are for the Correctness of the program with respect to the specification. The other
More informationLow-Level Programming Languages and Pseudocode
Chapter 6 Low-Level Programming Languages and Pseudocode Chapter Goals List the operations that a computer can perform Describe the important features of the Pep/8 virtual machine Distinguish between immediate
More informationProgram Syntax; Operational Semantics
9/5 Solved Program Syntax; Operational Semantics CS 536: Science of Programming, Fall 2018 A. Why Our simple programming language is a model for the kind of constructs seen in actual languages. Step-by-step
More informationLanguages and Strings. Chapter 2
Languages and Strings Chapter 2 Let's Look at Some Problems int alpha, beta; alpha = 3; beta = (2 + 5) / 10; (1) Lexical analysis: Scan the program and break it up into variable names, numbers, etc. (2)
More informationCSE P 501 Exam 12/1/11
Name There are 7 questions worth a total of 100 points. Please budget your time so you get to all of the questions. Keep your answers brief and to the point. You may refer to the following references:
More informationCSE 3302 Programming Languages Lecture 2: Syntax
CSE 3302 Programming Languages Lecture 2: Syntax (based on slides by Chengkai Li) Leonidas Fegaras University of Texas at Arlington CSE 3302 L2 Spring 2011 1 How do we define a PL? Specifying a PL: Syntax:
More informationFormal Languages and Grammars. Chapter 2: Sections 2.1 and 2.2
Formal Languages and Grammars Chapter 2: Sections 2.1 and 2.2 Formal Languages Basis for the design and implementation of programming languages Alphabet: finite set Σ of symbols String: finite sequence
More informationITEC2620 Introduction to Data Structures
ITEC2620 Introduction to Data Structures Lecture 9b Grammars I Overview How can a computer do Natural Language Processing? Grammar checking? Artificial Intelligence Represent knowledge so that brute force
More informationCOMP 181 Compilers. Administrative. Last time. Prelude. Compilation strategy. Translation strategy. Lecture 2 Overview
COMP 181 Compilers Lecture 2 Overview September 7, 2006 Administrative Book? Hopefully: Compilers by Aho, Lam, Sethi, Ullman Mailing list Handouts? Programming assignments For next time, write a hello,
More informationSyntactic Analysis. The Big Picture Again. Grammar. ICS312 Machine-Level and Systems Programming
The Big Picture Again Syntactic Analysis source code Scanner Parser Opt1 Opt2... Optn Instruction Selection Register Allocation Instruction Scheduling machine code ICS312 Machine-Level and Systems Programming
More information1. Lexical Analysis Phase
1. Lexical Analysis Phase The purpose of the lexical analyzer is to read the source program, one character at time, and to translate it into a sequence of primitive units called tokens. Keywords, identifiers,
More informationExtra-credit QUIZ Pipelining -due next time-
QUIZ Pipelining A computer pipeline has 4 processors, as shown above. Each processor takes 15 ms to execute, and each instruction must go sequentially through all 4 processors. A program has 10 instructions.
More information2.2 Syntax Definition
42 CHAPTER 2. A SIMPLE SYNTAX-DIRECTED TRANSLATOR sequence of "three-address" instructions; a more complete example appears in Fig. 2.2. This form of intermediate code takes its name from instructions
More informationCSE P 501 Exam Sample Solution 12/1/11
Question 1. (10 points, 5 each) Regular expressions. Give regular expressions that generate the following sets of strings. You may only use the basic operations of concatenation, choice ( ), and repetition
More informationNotes for Comp 454 Week 2
Notes for Comp 454 Week 2 This week we look at the material in chapters 3 and 4. Homework on Chapters 2, 3 and 4 is assigned (see end of notes). Answers to the homework problems are due by September 10th.
More informationWednesday, April 19, 2017
Wednesday, April 19, 2017 Topics for today Process management (Chapter 8) Loader Traps Interrupts, Time-sharing Storage management (Chapter 9) Main memory (1) Uniprogramming (2) Fixed-partition multiprogramming
More informationannouncements CSE 311: Foundations of Computing review: regular expressions review: languages---sets of strings
CSE 311: Foundations of Computing Fall 2013 Lecture 19: Regular expressions & context-free grammars announcements Reading assignments 7 th Edition, pp. 878-880 and pp. 851-855 6 th Edition, pp. 817-819
More information22c:111 Programming Language Concepts. Fall Types I
22c:111 Programming Language Concepts Fall 2008 Types I Copyright 2007-08, The McGraw-Hill Company and Cesare Tinelli. These notes were originally developed by Allen Tucker, Robert Noonan and modified
More informationTheory and Compiling COMP360
Theory and Compiling COMP360 It has been said that man is a rational animal. All my life I have been searching for evidence which could support this. Bertrand Russell Reading Read sections 2.1 3.2 in the
More informationSummary: Direct Code Generation
Summary: Direct Code Generation 1 Direct Code Generation Code generation involves the generation of the target representation (object code) from the annotated parse tree (or Abstract Syntactic Tree, AST)
More informationADTS, GRAMMARS, PARSING, TREE TRAVERSALS
3//15 1 AD: Abstract Data ype 2 Just like a type: Bunch of values together with operations on them. Used often in discussing data structures Important: he definition says ntthing about the implementation,
More informationContext-Free Grammars
Context-Free Grammars Describing Languages We've seen two models for the regular languages: Finite automata accept precisely the strings in the language. Regular expressions describe precisely the strings
More informationCOMP Logic for Computer Scientists. Lecture 25
COMP 1002 Logic for Computer Scientists Lecture 25 B 5 2 J Admin stuff Assignment 4 is posted. Due March 23 rd. Monday March 20 th office hours From 2:30pm to 3:30pm I need to attend something 2-2:30pm.
More informationA language is a subset of the set of all strings over some alphabet. string: a sequence of symbols alphabet: a set of symbols
The current topic:! Introduction! Object-oriented programming: Python! Functional programming: Scheme! Python GUI programming (Tkinter)! Types and values! Logic programming: Prolog! Introduction! Rules,
More informationWednesday, November 15, 2017
Wednesday, November 15, 2017 Topics for today Code generation Synthesis Algorithm 5: tree to code Optimizations Code generation Algorithm 5: generating assembly code Visiting all the nodes in a linked
More informationThis book is licensed under a Creative Commons Attribution 3.0 License
6. Syntax Learning objectives: syntax and semantics syntax diagrams and EBNF describe context-free grammars terminal and nonterminal symbols productions definition of EBNF by itself parse tree grammars
More informationProof Techniques Alphabets, Strings, and Languages. Foundations of Computer Science Theory
Proof Techniques Alphabets, Strings, and Languages Foundations of Computer Science Theory Proof By Case Enumeration Sometimes the most straightforward way to prove that a property holds for all elements
More informationCompiler Code Generation COMP360
Compiler Code Generation COMP360 Students who acquire large debts putting themselves through school are unlikely to think about changing society. When you trap people in a system of debt, they can t afford
More informationInformation Science 1
Topics covered Information Science 1 Terms and concepts from Week 8 Simple calculations Documenting programs Simple Calcula,ons Expressions Arithmetic operators and arithmetic operator precedence Mixed-type
More informationChapter. Assembly Language
Chapter 5 Assembly Language Mappings The mapping from Asmb5 to ISA3 is one-toone The mapping from HOL6 to Asmb5 is oneto-many Symbols Defined by an identifier followed by a colon at the start of a statement
More informationGlynda, the good witch of the North
Strings and Languages It is always best to start at the beginning -- Glynda, the good witch of the North What is a Language? A language is a set of strings made of of symbols from a given alphabet. An
More informationCSCE 314 TAMU Fall CSCE 314: Programming Languages Dr. Flemming Andersen. Haskell Functions
1 CSCE 314: Programming Languages Dr. Flemming Andersen Haskell Functions 2 Outline Defining Functions List Comprehensions Recursion 3 Conditional Expressions As in most programming languages, functions
More informationFlow Control. CSC215 Lecture
Flow Control CSC215 Lecture Outline Blocks and compound statements Conditional statements if - statement if-else - statement switch - statement? : opertator Nested conditional statements Repetitive statements
More informationDefining Program Syntax. Chapter Two Modern Programming Languages, 2nd ed. 1
Defining Program Syntax Chapter Two Modern Programming Languages, 2nd ed. 1 Syntax And Semantics Programming language syntax: how programs look, their form and structure Syntax is defined using a kind
More informationQuestion 1. Notes on the Exam. Today. Comp 104: Operating Systems Concepts 11/05/2015. Revision Lectures
Comp 104: Operating Systems Concepts Revision Lectures Today Here are a sample of questions that could appear in the exam Please LET ME KNOW if there are particular subjects you want to know about??? 1
More informationWeek 3 Lecture 2. Types Constants and Variables
Lecture 2 Types Constants and Variables Types Computers store bits: strings of 0s and 1s Types define how bits are interpreted They can be integers (whole numbers): 1, 2, 3 They can be characters 'a',
More informationPrinciples of Programming Languages COMP251: Syntax and Grammars
Principles of Programming Languages COMP251: Syntax and Grammars Prof. Dekai Wu Department of Computer Science and Engineering The Hong Kong University of Science and Technology Hong Kong, China Fall 2006
More informationCircuit analysis summary
Boolean Algebra Circuit analysis summary After finding the circuit inputs and outputs, you can come up with either an expression or a truth table to describe what the circuit does. You can easily convert
More informationCOP 3402 Systems Software Syntax Analysis (Parser)
COP 3402 Systems Software Syntax Analysis (Parser) Syntax Analysis 1 Outline 1. Definition of Parsing 2. Context Free Grammars 3. Ambiguous/Unambiguous Grammars Syntax Analysis 2 Lexical and Syntax Analysis
More informationObject Code (Machine Code) Dr. D. M. Akbar Hussain Department of Software Engineering & Media Technology. Three Address Code
Code Generation Intermediate Code? Assembly Code Object Code (Machine Code) 1 Intermediate Code P-Code Three Address Code 2 Compiler Construction F6S 1 Intermediate Representation Abstract Syntax Tree
More informationLexical Scanning COMP360
Lexical Scanning COMP360 Captain, we re being scanned. Spock Reading Read sections 2.1 3.2 in the textbook Regular Expression and FSA Assignment A new assignment has been posted on Blackboard It is due
More informationActually, C provides another type of variable which allows us to do just that. These are called dynamic variables.
When a program is run, memory space is immediately reserved for the variables defined in the program. This memory space is kept by the variables until the program terminates. These variables are called
More informationHigh Performance Computing in C and C++
High Performance Computing in C and C++ Rita Borgo Computer Science Department, Swansea University Summary Introduction to C Writing a simple C program Compiling a simple C program Running a simple C program
More informationADTS, GRAMMARS, PARSING, TREE TRAVERSALS. Regrades 10/6/15. Prelim 1. Prelim 1. Expression trees. Pointers to material
1 Prelim 1 2 Max: 99 Mean: 71.2 Median: 73 Std Dev: 1.6 ADS, GRAMMARS, PARSING, R RAVRSALS Lecture 12 CS2110 Spring 2015 3 Prelim 1 Score Grade % 90-99 A 82-89 A-/A 26% 70-82 B/B 62-69 B-/B 50% 50-59 C-/C
More informationProgramming Language Concepts, cs2104 Lecture 04 ( )
Programming Language Concepts, cs2104 Lecture 04 (2003-08-29) Seif Haridi Department of Computer Science, NUS haridi@comp.nus.edu.sg 2003-09-05 S. Haridi, CS2104, L04 (slides: C. Schulte, S. Haridi) 1
More informationNotes on the Exam. Question 1. Today. Comp 104:Operating Systems Concepts 11/05/2015. Revision Lectures (separate questions and answers)
Comp 104:Operating Systems Concepts Revision Lectures (separate questions and answers) Today Here are a sample of questions that could appear in the exam Please LET ME KNOW if there are particular subjects
More informationMonday, April 15, We will lead up to the Analysis and Synthesis algorithms involved by first looking at three simpler ones.
Monday, pril 15, 2013 Topics for today Code generation nalysis lgorithm 1: evaluation of postfix lgorithm 2: infix to postfix lgorithm 3: evaluation of infix lgorithm 4: infix to tree Synthesis lgorithm
More informationWednesday, February 4, Chapter 4
Wednesday, February 4, 2015 Topics for today Introduction to Computer Systems Static overview Operation Cycle Introduction to Pep/8 Features of the system Operational cycle Program trace Categories of
More informationMidterm 2 Solutions Many acceptable answers; one was the following: (defparameter g1
Midterm 2 Solutions 1. [20 points] Consider the language that consist of possibly empty lists of the identifier x enclosed by parentheses and separated by commas. The language includes { () (x) (x,x) (x,x,x)
More informationIntroduction to Programming in C Department of Computer Science and Engineering
Introduction to Programming in C Department of Computer Science and Engineering Once we know structures and pointers to structures, we can introduce some very important data structure called link list.
More informationADTS, GRAMMARS, PARSING, TREE TRAVERSALS
1 Pointers to material ADS, GRAMMARS, PARSING, R RAVRSALS Lecture 13 CS110 all 016 Parse trees: text, section 3.36 Definition of Java Language, sometimes useful: docs.oracle.com/javase/specs/jls/se8/html/index.html
More informationIMPORTANT QUESTIONS IN C FOR THE INTERVIEW
IMPORTANT QUESTIONS IN C FOR THE INTERVIEW 1. What is a header file? Header file is a simple text file which contains prototypes of all in-built functions, predefined variables and symbolic constants.
More informationComp 204: Computer Systems and Their Implementation. Lecture 25a: Revision Lectures (separate questions and answers)
Comp 204: Computer Systems and Their Implementation Lecture 25a: Revision Lectures (separate questions and answers) 1 Today Here are a sample of questions that could appear in the exam Please LET ME KNOW
More informationCSCE 314 Programming Languages
CSCE 314 Programming Languages Syntactic Analysis Dr. Hyunyoung Lee 1 What Is a Programming Language? Language = syntax + semantics The syntax of a language is concerned with the form of a program: how
More informationChapter 3. Describing Syntax and Semantics ISBN
Chapter 3 Describing Syntax and Semantics ISBN 0-321-49362-1 Chapter 3 Topics Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax Copyright 2009 Addison-Wesley. All
More informationTime : 1 Hour Max Marks : 30
Total No. of Questions : 6 P4890 B.E/ Insem.- 74 B.E ( Computer Engg) PRINCIPLES OF MODERN COMPILER DESIGN (2012 Pattern) (Semester I) Time : 1 Hour Max Marks : 30 Q.1 a) Explain need of symbol table with
More informationCOMP Logic for Computer Scientists. Lecture 23
COMP 1002 Logic for Computer cientists Lecture 23 B 5 2 J Admin stuff Assignment 3 extension Because of the power outage, assignment 3 now due on Tuesday, March 14 (also 7pm) Assignment 4 to be posted
More informationDr. Relja Vulanovic Professor of Mathematics Kent State University at Stark c 2008
MATH-LITERACY MANUAL Dr. Relja Vulanovic Professor of Mathematics Kent State University at Stark c 2008 1 Real Numbers 1.1 Sets 1 1.2 Constants and Variables; Real Numbers 7 1.3 Operations with Numbers
More informationLexical Analysis. Dragon Book Chapter 3 Formal Languages Regular Expressions Finite Automata Theory Lexical Analysis using Automata
Lexical Analysis Dragon Book Chapter 3 Formal Languages Regular Expressions Finite Automata Theory Lexical Analysis using Automata Phase Ordering of Front-Ends Lexical analysis (lexer) Break input string
More informationCS 314 Principles of Programming Languages
CS 314 Principles of Programming Languages Lecture 2: Syntax Analysis Zheng (Eddy) Zhang Rutgers University January 22, 2018 Announcement First recitation starts this Wednesday Homework 1 will be release
More informationRegexs with DFA and Parse Trees. CS230 Tutorial 11
Regexs with DFA and Parse Trees CS230 Tutorial 11 Regular Expressions (Regex) This way of representing regular languages using metacharacters. Here are some of the most important ones to know: -- OR example:
More informationConcepts Introduced in Chapter 4
Concepts Introduced in Chapter 4 Grammars Context-Free Grammars Derivations and Parse Trees Ambiguity, Precedence, and Associativity Top Down Parsing Recursive Descent, LL Bottom Up Parsing SLR, LR, LALR
More informationSubject: PROBLEM SOLVING THROUGH C Time: 3 Hours Max. Marks: 100
Code: DC-05 Subject: PROBLEM SOLVING THROUGH C Time: 3 Hours Max. Marks: 100 NOTE: There are 11 Questions in all. Question 1 is compulsory and carries 16 marks. Answer to Q. 1. must be written in the space
More informationGRAMMARS & PARSING. Lecture 7 CS2110 Fall 2013
1 GRAMMARS & PARSING Lecture 7 CS2110 Fall 2013 Pointers to the textbook 2 Parse trees: Text page 592 (23.34), Figure 23-31 Definition of Java Language, sometimes useful: http://docs.oracle.com/javase/specs/jls/se7/html/index.html
More information