Principles of Programming Languages Lexics Vs. Syntax Vs. Semantics
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Truth-Bearers and Truth Value*
Truth-Bearers and Truth Value* I. Introduction The purpose of this document is to explain the following concepts and the relationships between them: statements, propositions, and truth value. In what follows each of these will be discussed in turn. II. Language and Truth-Bearers A. Statements 1. Introduction For present purposes, we will define the term “statement” as follows. Statement: A meaningful declarative sentence.1 It is useful to make sure that the definition of “statement” is clearly understood. 2. Sentences in General To begin with, a statement is a kind of sentence. Obviously, not every string of words is a sentence. Consider: “John store.” Here we have two nouns with a period after them—there is no verb. Grammatically, this is not a sentence—it is just a collection of words with a dot after them. Consider: “If I went to the store.” This isn’t a sentence either. “I went to the store.” is a sentence. However, using the word “if” transforms this string of words into a mere clause that requires another clause to complete it. For example, the following is a sentence: “If I went to the store, I would buy milk.” This issue is not merely one of conforming to arbitrary rules. Remember, a grammatically correct sentence expresses a complete thought.2 The construction “If I went to the store.” does not do this. One wants to By Dr. Robert Tierney. This document is being used by Dr. Tierney for teaching purposes and is not intended for use or publication in any other manner. 1 More precisely, a statement is a meaningful declarative sentence-type. -
Rhetorical Analysis
RHETORICAL ANALYSIS PURPOSE Almost every text makes an argument. Rhetorical analysis is the process of evaluating elements of a text and determining how those elements impact the success or failure of that argument. Often rhetorical analyses address written arguments, but visual, oral, or other kinds of “texts” can also be analyzed. RHETORICAL FEATURES – WHAT TO ANALYZE Asking the right questions about how a text is constructed will help you determine the focus of your rhetorical analysis. A good rhetorical analysis does not try to address every element of a text; discuss just those aspects with the greatest [positive or negative] impact on the text’s effectiveness. THE RHETORICAL SITUATION Remember that no text exists in a vacuum. The rhetorical situation of a text refers to the context in which it is written and read, the audience to whom it is directed, and the purpose of the writer. THE RHETORICAL APPEALS A writer makes many strategic decisions when attempting to persuade an audience. Considering the following rhetorical appeals will help you understand some of these strategies and their effect on an argument. Generally, writers should incorporate a variety of different rhetorical appeals rather than relying on only one kind. Ethos (appeal to the writer’s credibility) What is the writer’s purpose (to argue, explain, teach, defend, call to action, etc.)? Do you trust the writer? Why? Is the writer an authority on the subject? What credentials does the writer have? Does the writer address other viewpoints? How does the writer’s word choice or tone affect how you view the writer? Pathos (a ppeal to emotion or to an audience’s values or beliefs) Who is the target audience for the argument? How is the writer trying to make the audience feel (i.e., sad, happy, angry, guilty)? Is the writer making any assumptions about the background, knowledge, values, etc. -
Ambiguity Detection Methods for Context-Free Grammars
Ambiguity Detection Methods for Context-Free Grammars H.J.S. Basten Master’s thesis August 17, 2007 One Year Master Software Engineering Universiteit van Amsterdam Thesis and Internship Supervisor: Prof. Dr. P. Klint Institute: Centrum voor Wiskunde en Informatica Availability: public domain Contents Abstract 5 Preface 7 1 Introduction 9 1.1 Motivation . 9 1.2 Scope . 10 1.3 Criteria for practical usability . 11 1.4 Existing ambiguity detection methods . 12 1.5 Research questions . 13 1.6 Thesis overview . 14 2 Background and context 15 2.1 Grammars and languages . 15 2.2 Ambiguity in context-free grammars . 16 2.3 Ambiguity detection for context-free grammars . 18 3 Current ambiguity detection methods 19 3.1 Gorn . 19 3.2 Cheung and Uzgalis . 20 3.3 AMBER . 20 3.4 Jampana . 21 3.5 LR(k)test...................................... 22 3.6 Brabrand, Giegerich and Møller . 23 3.7 Schmitz . 24 3.8 Summary . 26 4 Research method 29 4.1 Measurements . 29 4.1.1 Accuracy . 29 4.1.2 Performance . 31 4.1.3 Termination . 31 4.1.4 Usefulness of the output . 31 4.2 Analysis . 33 4.2.1 Scalability . 33 4.2.2 Practical usability . 33 4.3 Investigated ADM implementations . 34 5 Analysis of AMBER 35 5.1 Accuracy . 35 5.2 Performance . 36 3 5.3 Termination . 37 5.4 Usefulness of the output . 38 5.5 Analysis . 38 6 Analysis of MSTA 41 6.1 Accuracy . 41 6.2 Performance . 41 6.3 Termination . 42 6.4 Usefulness of the output . 42 6.5 Analysis . -
Logic, Sets, and Proofs David A
Logic, Sets, and Proofs David A. Cox and Catherine C. McGeoch Amherst College 1 Logic Logical Statements. A logical statement is a mathematical statement that is either true or false. Here we denote logical statements with capital letters A; B. Logical statements be combined to form new logical statements as follows: Name Notation Conjunction A and B Disjunction A or B Negation not A :A Implication A implies B if A, then B A ) B Equivalence A if and only if B A , B Here are some examples of conjunction, disjunction and negation: x > 1 and x < 3: This is true when x is in the open interval (1; 3). x > 1 or x < 3: This is true for all real numbers x. :(x > 1): This is the same as x ≤ 1. Here are two logical statements that are true: x > 4 ) x > 2. x2 = 1 , (x = 1 or x = −1). Note that \x = 1 or x = −1" is usually written x = ±1. Converses, Contrapositives, and Tautologies. We begin with converses and contrapositives: • The converse of \A implies B" is \B implies A". • The contrapositive of \A implies B" is \:B implies :A" Thus the statement \x > 4 ) x > 2" has: • Converse: x > 2 ) x > 4. • Contrapositive: x ≤ 2 ) x ≤ 4. 1 Some logical statements are guaranteed to always be true. These are tautologies. Here are two tautologies that involve converses and contrapositives: • (A if and only if B) , ((A implies B) and (B implies A)). In other words, A and B are equivalent exactly when both A ) B and its converse are true. -
Chapter 3 – Describing Syntax and Semantics CS-4337 Organization of Programming Languages
!" # Chapter 3 – Describing Syntax and Semantics CS-4337 Organization of Programming Languages Dr. Chris Irwin Davis Email: [email protected] Phone: (972) 883-3574 Office: ECSS 4.705 Chapter 3 Topics • Introduction • The General Problem of Describing Syntax • Formal Methods of Describing Syntax • Attribute Grammars • Describing the Meanings of Programs: Dynamic Semantics 1-2 Introduction •Syntax: the form or structure of the expressions, statements, and program units •Semantics: the meaning of the expressions, statements, and program units •Syntax and semantics provide a language’s definition – Users of a language definition •Other language designers •Implementers •Programmers (the users of the language) 1-3 The General Problem of Describing Syntax: Terminology •A sentence is a string of characters over some alphabet •A language is a set of sentences •A lexeme is the lowest level syntactic unit of a language (e.g., *, sum, begin) •A token is a category of lexemes (e.g., identifier) 1-4 Example: Lexemes and Tokens index = 2 * count + 17 Lexemes Tokens index identifier = equal_sign 2 int_literal * mult_op count identifier + plus_op 17 int_literal ; semicolon Formal Definition of Languages • Recognizers – A recognition device reads input strings over the alphabet of the language and decides whether the input strings belong to the language – Example: syntax analysis part of a compiler - Detailed discussion of syntax analysis appears in Chapter 4 • Generators – A device that generates sentences of a language – One can determine if the syntax of a particular sentence is syntactically correct by comparing it to the structure of the generator 1-5 Formal Methods of Describing Syntax •Formal language-generation mechanisms, usually called grammars, are commonly used to describe the syntax of programming languages. -
Topics in Philosophical Logic
Topics in Philosophical Logic The Harvard community has made this article openly available. Please share how this access benefits you. Your story matters Citation Litland, Jon. 2012. Topics in Philosophical Logic. Doctoral dissertation, Harvard University. Citable link http://nrs.harvard.edu/urn-3:HUL.InstRepos:9527318 Terms of Use This article was downloaded from Harvard University’s DASH repository, and is made available under the terms and conditions applicable to Other Posted Material, as set forth at http:// nrs.harvard.edu/urn-3:HUL.InstRepos:dash.current.terms-of- use#LAA © Jon Litland All rights reserved. Warren Goldfarb Jon Litland Topics in Philosophical Logic Abstract In “Proof-Theoretic Justification of Logic”, building on work by Dummett and Prawitz, I show how to construct use-based meaning-theories for the logical constants. The assertability-conditional meaning-theory takes the meaning of the logical constants to be given by their introduction rules; the consequence-conditional meaning-theory takes the meaning of the log- ical constants to be given by their elimination rules. I then consider the question: given a set of introduction (elimination) rules , what are the R strongest elimination (introduction) rules that are validated by an assertabil- ity (consequence) conditional meaning-theory based on ? I prove that the R intuitionistic introduction (elimination) rules are the strongest rules that are validated by the intuitionistic elimination (introduction) rules. I then prove that intuitionistic logic is the strongest logic that can be given either an assertability-conditional or consequence-conditional meaning-theory. In “Grounding Grounding” I discuss the notion of grounding. My discus- sion revolves around the problem of iterated grounding-claims. -
Gottfried Wilhelm Leibniz (1646-1716)
Gottfried Wilhelm Leibniz (1646-1716) • His father, a professor of Philosophy, died when he was small, and he was brought up by his mother. • He learnt Latin at school in Leipzig, but taught himself much more and also taught himself some Greek, possibly because he wanted to read his father’s books. • He studied law and logic at Leipzig University from the age of fourteen – which was not exceptionally young for that time. • His Ph D thesis “De Arte Combinatoria” was completed in 1666 at the University of Altdorf. He was offered a chair there but turned it down. • He then met, and worked for, Baron von Boineburg (at one stage prime minister in the government of Mainz), as a secretary, librarian and lawyer – and was also a personal friend. • Over the years he earned his living mainly as a lawyer and diplomat, working at different times for the states of Mainz, Hanover and Brandenburg. • But he is famous as a mathematician and philosopher. • By his own account, his interest in mathematics developed quite late. • An early interest was mechanics. – He was interested in the works of Huygens and Wren on collisions. – He published Hypothesis Physica Nova in 1671. The hypothesis was that motion depends on the action of a spirit ( a hypothesis shared by Kepler– but not Newton). – At this stage he was already communicating with scientists in London and in Paris. (Over his life he had around 600 scientific correspondents, all over the world.) – He met Huygens in Paris in 1672, while on a political mission, and started working with him. -
Context Free Languages and Pushdown Automata
Context Free Languages and Pushdown Automata COMP2600 — Formal Methods for Software Engineering Ranald Clouston Australian National University Semester 2, 2013 COMP 2600 — Context Free Languages and Pushdown Automata 1 Parsing The process of parsing a program is partly about confirming that a given program is well-formed – syntax. But it is also about representing the structure of the program so that it can be executed – semantics. For this purpose, the trail of sentential forms created en route to generating a given sentence is just as important as the question of whether the sentence can be generated or not. COMP 2600 — Context Free Languages and Pushdown Automata 2 The Semantics of Parses Take the code if e1 then if e2 then s1 else s2 where e1, e2 are boolean expressions and s1, s2 are subprograms. Does this mean if e1 then( if e2 then s1 else s2) or if e1 then( if e2 else s1) else s2 We’d better have an unambiguous way to tell which is right, or we cannot know what the program will do at runtime! COMP 2600 — Context Free Languages and Pushdown Automata 3 Ambiguity Recall that we can present CFG derivations as parse trees. Until now this was mere pretty presentation; now it will become important. A context-free grammar G is unambiguous iff every string can be derived by at most one parse tree. G is ambiguous iff there exists any word w 2 L(G) derivable by more than one parse tree. COMP 2600 — Context Free Languages and Pushdown Automata 4 Example: If-Then and If-Then-Else Consider the CFG S ! if bexp then S j if bexp then S else S j prog where bexp and prog stand for boolean expressions and (if-statement free) programs respectively, defined elsewhere. -
Topics in Context-Free Grammar CFG's
Topics in Context-Free Grammar CFG’s HUSSEIN S. AL-SHEAKH 1 Outline Context-Free Grammar Ambiguous Grammars LL(1) Grammars Eliminating Useless Variables Removing Epsilon Nullable Symbols 2 Context-Free Grammar (CFG) Context-free grammars are powerful enough to describe the syntax of most programming languages; in fact, the syntax of most programming languages is specified using context-free grammars. In linguistics and computer science, a context-free grammar (CFG) is a formal grammar in which every production rule is of the form V → w Where V is a “non-terminal symbol” and w is a “string” consisting of terminals and/or non-terminals. The term "context-free" expresses the fact that the non-terminal V can always be replaced by w, regardless of the context in which it occurs. 3 Definition: Context-Free Grammars Definition 3.1.1 (A. Sudkamp book – Language and Machine 2ed Ed.) A context-free grammar is a quadruple (V, Z, P, S) where: V is a finite set of variables. E (the alphabet) is a finite set of terminal symbols. P is a finite set of rules (Ax). Where x is string of variables and terminals S is a distinguished element of V called the start symbol. The sets V and E are assumed to be disjoint. 4 Definition: Context-Free Languages A language L is context-free IF AND ONLY IF there is a grammar G with L=L(G) . 5 Example A context-free grammar G : S aSb S A derivation: S aSb aaSbb aabb L(G) {anbn : n 0} (((( )))) 6 Derivation Order 1. -
Philosophy of Language in the Twentieth Century Jason Stanley Rutgers University
Philosophy of Language in the Twentieth Century Jason Stanley Rutgers University In the Twentieth Century, Logic and Philosophy of Language are two of the few areas of philosophy in which philosophers made indisputable progress. For example, even now many of the foremost living ethicists present their theories as somewhat more explicit versions of the ideas of Kant, Mill, or Aristotle. In contrast, it would be patently absurd for a contemporary philosopher of language or logician to think of herself as working in the shadow of any figure who died before the Twentieth Century began. Advances in these disciplines make even the most unaccomplished of its practitioners vastly more sophisticated than Kant. There were previous periods in which the problems of language and logic were studied extensively (e.g. the medieval period). But from the perspective of the progress made in the last 120 years, previous work is at most a source of interesting data or occasional insight. All systematic theorizing about content that meets contemporary standards of rigor has been done subsequently. The advances Philosophy of Language has made in the Twentieth Century are of course the result of the remarkable progress made in logic. Few other philosophical disciplines gained as much from the developments in logic as the Philosophy of Language. In the course of presenting the first formal system in the Begriffsscrift , Gottlob Frege developed a formal language. Subsequently, logicians provided rigorous semantics for formal languages, in order to define truth in a model, and thereby characterize logical consequence. Such rigor was required in order to enable logicians to carry out semantic proofs about formal systems in a formal system, thereby providing semantics with the same benefits as increased formalization had provided for other branches of mathematics. -
Chapter 4 Statement Logic
Chapter 4 Statement Logic In this chapter, we treat sentential or statement logic, logical systems built on sentential connectives like and, or, not, if, and if and only if. Our goals here are threefold: 1. To lay the foundation for a later treatment of full predicate logic. 2. To begin to understand how we might formalize linguistic theory in logical terms. 3. To begin to think about how logic relates to natural language syntax and semantics (if at all!). 4.1 The intuition The basic idea is that we will define a formal language with a syntax and a semantics. That is, we have a set of rules for how statements can be constructed and then a separate set of rules for how those statements can be interpreted. We then develop—in precise terms—how we might prove various things about sets of those statements. 4.2 Basic Syntax We start with an finite set of letters: {p,q,r,s,...}. These become the infinite set of atomic statements when we add in primes, e.g. p′,p′′,p′′′,.... This infinite set can be defined recursively. 46 CHAPTER 4. STATEMENT LOGIC 47 Definition 4 (Atomic statements) Recursive definition: 1. Any letter {p,q,r,s,...} is an atomic statement. 2. Any atomic statement followed by a prime, e.g. p′, q′′,... is an atomic statement. 3. There are no other atomic statements. The first clause provides for a finite number of atomic statements: 26. The second clause is the recursive one, allowing for an infinite number of atomic statements built on the finite set provided by the first clause. -
Context Free Languages
Context Free Languages COMP2600 — Formal Methods for Software Engineering Katya Lebedeva Australian National University Semester 2, 2016 Slides by Katya Lebedeva and Ranald Clouston. COMP 2600 — Context Free Languages 1 Ambiguity The definition of CF grammars allow for the possibility of having more than one structure for a given sentence. This ambiguity may make the meaning of a sentence unclear. A context-free grammar G is unambiguous iff every string can be derived by at most one parse tree. G is ambiguous iff there exists any word w 2 L(G) derivable by more than one parse trees. COMP 2600 — Context Free Languages 2 Dangling else Take the code if e1 then if e2 then s1 else s2 where e1, e2 are boolean expressions and s1, s2 are subprograms. Does this mean if e1 then( if e2 then s1 else s2) or if e1 then( if e2 then s1) else s2 The dangling else is a problem in computer programming in which an optional else clause in an “ifthen(else)” statement results in nested conditionals being ambiguous. COMP 2600 — Context Free Languages 3 This is a problem that often comes up in compiler construction, especially parsing. COMP 2600 — Context Free Languages 4 Inherently Ambiguous Languages Not all context-free languages can be given unambiguous grammars – some are inherently ambiguous. Consider the language L = faib jck j i = j or j = kg How do we know that this is context-free? First, notice that L = faibickg [ faib jc jg We then combine CFGs for each side of this union (a standard trick): S ! T j W T ! UV W ! XY U ! aUb j e X ! aX j e V ! cV j e Y ! bYc j e COMP 2600 — Context Free Languages 5 The problem with L is that its sub-languages faibickg and faib jc jg have a non-empty intersection.