Reasonably Programmable Literal Notation
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Lexical and Syntactic Ambiguity As a Source of Humor: the Case of Newspaper Headlines
Lexical and syntactic ambiguity as a source of humor: The case of newspaper headlines CHIARA BUCARIA Abstract The paper analyzes some forms of linguistic ambiguity in English in a specific register, i.e. newspaper headlines. In particular, the focus of the research is on examples of lexical and syntactic ambiguity that result in sources of voluntary or involuntary humor. The study is based on a corpus of 135 verbally ambiguous headlines found on web sites presenting humor- ous bits of information. The linguistic phenomena that contribute to create this kind of semantic confusion in headlines will be analyzed and divided into the three main categories of lexical, syntactic, and phonological ambi- guity, and examples from the corpus will be discussed for each category. The main results of the study were that, firstly, contrary to the findings of previous research on jokes, syntactically ambiguous headlines were found in good percentage in the corpus and that this might point to di¤erences in genre. Secondly, two new configurations for the processing of the disjunctor/connector order were found. In the first of these configurations the disjunctor appears before the connector, instead of being placed after or coinciding with the ambiguous element, while in the second one two ambig- uous elements are present, each of which functions both as a connector and a disjunctor. Keywords: Ambiguity; headlines; lexical; syntactic; disjunctor; connector. Introduction The present paper sets out to analyze some forms of linguistic ambiguity in English in a specific register, i.e. newspaper headlines. In particular, the Humor 17–3 (2004), 279–309 0933–1719/04/0017–0279 6 Walter de Gruyter 280 C. -
Preview Objective-C Tutorial (PDF Version)
Objective-C Objective-C About the Tutorial Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language. This is the main programming language used by Apple for the OS X and iOS operating systems and their respective APIs, Cocoa and Cocoa Touch. This reference will take you through simple and practical approach while learning Objective-C Programming language. Audience This reference has been prepared for the beginners to help them understand basic to advanced concepts related to Objective-C Programming languages. Prerequisites Before you start doing practice with various types of examples given in this reference, I'm making an assumption that you are already aware about what is a computer program, and what is a computer programming language? Copyright & Disclaimer © Copyright 2015 by Tutorials Point (I) Pvt. Ltd. All the content and graphics published in this e-book are the property of Tutorials Point (I) Pvt. Ltd. The user of this e-book can retain a copy for future reference but commercial use of this data is not allowed. Distribution or republishing any content or a part of the content of this e-book in any manner is also not allowed without written consent of the publisher. We strive to update the contents of our website and tutorials as timely and as precisely as possible, however, the contents may contain inaccuracies or errors. Tutorials Point (I) Pvt. Ltd. provides no guarantee regarding the accuracy, timeliness or completeness of our website or its contents including this tutorial. If you discover any errors on our website or in this tutorial, please notify us at [email protected] ii Objective-C Table of Contents About the Tutorial .................................................................................................................................. -
The Meaning of Language
01:615:201 Introduction to Linguistic Theory Adam Szczegielniak The Meaning of Language Copyright in part: Cengage learning The Meaning of Language • When you know a language you know: • When a word is meaningful or meaningless, when a word has two meanings, when two words have the same meaning, and what words refer to (in the real world or imagination) • When a sentence is meaningful or meaningless, when a sentence has two meanings, when two sentences have the same meaning, and whether a sentence is true or false (the truth conditions of the sentence) • Semantics is the study of the meaning of morphemes, words, phrases, and sentences – Lexical semantics: the meaning of words and the relationships among words – Phrasal or sentential semantics: the meaning of syntactic units larger than one word Truth • Compositional semantics: formulating semantic rules that build the meaning of a sentence based on the meaning of the words and how they combine – Also known as truth-conditional semantics because the speaker’ s knowledge of truth conditions is central Truth • If you know the meaning of a sentence, you can determine under what conditions it is true or false – You don’ t need to know whether or not a sentence is true or false to understand it, so knowing the meaning of a sentence means knowing under what circumstances it would be true or false • Most sentences are true or false depending on the situation – But some sentences are always true (tautologies) – And some are always false (contradictions) Entailment and Related Notions • Entailment: one sentence entails another if whenever the first sentence is true the second one must be true also Jack swims beautifully. -
Processing an Intermediate Representation Written in Lisp
Processing an Intermediate Representation Written in Lisp Ricardo Pena,˜ Santiago Saavedra, Jaime Sanchez-Hern´ andez´ Complutense University of Madrid, Spain∗ [email protected],[email protected],[email protected] In the context of designing the verification platform CAVI-ART, we arrived to the need of deciding a textual format for our intermediate representation of programs. After considering several options, we finally decided to use S-expressions for that textual representation, and Common Lisp for processing it in order to obtain the verification conditions. In this paper, we discuss the benefits of this decision. S-expressions are homoiconic, i.e. they can be both considered as data and as code. We exploit this duality, and extensively use the facilities of the Common Lisp environment to make different processing with these textual representations. In particular, using a common compilation scheme we show that program execution, and verification condition generation, can be seen as two instantiations of the same generic process. 1 Introduction Building a verification platform such as CAVI-ART [7] is a challenging endeavour from many points of view. Some of the tasks require intensive research which can make advance the state of the art, as it is for instance the case of automatic invariant synthesis. Some others are not so challenging, but require a lot of pondering and discussion before arriving at a decision, in order to ensure that all the requirements have been taken into account. A bad or a too quick decision may have a profound influence in the rest of the activities, by doing them either more difficult, or longer, or more inefficient. -
Strings in C++
Programming Abstractions C S 1 0 6 X Cynthia Lee Today’s Topics Introducing C++ from the Java Programmer’s Perspective . Absolute value example, continued › C++ strings and streams ADTs: Abstract Data Types . Introduction: What are ADTs? . Queen safety example › Grid data structure › Passing objects by reference • const reference parameters › Loop over “neighbors” in a grid Strings in C++ STRING LITERAL VS STRING CLASS CONCATENATION STRING CLASS METHODS 4 Using cout and strings int main(){ int n = absoluteValue(-5); string s = "|-5|"; s += " = "; • This prints |-5| = 5 cout << s << n << endl; • The + operator return 0; concatenates strings, } and += works in the way int absoluteValue(int n) { you’d expect. if (n<0){ n = -n; } return n; } 5 Using cout and strings int main(){ int n = absoluteValue(-5); But SURPRISE!…this one string s = "|-5|" + " = "; doesn’t work. cout << s << n << endl; return 0; } int absoluteValue(int n) { if (n<0){ n = -n; } return n; } C++ string objects and string literals . In this class, we will interact with two types of strings: › String literals are just hard-coded string values: • "hello!" "1234" "#nailedit" • They have no methods that do things for us • Think of them like integer literals: you can’t do "4.add(5);" //no › String objects are objects with lots of helpful methods and operators: • string s; • string piece = s.substr(0,3); • s.append(t); //or, equivalently: s+= t; String object member functions (3.2) Member function name Description s.append(str) add text to the end of a string s.compare(str) return -
Automated Detection of Syntactic Ambiguity Using Shallow Parsing and Web Data by Reza Khezri [email protected]
DEPARTMENT OF PHILOSOPHY, LINGUISTICS AND THEORY OF SCIENCE Automated Detection of Syntactic Ambiguity Using Shallow Parsing and Web Data By Reza Khezri [email protected] Master’s Thesis, 30 credits Master’s Programme in Language Technology Autumn, 2017 Supervisor: Prof. Staffan Larsson Keywords: ambiguity, ambiguity detection tool, ambiguity resolution, syntactic ambiguity, Shallow Parsing, Google search API, PythonAnywhere, PP attachment ambiguity Abstract: Technical documents are mostly written in natural languages and they are highly ambiguity-prone due to the fact that ambiguity is an inevitable feature of natural languages. Many researchers have urged technical documents to be free from ambiguity to avoid unwanted and, in some cases, disastrous consequences ambiguity and misunderstanding can have in technical context. Therefore the need for ambiguity detection tools to assist writers with ambiguity detection and resolution seems indispensable. The purpose of this thesis work is to propose an automated approach in detection and resolution of syntactic ambiguity. AmbiGO is the name of the prototyping web application that has been developed for this thesis which is freely available on the web. The hope is that a developed version of AmbiGO will assist users with ambiguity detection and resolution. Currently AmbiGO is capable of detecting and resolving three types of syntactic ambiguity, namely analytical, coordination and PP attachment types. AmbiGO uses syntactic parsing to detect ambiguity patterns and retrieves frequency counts from Google for each possible reading as a segregate for semantic analysis. Such semantic analysis through Google frequency counts has significantly improved the precision score of the tool’s output in all three ambiguity detection functions. -
An Optimized R5RS Macro Expander
An Optimized R5RS Macro Expander Sean Reque A thesis submitted to the faculty of Brigham Young University in partial fulfillment of the requirements for the degree of Master of Science Jay McCarthy, Chair Eric Mercer Quinn Snell Department of Computer Science Brigham Young University February 2013 Copyright c 2013 Sean Reque All Rights Reserved ABSTRACT An Optimized R5RS Macro Expander Sean Reque Department of Computer Science, BYU Master of Science Macro systems allow programmers abstractions over the syntax of a programming language. This gives the programmer some of the same power posessed by a programming language designer, namely, the ability to extend the programming language to fit the needs of the programmer. The value of such systems has been demonstrated by their continued adoption in more languages and platforms. However, several barriers to widespread adoption of macro systems still exist. The language Racket [6] defines a small core of primitive language constructs, including a powerful macro system, upon which all other features are built. Because of this design, many features of other programming languages can be implemented through libraries, keeping the core language simple without sacrificing power or flexibility. However, slow macro expansion remains a lingering problem in the language's primary implementation, and in fact macro expansion currently dominates compile times for Racket modules and programs. Besides the typical problems associated with slow compile times, such as slower testing feedback, increased mental disruption during the programming process, and unscalable build times for large projects, slow macro expansion carries its own unique problems, such as poorer performance for IDEs and other software analysis tools. -
Studies in Linguistics
STiL Studies in Linguistics Proceedings XXXV Incontro di Grammatica Generativa Vol 3. 2009 CISCL CENTRO INTERDIPARTIMENTALE DI STUDI COGNITIVI SUL LINGUAGGIO Interdepartmental Centre for Cognitive Studies on Language Facoltà di Lettere e Filosofia UNIVERSITÀ DEGLI STUDI DI SIENA Studies In Linguistics Vol3, 2009 2 STiL Studies in Linguistics Edited by: Vincenzo Moscati Emilio Servidio Correspondence can be addressed to: CISCL – Centro Interdipartimentale di Studi Cognitivi sul Linguaggio Dipartimento di Scienze della Comunicazione Complesso S. Niccolò, Via Roma, 56 I-53100 Siena, Italy or by email at: moscati unisi.it 3 Contents Maria Teresa Guasti, Chiara Branchini, Fabrizio Arosio Agreement in the production of Italian subject and object wh-questions 6 Liliane Haegeman The syntax of conditional clauses 28 Maria Rita Manzini & Leonardo Savoia Mesoclisis in the Imperative: Phonology, Morphology or Syntax? 51 Theresa Biberauer, Anders Holmberg & Ian Roberts Linearization and the Architecture of Grammar: A view from the Final-over- Final Constraint 77 Gloria Cocchi Bantu verbal extensions: a cartographic approach 90 Federica Cognola TopicPs and Relativised Minimality in Mòcheno left periphery 104 Silvio Cruschina & Eva-Maria Remberger Focus Fronting in Sardinian and Sicilian 118 Maria Teresa Espinal & Jaume Mateu On bare nominals and argument structure 131 Irene Franco Stylistic Fronting: a comparative analysis 144 Hanako Fujino The Adnominal Form in Japanese as a Relativization Strategy 158 Ion Giurgea Romanian null objects and gender -
Lightweight Monadic Programming in ML
Lightweight Monadic Programming in ML Nikhil Swamy? Nataliya Gutsy Daan Leijen? Michael Hicksy ?Microsoft Research, Redmond yUniversity of Maryland, College Park Abstract ing [26]. In a monadic type system, if values are given type τ then Many useful programming constructions can be expressed as mon- computations are given type m τ for some monad constructor m. ads. Examples include probabilistic modeling, functional reactive For example, an expression of type IO τ in Haskell represents programming, parsing, and information flow tracking, not to men- a computation that will produce (if it terminates) a value of type tion effectful functionality like state and I/O. In this paper, we τ but may perform effectful operations in the process. Haskell’s present a type-based rewriting algorithm to make programming Monad type class, which requires the bind and unit operations with arbitrary monads as easy as using ML’s built-in support for given above, is blessed with special syntax, the do notation, for state and I/O. Developers write programs using monadic values programming with instances of this class. of type m τ as if they were of type τ, and our algorithm inserts Moggi [22], Filinksi [11], and others have noted that ML pro- the necessary binds, units, and monad-to-monad morphisms so that grams, which are impure and observe a deterministic, call-by-value evaluation order, are inherently monadic. For example, the value the program type checks. Our algorithm, based on Jones’ qualified 0 types, produces principal types. But principal types are sometimes λx.e can be viewed as having type τ ! m τ : the argument problematic: the program’s semantics could depend on the choice type τ is never monadic because x is always bound to a value in of instantiation when more than one instantiation is valid. -
An Approach for Detecting Syntax and Syntactic Ambiguity in Software Requirement Specification
Journal of Theoretical and Applied Information Technology 30th April 2018. Vol.96. No 8 © 2005 – ongoing JATIT & LLS ISSN: 1992-8645 www.jatit.org E-ISSN: 1817-3195 AN APPROACH FOR DETECTING SYNTAX AND SYNTACTIC AMBIGUITY IN SOFTWARE REQUIREMENT SPECIFICATION 1 ALI OLOW JIM’ALE SABRIYE, 2*WAN MOHD NAZMEE WAN ZAINON 1Faculty of Computing, SIMAD University, Mogadishu, Somalia 2School of Computer Sciences, Universiti Sains Malaysia, Malaysia E-mail: [email protected], [email protected] ABSTRACT Software requirements are considered to be ambiguous if the requirements statement could have more than one interpretation. The ambiguous requirements could cause the software developers to develop software which is different from what the customer needs. The focus of this paper is to propose an approach to detect syntax and syntactic ambiguity in software requirements specification. In this paper, Parts of speech (POS) tagging technique has been used to detect these ambiguities. A prototype tool has been developed in order to evaluate the proposed approach. The evaluation is done by comparing the detection capabilities of the proposed tool against human capabilities. The overall results show that the humans do have some difficulties in detecting ambiguity in software requirements, especially the syntactic ambiguity and software requirements that contains both syntax and syntactic ambiguity in one sentence. The proposed tool can definitely help the analyst in detecting ambiguity in Software requirements. Keywords: Part of speech tagging, Syntax ambiguity, Syntactic ambiguity, Software requirements specification. 1. INTRODUCTION can negatively affect in all the software development process [7]. Software requirement specification (SRS) document is an important document with a full Ambiguity in SRS can cause some big issues that description about functional and non-functional can affect the software development process because requirements of a software sys-tem to be developed different interpretations can turn into bugs (such as [1]. -
Variable Feature Usage Patterns in PHP
Variable Feature Usage Patterns in PHP Mark Hills East Carolina University, Greenville, NC, USA [email protected] Abstract—PHP allows the names of variables, classes, func- and classes at runtime. Below, we refer to these generally as tions, methods, and properties to be given dynamically, as variable features, and specifically as, e.g., variable functions expressions that, when evaluated, return an identifier as a string. or variable methods. While this provides greater flexibility for programmers, it also makes PHP programs harder to precisely analyze and understand. The main contributions presented in this paper are as follows. In this paper we present a number of patterns designed to First, taking advantage of our prior work, we have developed recognize idiomatic uses of these features that can be statically a number of patterns for detecting idiomatic uses of variable resolved to a precise set of possible names. We then evaluate these features in PHP programs and for resolving these uses to a patterns across a corpus of 20 open-source systems totaling more set of possible names. Written using the Rascal programming than 3.7 million lines of PHP, showing how often these patterns occur in actual PHP code, demonstrating their effectiveness at language [2], [3], these patterns work over the ASTs of the statically determining the names that can be used at runtime, PHP scripts, with more advanced patterns also taking advantage and exploring anti-patterns that indicate when the identifier of control flow graphs and lightweight analysis algorithms for computation is truly dynamic. detecting value flow and reachability. Each of these patterns works generally across all variable features, instead of being I. -
The Evolution of Lisp
1 The Evolution of Lisp Guy L. Steele Jr. Richard P. Gabriel Thinking Machines Corporation Lucid, Inc. 245 First Street 707 Laurel Street Cambridge, Massachusetts 02142 Menlo Park, California 94025 Phone: (617) 234-2860 Phone: (415) 329-8400 FAX: (617) 243-4444 FAX: (415) 329-8480 E-mail: [email protected] E-mail: [email protected] Abstract Lisp is the world’s greatest programming language—or so its proponents think. The structure of Lisp makes it easy to extend the language or even to implement entirely new dialects without starting from scratch. Overall, the evolution of Lisp has been guided more by institutional rivalry, one-upsmanship, and the glee born of technical cleverness that is characteristic of the “hacker culture” than by sober assessments of technical requirements. Nevertheless this process has eventually produced both an industrial- strength programming language, messy but powerful, and a technically pure dialect, small but powerful, that is suitable for use by programming-language theoreticians. We pick up where McCarthy’s paper in the first HOPL conference left off. We trace the development chronologically from the era of the PDP-6, through the heyday of Interlisp and MacLisp, past the ascension and decline of special purpose Lisp machines, to the present era of standardization activities. We then examine the technical evolution of a few representative language features, including both some notable successes and some notable failures, that illuminate design issues that distinguish Lisp from other programming languages. We also discuss the use of Lisp as a laboratory for designing other programming languages. We conclude with some reflections on the forces that have driven the evolution of Lisp.