Parsing Arithmetic Expressions Outline
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Arithmetic Operators
Arithmetic Operators Section 2.15 & 3.2 p 60-63, 81-89 9/9/10 CS150 Introduction to Computer Science 1 1 Today • Arithmetic Operators & Expressions o Computation o Precedence o Associativity o Algebra vs C++ o Exponents 9/9/10 CS150 Introduction to Computer Science 1 2 Assigning floats to ints int intVariable; intVariable = 42.7; cout << intVariable; • What do you think is the output? 9/9/10 CS150 Introduction to Computer Science 1 3 Assigning doubles to ints • What is the output here? int intVariable; double doubleVariable = 78.9; intVariable = doubleVariable; cout << intVariable; 9/9/10 CS150 Introduction to Computer Science 1 4 Arithmetic Expressions Arithmetic expressions manipulate numeric data We’ve already seen simple ones The main arithmetic operators are + addition - subtraction * multiplication / division % modulus 9/9/05 CS120 The Information Era 5 +, -, and * Addition, subtraction, and multiplication behave in C++ in the same way that they behave in algebra int num1, num2, num3, num4, sum, mul; num1 = 3; num2 = 5; num3 = 2; num4 = 6; sum = num1 + num2; mul = num3 * num4; 9/9/05 CS120 The Information Era 6 Division • What is the output? o int grade; grade = 100 / 20; cout << grade; o int grade; grade = 100 / 30; cout << grade; 9/9/10 CS150 Introduction to Computer Science 1 7 Division • grade = 100 / 40; o Check operands of / . the data type of grade is not considered, why? o We say the integer is truncated. • grade = 100.0 / 40; o What data type should grade be declared as? 9/9/10 CS150 Introduction to Computer Science 1 8 -
Chapter 7 Expressions and Assignment Statements
Chapter 7 Expressions and Assignment Statements Chapter 7 Topics Introduction Arithmetic Expressions Overloaded Operators Type Conversions Relational and Boolean Expressions Short-Circuit Evaluation Assignment Statements Mixed-Mode Assignment Chapter 7 Expressions and Assignment Statements Introduction Expressions are the fundamental means of specifying computations in a programming language. To understand expression evaluation, need to be familiar with the orders of operator and operand evaluation. Essence of imperative languages is dominant role of assignment statements. Arithmetic Expressions Their evaluation was one of the motivations for the development of the first programming languages. Most of the characteristics of arithmetic expressions in programming languages were inherited from conventions that had evolved in math. Arithmetic expressions consist of operators, operands, parentheses, and function calls. The operators can be unary, or binary. C-based languages include a ternary operator, which has three operands (conditional expression). The purpose of an arithmetic expression is to specify an arithmetic computation. An implementation of such a computation must cause two actions: o Fetching the operands from memory o Executing the arithmetic operations on those operands. Design issues for arithmetic expressions: 1. What are the operator precedence rules? 2. What are the operator associativity rules? 3. What is the order of operand evaluation? 4. Are there restrictions on operand evaluation side effects? 5. Does the language allow user-defined operator overloading? 6. What mode mixing is allowed in expressions? Operator Evaluation Order 1. Precedence The operator precedence rules for expression evaluation define the order in which “adjacent” operators of different precedence levels are evaluated (“adjacent” means they are separated by at most one operand). -
Data Types & Arithmetic Expressions
Data Types & Arithmetic Expressions 1. Objective .............................................................. 2 2. Data Types ........................................................... 2 3. Integers ................................................................ 3 4. Real numbers ....................................................... 3 5. Characters and strings .......................................... 5 6. Basic Data Types Sizes: In Class ......................... 7 7. Constant Variables ............................................... 9 8. Questions/Practice ............................................. 11 9. Input Statement .................................................. 12 10. Arithmetic Expressions .................................... 16 11. Questions/Practice ........................................... 21 12. Shorthand operators ......................................... 22 13. Questions/Practice ........................................... 26 14. Type conversions ............................................. 28 Abdelghani Bellaachia, CSCI 1121 Page: 1 1. Objective To be able to list, describe, and use the C basic data types. To be able to create and use variables and constants. To be able to use simple input and output statements. Learn about type conversion. 2. Data Types A type defines by the following: o A set of values o A set of operations C offers three basic data types: o Integers defined with the keyword int o Characters defined with the keyword char o Real or floating point numbers defined with the keywords -
Calculus Terminology
AP Calculus BC Calculus Terminology Absolute Convergence Asymptote Continued Sum Absolute Maximum Average Rate of Change Continuous Function Absolute Minimum Average Value of a Function Continuously Differentiable Function Absolutely Convergent Axis of Rotation Converge Acceleration Boundary Value Problem Converge Absolutely Alternating Series Bounded Function Converge Conditionally Alternating Series Remainder Bounded Sequence Convergence Tests Alternating Series Test Bounds of Integration Convergent Sequence Analytic Methods Calculus Convergent Series Annulus Cartesian Form Critical Number Antiderivative of a Function Cavalieri’s Principle Critical Point Approximation by Differentials Center of Mass Formula Critical Value Arc Length of a Curve Centroid Curly d Area below a Curve Chain Rule Curve Area between Curves Comparison Test Curve Sketching Area of an Ellipse Concave Cusp Area of a Parabolic Segment Concave Down Cylindrical Shell Method Area under a Curve Concave Up Decreasing Function Area Using Parametric Equations Conditional Convergence Definite Integral Area Using Polar Coordinates Constant Term Definite Integral Rules Degenerate Divergent Series Function Operations Del Operator e Fundamental Theorem of Calculus Deleted Neighborhood Ellipsoid GLB Derivative End Behavior Global Maximum Derivative of a Power Series Essential Discontinuity Global Minimum Derivative Rules Explicit Differentiation Golden Spiral Difference Quotient Explicit Function Graphic Methods Differentiable Exponential Decay Greatest Lower Bound Differential -
Arithmetic Expression Construction
1 Arithmetic Expression Construction 2 Leo Alcock Sualeh Asif Harvard University, Cambridge, MA, USA MIT, Cambridge, MA, USA 3 Jeffrey Bosboom Josh Brunner MIT CSAIL, Cambridge, MA, USA MIT CSAIL, Cambridge, MA, USA 4 Charlotte Chen Erik D. Demaine MIT, Cambridge, MA, USA MIT CSAIL, Cambridge, MA, USA 5 Rogers Epstein Adam Hesterberg MIT CSAIL, Cambridge, MA, USA Harvard University, Cambridge, MA, USA 6 Lior Hirschfeld William Hu MIT, Cambridge, MA, USA MIT, Cambridge, MA, USA 7 Jayson Lynch Sarah Scheffler MIT CSAIL, Cambridge, MA, USA Boston University, Boston, MA, USA 8 Lillian Zhang 9 MIT, Cambridge, MA, USA 10 Abstract 11 When can n given numbers be combined using arithmetic operators from a given subset of 12 {+, −, ×, ÷} to obtain a given target number? We study three variations of this problem of 13 Arithmetic Expression Construction: when the expression (1) is unconstrained; (2) has a specified 14 pattern of parentheses and operators (and only the numbers need to be assigned to blanks); or 15 (3) must match a specified ordering of the numbers (but the operators and parenthesization are 16 free). For each of these variants, and many of the subsets of {+, −, ×, ÷}, we prove the problem 17 NP-complete, sometimes in the weak sense and sometimes in the strong sense. Most of these proofs 18 make use of a rational function framework which proves equivalence of these problems for values in 19 rational functions with values in positive integers. 20 2012 ACM Subject Classification Theory of computation → Problems, reductions and completeness 21 Keywords and phrases Hardness, algebraic complexity, expression trees 22 Digital Object Identifier 10.4230/LIPIcs.ISAAC.2020.41 23 Related Version A full version of the paper is available on arXiv. -
1 Logic, Language and Meaning 2 Syntax and Semantics of Predicate
Semantics and Pragmatics 2 Winter 2011 University of Chicago Handout 1 1 Logic, language and meaning • A formal system is a set of primitives, some statements about the primitives (axioms), and some method of deriving further statements about the primitives from the axioms. • Predicate logic (calculus) is a formal system consisting of: 1. A syntax defining the expressions of a language. 2. A set of axioms (formulae of the language assumed to be true) 3. A set of rules of inference for deriving further formulas from the axioms. • We use this formal system as a tool for analyzing relevant aspects of the meanings of natural languages. • A formal system is a syntactic object, a set of expressions and rules of combination and derivation. However, we can talk about the relation between this system and the models that can be used to interpret it, i.e. to assign extra-linguistic entities as the meanings of expressions. • Logic is useful when it is possible to translate natural languages into a logical language, thereby learning about the properties of natural language meaning from the properties of the things that can act as meanings for a logical language. 2 Syntax and semantics of Predicate Logic 2.1 The vocabulary of Predicate Logic 1. Individual constants: fd; n; j; :::g 2. Individual variables: fx; y; z; :::g The individual variables and constants are the terms. 3. Predicate constants: fP; Q; R; :::g Each predicate has a fixed and finite number of ar- guments called its arity or valence. As we will see, this corresponds closely to argument positions for natural language predicates. -
Operators Precedence and Associativity This Page Lists All C Operators in Order of Their Precedence (Highest to Lowest)
Operators Precedence and Associativity This page lists all C operators in order of their precedence (highest to lowest). Operators within the same box have equal precedence. Precedence Operator Description Associativity () Parentheses (grouping) left-to-right [] Brackets (array subscript) 1 . Member selection via object name -> Member selection via pointer ++ -- Postfix increment/decrement (see Note 1) ++ -- Prefix increment/decrement right-to-left + - Unary plus/minus ! ~ Logical negation/bitwise complement 2 (type) Cast (change type) * Dereference & Address sizeof Determine size in bytes 3 */% Multiplication/division/modulus left-to-right 4 + - Addition/subtraction left-to-right 5 << >> Bitwise shift left, Bitwise shift right left-to-right 6 < <= Relational less than/less than or equal to left-to-right > >= Relational greater than/greater than or equal to 7 == != Relational is equal to/is not equal to left-to-right 8 & Bitwise AND left-to-right 9 ^ Bitwise exclusive OR left-to-right 10 | Bitwise inclusive OR left-to-right 11 && Logical AND left-to-right 12 || Logical OR left-to-right 13 ?: Ternary conditional right-to-left = Assignment right-to-left += -= Addition/subtraction assignment 14 *= /= Multiplication/division assignment %= &= Modulus/bitwise AND assignment ^= |= Bitwise exclusive/inclusive OR assignment <<= >>= Bitwise shift left/right assignment 15 , Comma (separate expressions) left-to-right Note 1 - Postfix increment/decrement have high precedence, but the actual increment or decrement of the operand is delayed (to be accomplished sometime before the statement completes execution). So in the statement y = x * z++; the current value of z is used to evaluate the expression (i.e., z++ evaluates to z) and z only incremented after all else is done. -
Common Errors in Algebraic Expressions: a Quantitative-Qualitative Analysis
International Journal on Social and Education Sciences Volume 1, Issue 2, 2019 ISSN: 2688-7061 (Online) Common Errors in Algebraic Expressions: A Quantitative-Qualitative Analysis Eliseo P. Marpa Philippine Normal University Visayas, Philippines, [email protected] Abstract: Majority of the students regarded algebra as one of the difficult areas in mathematics. They even find difficulties in algebraic expressions. Thus, this investigation was conducted to identify common errors in algebraic expressions of the preservice teachers. A descriptive method of research was used to address the problems. The data were gathered using the developed test administered to the 79 preservice teachers. Statistical tools such as frequency, percent, and mean percentage error were utilized to address the present problems. Results show that performance in algebraic expressions of the preservice teachers is average. However, performance in classifying polynomials and translating mathematical phrases into symbols was very low and low, respectively. Furthermore, the study indicates that preservice teachers were unable to classify polynomials in parenthesis. Likewise, they are confused of the signs in adding and subtracting polynomials. Results disclosed that preservice teachers have difficulties in classifying polynomials according to the degree and polynomials in parenthesis. They also have difficulties in translating mathematical phrases into symbols. Thus, mathematics teachers should strengthen instruction on these topics. Mathematics teachers handling the subject are also encouraged to develop learning exercises that will develop the mastery level of the students. Keywords: Algebraic expressions, Analysis of common errors, Education students, Performance Introduction One of the main objectives of teaching mathematics is to prepare students for practical life. However, students sometimes find mathematics, especially algebra impractical because they could not find any reason or a justification of using the xs and the ys in everyday life. -
Expressions and Assignment Statements Operator Precedence
Chapter 6 - Expressions and Operator Precedence Assignment Statements • A unary operator has one operand • Their evaluation was one of the motivations for • A binary operator has two operands the development of the first PLs • A ternary operator has three operands • Arithmetic expressions consist of operators, operands, parentheses, and function calls The operator precedence rules for expression evaluation define the order in which “adjacent” Design issues for arithmetic expressions: operators of different precedence levels are 1. What are the operator precedence rules? evaluated 2. What are the operator associativity rules? – “adjacent” means they are separated by at 3. What is the order of operand evaluation? most one operand 4. Are there restrictions on operand evaluation side effects? Typical precedence levels: 5. Does the language allow user-defined operator 1. parentheses overloading? 2. unary operators 6. What mode mixing is allowed in expressions? 3. ** (if the language supports it) 4. *, / 5. +, - Chapter 6 Programming 1 Chapter 6 Programming 2 Languages Languages Operator Associativity Operand Evaluation Order The operator associativity rules for expression The process: evaluation define the order in which adjacent 1. Variables: just fetch the value operators with the same precedence level are evaluated 2. Constants: sometimes a fetch from memory; sometimes the constant is in the machine Typical associativity rules: language instruction • Left to right, except **, which is right to left • Sometimes unary operators associate -
3.2 Writing Expressions and Equations
Name:_______________________________ 3.2 Writing Expressions and Equations To translate statements into expressions and equations: 1) Identify __KEY__ __WORDS____ that indicate the operation. 2) Write the numbers/variables in the correct order. The SUM of _____5_______ and ______8______: _____5 + 8_____ The DIFFERENCE of ___n_____ and ____3______ : _____n – 3______ The PRODUCT of ____4______ and ____b – 1____: __4(b – 1)___ The QUOTIENT of ___4_____ and ____ b – 1_____: 4 ÷ (b – 1) or Write each verbal phrase as an algebraic expression. 1. the sum of 8 and t 8 + t 2. the quotient of g and 15 3. the product of 5 and b 5b 4. the difference of 32 and x 32 – x SWITCH THE LESS THAN the first number subtracted ORDER OF from the second! THE TERMS! MORE THAN 5. Eight more than x _x +8_ 6. Six less than p __p – 6___ Write the phrase five dollars less than Jennifer earned as an algebraic expression. Key Words five dollars less than Jennifer earned Variable Let d represent # of $ Jennifer earned Expression d – 5 6. 14 less than f f – 14 7. p more than 10 10 + p 8. 3 more runs than Pirates scored P + 3 9. 12 less than some number n – 12 10. Arthur is 8 years younger than Tanya 11. Kelly’s test score is 6 points higher than Mike’s IS, equals, is equal to Substitute with equal sign. 7. 5 more than a number is 6. 8. The product of 7 and b is equal to 63. n + 5 = 6 7b = 63 9. The sum of r and 45 is 79. -
Software II: Principles of Programming Languages Why Expressions?
Software II: Principles of Programming Languages Lecture 7 – Expressions and Assignment Statements Why Expressions? • Expressions are the fundamental means of specifying computations in a programming language • To understand expression evaluation, need to be familiar with the orders of operator and operand evaluation • Essence of imperative languages is dominant role of assignment statements 1 Arithmetic Expressions • Arithmetic evaluation was one of the motivations for the development of the first programming languages • Arithmetic expressions consist of operators, operands, parentheses, and function calls Arithmetic Expressions: Design Issues • Design issues for arithmetic expressions – Operator precedence rules? – Operator associativity rules? – Order of operand evaluation? – Operand evaluation side effects? – Operator overloading? – Type mixing in expressions? 2 Arithmetic Expressions: Operators • A unary operator has one operand • A binary operator has two operands • A ternary operator has three operands Arithmetic Expressions: Operator Precedence Rules • The operator precedence rules for expression evaluation define the order in which “adjacent” operators of different precedence levels are evaluated • Typical precedence levels – parentheses – unary operators – ** (if the language supports it) – *, / – +, - 3 Arithmetic Expressions: Operator Associativity Rule • The operator associativity rules for expression evaluation define the order in which adjacent operators with the same precedence level are evaluated • Typical associativity -
Formal Languages and Systems
FORMAL LANGUAGES AND SYSTEMS Authors: Heinrich Herre Universit¨at Leipzig Intitut f¨urInformatik Germany Peter Schroeder-Heister Universit¨at T¨ubingen Wilhelm-Schickard-Institut f¨urInformatik email: [email protected] Draft (1995) of a paper which appeared 1998 in the Routledge Encyclopedia of Philosophy Herre & Schroeder-Heister “Formal Languages and Systems” p. 1 FORMAL LANGUAGES AND SYSTEMS Keywords: Consequence relation Deductive system Formal grammar Formal language Formal system Gentzen-style system Hilbert-style system Inference operation Logical calculus Rule-based system Substructural logics Herre & Schroeder-Heister “Formal Languages and Systems” p. 2 FORMAL LANGUAGES AND SYSTEMS Formal languages and systems are concerned with symbolic structures considered under the aspect of generation by formal (syntactic) rules, i.e. irrespective of their or their components’ meaning(s). In the most general sense, a formal language is a set of expressions (1). The most important way of describing this set is by means of grammars (2). Formal systems are formal languages equipped with a consequence operation yielding a deductive system (3). If one further specifies the means by which expressions are built up (connectives, quantifiers) and the rules from which inferences are generated, one obtains logical calculi (4) of various sorts, especially Hilbert-style and Gentzen-style systems. 1 Expressions 2 Grammars 3 Deductive systems 4 Logical calculi 1 Expressions A formal language is a set L of expressions. Expressions are built up from a finite set Σ of atomic symbols or atoms (the alphabet of the language) by means of certain constructors. Normally one confines oneself to linear association (concatenation) ◦ as the only constructor, yielding strings of atoms, also called words (over Σ), starting with the empty word .