Compiler Error Messages Considered Unhelpful: the Landscape of Text-Based Programming Error Message Research

Total Page:16

File Type:pdf, Size:1020Kb

Compiler Error Messages Considered Unhelpful: the Landscape of Text-Based Programming Error Message Research Working Group Report ITiCSE-WGR ’19, July 15–17, 2019, Aberdeen, Scotland Uk Compiler Error Messages Considered Unhelpful: The Landscape of Text-Based Programming Error Message Research Brett A. Becker∗ Paul Denny∗ Raymond Pettit∗ University College Dublin University of Auckland University of Virginia Dublin, Ireland Auckland, New Zealand Charlottesville, Virginia, USA [email protected] [email protected] [email protected] Durell Bouchard Dennis J. Bouvier Brian Harrington Roanoke College Southern Illinois University Edwardsville University of Toronto Scarborough Roanoke, Virgina, USA Edwardsville, Illinois, USA Scarborough, Ontario, Canada [email protected] [email protected] [email protected] Amir Kamil Amey Karkare Chris McDonald University of Michigan Indian Institute of Technology Kanpur University of Western Australia Ann Arbor, Michigan, USA Kanpur, India Perth, Australia [email protected] [email protected] [email protected] Peter-Michael Osera Janice L. Pearce James Prather Grinnell College Berea College Abilene Christian University Grinnell, Iowa, USA Berea, Kentucky, USA Abilene, Texas, USA [email protected] [email protected] [email protected] ABSTRACT of evidence supporting each one (historical, anecdotal, and empiri- Diagnostic messages generated by compilers and interpreters such cal). This work can serve as a starting point for those who wish to as syntax error messages have been researched for over half of a conduct research on compiler error messages, runtime errors, and century. Unfortunately, these messages which include error, warn- warnings. We also make the bibtex file of our 300+ reference corpus ing, and run-time messages, present substantial difficulty and could publicly available. Collectively this report and the bibliography will be more effective, particularly for novices. Recent years have seen be useful to those who wish to design better messages or those that an increased number of papers in the area including studies on aim to measure their effectiveness, more effectively. the effectiveness of these messages, improving or enhancing them, and their usefulness as a part of programming process data that CCS CONCEPTS can be used to predict student performance, track student progress, • General and reference → Surveys and overviews; • Human- and tailor learning plans. Despite this increased interest, the long centered computing → Human computer interaction (HCI); history of literature is quite scattered and has not been brought • Social and professional topics → Computer science edu- together in any digestible form. cation; Computing education; CS1; • Applied computing → In order to help the computing education community (and re- Education; • Software and its engineering → General program- lated communities) to further advance work on programming error ming languages; Syntax; Compilers; Interpreters; Semantics; messages, we present a comprehensive, historical and state-of-the- art report on research in the area. In addition, we synthesise and present the existing evidence for these messages including the dif- KEYWORDS ficulties they present and their effectiveness. We finally presenta compiler error messages; considered harmful; CS1; CS-1; design set of guidelines, curated from the literature, classified on the type guidelines; diagnostic error messages; error messages; human com- puter interaction; HCI; introduction to programming; novice pro- ∗co-leader grammers; programming errors; programming error messages; re- view; run-time errors; survey; syntax errors; warnings Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation ACM Reference Format: on the first page. Copyrights for components of this work owned by others than the Brett A. Becker, Paul Denny, Raymond Pettit, Durell Bouchard, Dennis J. author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or Bouvier, Brian Harrington, Amir Kamil, Amey Karkare, Chris McDonald, republish, to post on servers or to redistribute to lists, requires prior specific permission Peter-Michael Osera, Janice L. Pearce, and James Prather. 2019. Compiler and/or a fee. Request permissions from [email protected]. Error Messages Considered Unhelpful: The Landscape of Text-Based Pro- ITiCSE-WGR ’19, July 15–17, 2019, Aberdeen, Scotland UK gramming Error Message Research. In 2019 ITiCSE Working Group Reports © 2019 Copyright held by the owner/author(s). Publication rights licensed to ACM. ACM ISBN 978-1-4503-6895-7/19/07...$15.00 (ITiCSE-WGR ’19), July 15–17, 2019, Aberdeen, Scotland UK. ACM, New York, https://doi.org/10.1145/3344429.3372508 NY, USA, 34 pages. https://doi.org/10.1145/3344429.3372508 177 Working Group Report ITiCSE-WGR ’19, July 15–17, 2019, Aberdeen, Scotland Uk 1 INTRODUCTION & MOTIVATION - not novice programming students, who can find it Computer programming is an essential skill that all computing difficult to interpret and understand. students must master [141] and is increasingly important in many Despite this importance, in the last 50+ years, little positive has diverse disciplines [167] as well as at pre-university levels [166]. been said about compiler error messages. In this time they have Research from Educational Psychology indicates that teaching and been described as inadequate and not understandable (Moulton learning are subject-specific [135] and that learning programming & Miller, 1967) [146], useless (Wexelblat, 1976) [208], not opti- consists of challenges that are different to reading and writing mal (Litecky, 1976) [120], inadequate [again, 16 years after [146]] natural languages [17, 68] or, for example, physics [34]. It is also (Brown, 1983) [36], frustrating (Flowers et al., 2005) [72], cryptic frequently stated that programming is difficult to learn [127]. As and confusing (Jadud, 2006) [98], notoriously obscure and terse early as 1977 it was explicitly stated that programming could be (Ben-Ari, 2007) [24], undecipherable (Traver, 2010) [202], intimidat- made easier [189]. The perception that programming is intrinsically ing (Hartz, 2012) [84], still very obviously less helpful than they hard however, can vary [125]. Regardless, the general consensus could be (McCall & Kölling, 2015) [139], inscrutable (Ko, 2017)1, for the past several decades from academia to the media, from frustrating [again, 13 years after [72]] and a barrier to progress universities to primary schools, seems to be “Learning to program (Becker et al., 2018) [21]. is hard” [102, p3]. Knuth pointed out ‘mysterious’ error messages as responsible One of the many challenges novice programmers face from the for breaking down the ability to see through layers of abstraction, start are notoriously cryptic compiler error messages, and there as Ramshaw, a former graduate student of Knuth’s recounted:2 is published evidence on these difficulties since at least as early Don [Knuth] claims that one of the skills that you as 1965 [177]. Such messages report details on errors relating to need to be a computer scientist is the ability to work programming language syntax and act as the primary source of with multiple levels of abstraction simultaneously. information to help novices rectify their mistakes. Most program- When you’re working at one level, you try and ignore ming educators are all too familiar with the reality of messages that the details of what’s happening at the lower levels. are difficult to understand and which can be a source of confusion But when you’re debugging a computer program and and discouragement for students. Supporting evidence for this can you get some mysterious error message, it could be be found in the literature spanning many decades. Students have a failure in any of the levels below you, so you can’t reported that such errors are frustrating, and have described them afford to be too compartmentalised. as “barriers to progress” [15]. Further, it has been reported that students have difficulty locating and repairing syntax errors using 1.1 Motivation only the typically terse error messages provided by the average With the users who deal with these messages at the focal point of compiler [53, 182]. These are traits not exclusive to programming this work, our chief motivations originate with how programming error messages – general system error messages also cause similar error messages affect students from two points of view: issues [187]. The effects these messages have on students is mea- (1) Internal student factors. For example: Students find pro- surable. A high number of student errors, and in particular a high gramming error messages to be frustrating [21, 51], intimidat- frequency of repeated errors – when a student makes the same ing [84], as well as confusing and harmful to confidence [100]. error consecutively – have been shown to be indicators of students Rightfully so, students do not trust them [97] but importantly who are struggling with learning to program [16, 98]. This area they do read them [12, 163]. Additionally, their behaviour is of research has seen increased interest in the last 10 years with altered by them [101] – but most programming instructors authors such as Barik [9], Becker et al. [19], Brown & Altadmri [31], have seen that with their own eyes. Denny et al. [50], Karkare (Ahmed et al.)[3], Kohn [106], McCall & (2) External student
Recommended publications
  • Thinkjs 2.0 Documentation
    ThinkJS 2.0 Documentation ᳪفள᭛ Օᕨ ጱ Node.js MVC ໛ຝֵ҅አ ES7 Ӿ async/await ҅౲ᘏ ES6ݎෛ୏قThinkJS ฎӞֵྃአ ES6/7 ᇙ௔ තԧࢵٖक़ռग़໛ຝጱᦡᦇቘஷ޾௏ޕӾጱ */yield ᇙ௔஁ବᥴ٬ԧ Node.js Ӿ୑ྍ્ॺጱᳯ̶᷌ݶ෸ ṛප̶̵ܔᓌےNode.js ᶱፓๅ ݎమ҅ᦏ୏ පሲ҅ฎ᩽۠ಅࣁ̶ଚӬෛᇇጱ Node.js ੒ ES6 ᇙ௔Ԟํԧݎᶱፓݢզय़य़൉ṛ୏ݎአ ES6/7 ᇙ௔๶୏ֵ Զᇙ௔ᬮဌํඪ೮҅Ԟݢզ׵ۗ Babel ᖫᦲ๶ඪ೮̶ํֵܨ᫾অጱඪ೮҅ ᇙ௔ ᶱፓݎአ ES6/7 ᇙ௔๶୏ֵ ᇇ๜ӧඪ೮̶੦ٌฎֵڹ׵ۗ Babel ᖫᦲ҅ݢզࣁᶱፓӾय़ᙦֵአ ES6/7 ಅํጱᇙ௔҅෫ᵱ೅ஞߺԶᇙ௔୮ አ async/await ౲ᘏ */yield ๶ᥴ٬୑ྍࢧ᧣ጱᳯ̶᷌ JavaScript //user controller, home/controller/user.js export default class extends think.controller.base { //login action async loginAction(self){ //ইຎฎget᧗࿢҅ፗളดᐏጭ୯ᶭᶎ if(this.isGet()){ return this.display(); } ᬯ᯾ݢզ᭗ᬦpostොဩ឴ݐಅํጱහഝ҅හഝ૪ᕪࣁlogic᯾؉ԧ໊ḵ// let data = this.post(); let md5 = think.md5('think_' + data.pwd); ᯈහഝପӾ੒ԭጱ๵ፓ܃ݸጱੂᎱ݄ੂےአಁݷ޾// let result = await this.model('user').where({name: data.name, pwd: md5}).find(); ձ֜හഝ҅ᤒᐏአಁݷ౲ᘏੂᎱᲙ᧏کᯈ܃ইຎ๚// if(think.isEmpty(result)){ return this.fail('login fail'); } sessionفٟ௳מݸ҅ਖ਼አಁ௳מአಁک឴ݐ// await this.session('userInfo', result); return this.success(); } } ӤᶎጱդᎱ౯ժֵአԧ ES6 ᯾ጱ class , export , let զ݊ ES7 ᯾ጱ async ޾ await ᒵᇙ௔҅ Session ᮷ฎ୑ྍ඙֢҅֕׵ۗ async/await ҅դᎱ᮷ฎݶྍԡٟጱ̶๋ݸֵ فᡱᆐັᧃහഝପ޾ٟ አ Babel ᬰᤈᖫᦲ҅੪ݢզᑞਧᬩᤈࣁ Node.js ጱሾहӾԧ̶ ඪ೮ग़ᐿᶱፓᕮ຅޾ग़ᐿᶱፓሾह ̶ݎཛྷࣘཛྷୗᒵग़ᐿᶱፓᕮ຅҅ݢզჿ᪃ݱᐿᶱፓ॔๥ଶጱ୏ړཛྷࣘཛྷୗ̵ฦ᭗ཛྷୗ̵ܔᶱፓඪ೮ ἕᦊඪ೮ development ҅ testing ޾ prodution 3 ᐿᶱፓሾह҅ݢզࣁӧݶጱᶱፓሾहӥᬰᤈӧݶ ጱᯈᗝ҅ჿ᪃ࣁӧݶሾहӥጱᯈᗝᵱ࿢҅ݶ෸ᬮݢզचԭᶱፓᵱᥝᬰᤈಘ઀̶ ඪ೮ӿ੄ጱහഝପ ThinkJS ඪ೮ mysql ҅ mongodb ҅ sqlite ᒵଉᥠጱහഝପ҅ଚӬ੗ᤰԧஉग़඙֢හഝପጱളݗ҅෫ᵱ ᚆ̶ۑᘶཛྷࣳᒵṛᕆى̵ۓᄋ၏̶ݶ෸ඪ೮Ԫقᒵਞفಋۖ೪ള SQL ᧍ݙ҅ᬮݢզᛔۖᴠྊ SQL ဳ դᎱᛔۖๅෛ Ԟӧአ׵ۗᒫӣ҅ۓNode.js ๐ ސኞප҅ӧአ᯿ܨදݸᒈץ෈կ҅ګThinkJS ٖᗝԧӞॺդᎱᛔۖๅෛጱ๢ ොཛྷ̶ࣘ ୌ REST ളݗڠᛔۖ ইຎమࣁ̶ݎݢਠ౮ REST API ጱ୏ܨୌ REST
    [Show full text]
  • About ILE C/C++ Compiler Reference
    IBM i 7.3 Programming IBM Rational Development Studio for i ILE C/C++ Compiler Reference IBM SC09-4816-07 Note Before using this information and the product it supports, read the information in “Notices” on page 121. This edition applies to IBM® Rational® Development Studio for i (product number 5770-WDS) and to all subsequent releases and modifications until otherwise indicated in new editions. This version does not run on all reduced instruction set computer (RISC) models nor does it run on CISC models. This document may contain references to Licensed Internal Code. Licensed Internal Code is Machine Code and is licensed to you under the terms of the IBM License Agreement for Machine Code. © Copyright International Business Machines Corporation 1993, 2015. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents ILE C/C++ Compiler Reference............................................................................... 1 What is new for IBM i 7.3.............................................................................................................................3 PDF file for ILE C/C++ Compiler Reference.................................................................................................5 About ILE C/C++ Compiler Reference......................................................................................................... 7 Prerequisite and Related Information..................................................................................................
    [Show full text]
  • Mapping Topic Maps to Common Logic
    MAPPING TOPIC MAPS TO COMMON LOGIC Tamas´ DEMIAN´ Advisor: Andras´ PATARICZA I. Introduction This work is a case study for the mapping of a particular formal language (Topic Map[1] (TM)) to Common Logic[2] (CL). CL was intended to be a uniform platform ensuring a seamless syntactic and semantic integration of knowledge represented in different formal languages. CL is based on first-order logic (FOL) with a precise model-theoretic semantic. The exact target language is Common Logic Interchange Format (CLIF), the most common dialect of CL. Both CL and TM are ISO standards and their metamodels are included in the Object Definition Metamodel[3] (ODM). ODM was intended to serve as foundation of Model Driven Architecture (MDA) offering formal basis for representation, management, interoperability, and semantics. The paper aims at the evaluation of the use of CL as a fusion platform on the example of TM. II. The Topic Maps TM is a technology for modelling knowledge and connecting this structured knowledge to relevant information sources. A central operation in TMs is merging, aiming at the elimination of redundant TM constructs. TopicMapConstruct is the top-level abstract class in the TM metamodel (Fig. 1). The later detailed ReifiableConstruct, TypeAble and ScopeAble classes are also abstract. The remaining classes are pairwise disjoint. Figure 1: The class hierarchy and the relation and attribute names of the TM metamodel. TopicMap is a set of topics and associations. Topic is a symbol used within a TM to represent exactly one subject, in order to allow statements to be made about that subject.
    [Show full text]
  • ROSE Tutorial: a Tool for Building Source-To-Source Translators Draft Tutorial (Version 0.9.11.115)
    ROSE Tutorial: A Tool for Building Source-to-Source Translators Draft Tutorial (version 0.9.11.115) Daniel Quinlan, Markus Schordan, Richard Vuduc, Qing Yi Thomas Panas, Chunhua Liao, and Jeremiah J. Willcock Lawrence Livermore National Laboratory Livermore, CA 94550 925-423-2668 (office) 925-422-6278 (fax) fdquinlan,panas2,[email protected] [email protected] [email protected] [email protected] [email protected] Project Web Page: www.rosecompiler.org UCRL Number for ROSE User Manual: UCRL-SM-210137-DRAFT UCRL Number for ROSE Tutorial: UCRL-SM-210032-DRAFT UCRL Number for ROSE Source Code: UCRL-CODE-155962 ROSE User Manual (pdf) ROSE Tutorial (pdf) ROSE HTML Reference (html only) September 12, 2019 ii September 12, 2019 Contents 1 Introduction 1 1.1 What is ROSE.....................................1 1.2 Why you should be interested in ROSE.......................2 1.3 Problems that ROSE can address...........................2 1.4 Examples in this ROSE Tutorial...........................3 1.5 ROSE Documentation and Where To Find It.................... 10 1.6 Using the Tutorial................................... 11 1.7 Required Makefile for Tutorial Examples....................... 11 I Working with the ROSE AST 13 2 Identity Translator 15 3 Simple AST Graph Generator 19 4 AST Whole Graph Generator 23 5 Advanced AST Graph Generation 29 6 AST PDF Generator 31 7 Introduction to AST Traversals 35 7.1 Input For Example Traversals............................. 35 7.2 Traversals of the AST Structure............................ 36 7.2.1 Classic Object-Oriented Visitor Pattern for the AST............ 37 7.2.2 Simple Traversal (no attributes)....................... 37 7.2.3 Simple Pre- and Postorder Traversal....................
    [Show full text]
  • Panel: NSF-Sponsored Innovative Approaches to Undergraduate Computer Science
    Panel: NSF-Sponsored Innovative Approaches to Undergraduate Computer Science Stephen Bloch (Adelphi University) Amruth Kumar (Ramapo College) Stanislav Kurkovsky (Central CT State University) Clif Kussmaul (Muhlenberg College) Matt Dickerson (Middlebury College), moderator Project Web site(s) Intervention Delivery Supervision Program http://programbydesign.org curriculum with supporting in class; software normally active, but can be by Design http://picturingprograms.org IDE, libraries, & texts and textbook are done other ways Stephen Bloch http://www.ccs.neu.edu/home/ free downloads matthias/HtDP2e/ or web-based NSF awards 0010064 http://racket-lang.org & 0618543 http://wescheme.org Problets http://www.problets.org in- or after-class problem- applet in none - teacher not needed, Amruth Kumar solving exercises on a browser although some adopters use programming concepts it in active mode too NSF award 0817187 Mobile Game http://www.mgdcs.com/ in-class or take-home PC passive - teacher as Development programming projects facilitator to answer Qs Stan Kurkovsky NSF award DUE-0941348 POGIL http://pogil.org in-class activity paper or web passive - teacher as Clif Kussmaul http://cspogil.org facilitator to answer Qs NSF award TUES 1044679 Project Course(s) Language(s) Focus Program Middle school, Usually Scheme-like teaching problem-solving process, by pre-AP CS in HS, languages leading into Java; particularly test-driven DesignStephen CS0, CS1, CS2 has also been done in Python, development and use of data Bloch in college ML, Java, Scala, ... types to guide coding & testing Problets AP-CS, CS I, CS 2. C, C++, Java, C# code tracing, debugging, Amruth Kumar also as refresher or expression evaluation, to switch languages predicting program state in other courses Mobile Game AP-CS, CS1, CS2 Java core OO programming; DevelopmentSt intro to advanced subjects an Kurkovsky such as AI, networks, security POGILClif CS1, CS2, SE, etc.
    [Show full text]
  • Towards the Second Edition of ISO 24707 Common Logic
    Towards the Second Edition of ISO 24707 Common Logic Michael Gr¨uninger(with Tara Athan and Fabian Neuhaus) Miniseries on Ontologies, Rules, and Logic Programming for Reasoning and Applications January 9, 2014 Gr¨uninger ( Ontolog Forum) Common Logic (ISO 24707) January 9, 2014 1 / 20 What Is Common Logic? Common Logic (published as \ISO/IEC 24707:2007 | Information technology Common Logic : a framework for a family of logic-based languages") is a language based on first-order logic, but extending it in several ways that ease the formulation of complex ontologies that are definable in first-order logic. Gr¨uninger ( Ontolog Forum) Common Logic (ISO 24707) January 9, 2014 2 / 20 Semantics An interpretation I consists of a set URI , the universe of reference a set UDI , the universe of discourse, such that I UDI 6= ;; I UDI ⊆ URI ; a mapping intI : V ! URI ; ∗ a mapping relI from URI to subsets of UDI . Gr¨uninger ( Ontolog Forum) Common Logic (ISO 24707) January 9, 2014 3 / 20 How Is Common Logic Being Used? Open Ontology Repositories COLORE (Common Logic Ontology Repository) colore.oor.net stl.mie.utoronto.ca/colore/ontologies.html OntoHub www.ontohub.org https://github.com/ontohub/ontohub Gr¨uninger ( Ontolog Forum) Common Logic (ISO 24707) January 9, 2014 4 / 20 How Is Common Logic Being Used? Ontology-based Standards Process Specification Language (ISO 18629) Date-Time Vocabulary (OMG) Foundational UML (OMG) Semantic Web Services Framework (W3C) OntoIOp (ISO WD 17347) Gr¨uninger ( Ontolog Forum) Common Logic (ISO 24707) January 9, 2014
    [Show full text]
  • The Comparability Between Modular and Non-Modular
    THE COMPARABILITY BETWEEN MODULAR AND NON-MODULAR EXAMINATIONS AT GCE ADVANCED LEVEL Elizabeth A Gray PhD INSTITUTE OF EDUCATION UNIVERSITY OF LONDON 1 ABSTRACT The prime concern of this thesis is the comparability of two types of assessment now prevalent in Advanced level GeE examinations. The more conventional linear scheme assesses all candidates terminally, and the only way to improve the grade awarded is to re-take the whole examination. In contrast, the relatively new modular schemes of assessment include testing opportunities throughout the course of study. This not only has formative effects but allows quantifiable improvements in syllabus results through the medium of the resit option. There are obvious differences between the two schemes, but this does not necessarily imply that they are not comparable in their grading standards. It is this standard which the thesis attempts to address by considering the different variabilities of each of the schemes, and how these might impinge upon the outcomes of the grading process as evidenced in the final grade distributions. A key issue is that of legitimate and illegitimate variabilities - the former perhaps allowing an improvement in performance while maintaining grading standards; the latter possibly affecting the grading standard because its effect was not fully taken into account in the awarding process. By looking at a linear and modular syllabus in mathematics, the differences between the two are investigated, and although not fully generalisable, it is clear that many of the worries which were advanced when modular schemes were first introduced are groundless. Most candidates are seen to use the testing flexibility to their advantage, but there is little evidence of over-testing.
    [Show full text]
  • Fundamentals of C Programming
    Index Fundamentals of C Programming .............................................................................................. 3 Discrete Mathematics ............................................................................................................... 3 Fundamentals of Data Structures .............................................................................................. 5 Fundamentals of Logic and Computer Design ........................................................................... 7 Laboratory for Fundamentals of Logic and Computer Design ................................................ 10 Object-Oriented Programming (C++) ...................................................................................... 12 Database Systems .................................................................................................................... 14 Computer Organization ........................................................................................................... 14 Laboratory for Computer Organization ................................................................................... 16 Java Programming ................................................................................................................... 18 Principles of Database System ................................................................................................ 20 Advanced Data Structures and Algorithm Analysis ................................................................. 22 E-commerce Technologies .....................................................................................................
    [Show full text]
  • Basic Compiler Algorithms for Parallel Programs *
    Basic Compiler Algorithms for Parallel Programs * Jaejin Lee and David A. Padua Samuel P. Midkiff Department of Computer Science IBM T. J. Watson Research Center University of Illinois P.O.Box 218 Urbana, IL 61801 Yorktown Heights, NY 10598 {j-lee44,padua}@cs.uiuc.edu [email protected] Abstract 1 Introduction Traditional compiler techniques developed for sequential Under the shared memory parallel programming model, all programs do not guarantee the correctness (sequential con- threads in a job can accessa global address space. Communi- sistency) of compiler transformations when applied to par- cation between threads is via reads and writes of shared vari- allel programs. This is because traditional compilers for ables rather than explicit communication operations. Pro- sequential programs do not account for the updates to a cessors may access a shared variable concurrently without shared variable by different threads. We present a con- any fixed ordering of accesses,which leads to data races [5,9] current static single assignment (CSSA) form for parallel and non-deterministic behavior. programs containing cobegin/coend and parallel do con- Data races and synchronization make it impossible to apply structs and post/wait synchronization primitives. Based classical compiler optimization and analysis techniques di- on the CSSA form, we present copy propagation and dead rectly to parallel programs because the classical methods do code elimination techniques. Also, a global value number- not account.for updates to shared variables in threads other ing technique that detects equivalent variables in parallel than the one being analyzed. Classical optimizations may programs is presented. By using global value numbering change the meaning of programs when they are applied to and the CSSA form, we extend classical common subex- shared memory parallel programs [23].
    [Show full text]
  • Microworlds: Building Powerful Ideas in the Secondary School
    US-China Education Review A 9 (2012) 796-803 Earlier title: US-China Education Review, ISSN 1548-6613 D DAVID PUBLISHING Microworlds: Building Powerful Ideas in the Secondary School Craig William Jenkins University of Wales, Wales, UK In the 1960s, the MIT (Massachusetts Institute of Technology) developed a programming language called LOGO. Underpinning this invention was a profound new philosophy of how learners learn. This paper reviews research in the area and asks how one notion in particular, that of a microworld, may be used by secondary school educators to build powerful ideas in STEM (science, technology, engineering, and mathematics) subjects. Keywords: microworlds, programming, STEM (science, technology, engineering, and mathematics), constructionism, education Theories of Knowing This paper examines the microworld as a tool for acquiring powerful ideas in secondary education and explores their potential role in making relevant conceptual learning accessible through practical, constructionist approaches. In line with this aim, the paper is split into three main sections: The first section looks at the underlying educational theory behind microworlds in order to set up the rest of the paper; The second section critically examines the notion of a microworld in order to draw out the characteristics of a microworlds approach to learning; Finally, the paper ends with a real-world example of a microworld that is designed to build key, powerful ideas within a STEM (science, technology, engineering, and mathematics) domain of knowledge. To begin to understand the educational theory behind microworlds, a good starting point is to consider the ways in which learners interact with educational technology. In 1980, Robert Taylor (1980) provided a useful framework for understanding such interactions.
    [Show full text]
  • The Next 700 Semantics: a Research Challenge Shriram Krishnamurthi Brown University [email protected] Benjamin S
    The Next 700 Semantics: A Research Challenge Shriram Krishnamurthi Brown University [email protected] Benjamin S. Lerner Northeastern University [email protected] Liam Elberty Unaffiliated Abstract Modern systems consist of large numbers of languages, frameworks, libraries, APIs, and more. Each has characteristic behavior and data. Capturing these in semantics is valuable not only for understanding them but also essential for formal treatment (such as proofs). Unfortunately, most of these systems are defined primarily through implementations, which means the semantics needs to be learned. We describe the problem of learning a semantics, provide a structuring process that is of potential value, and also outline our failed attempts at achieving this so far. 2012 ACM Subject Classification Software and its engineering → General programming languages; Software and its engineering → Language features; Software and its engineering → Semantics; Software and its engineering → Formal language definitions Keywords and phrases Programming languages, desugaring, semantics, testing Digital Object Identifier 10.4230/LIPIcs.SNAPL.2019.9 Funding This work was partially supported by the US National Science Foundation and Brown University while all authors were at Brown University. Acknowledgements The authors thank Eugene Charniak and Kevin Knight for useful conversations. The reviewers provided useful feedback that improved the presentation. © Shriram Krishnamurthi and Benjamin S. Lerner and Liam Elberty; licensed under Creative Commons License CC-BY 3rd Summit on Advances in Programming Languages (SNAPL 2019). Editors: Benjamin S. Lerner, Rastislav Bodík, and Shriram Krishnamurthi; Article No. 9; pp. 9:1–9:14 Leibniz International Proceedings in Informatics Schloss Dagstuhl – Leibniz-Zentrum für Informatik, Dagstuhl Publishing, Germany 9:2 The Next 700 Semantics: A Research Challenge 1 Motivation Semantics is central to the trade of programming language researchers and practitioners.
    [Show full text]
  • Proceedings of the 8Th European Lisp Symposium Goldsmiths, University of London, April 20-21, 2015 Julian Padget (Ed.) Sponsors
    Proceedings of the 8th European Lisp Symposium Goldsmiths, University of London, April 20-21, 2015 Julian Padget (ed.) Sponsors We gratefully acknowledge the support given to the 8th European Lisp Symposium by the following sponsors: WWWLISPWORKSCOM i Organization Programme Committee Julian Padget – University of Bath, UK (chair) Giuseppe Attardi — University of Pisa, Italy Sacha Chua — Toronto, Canada Stephen Eglen — University of Cambridge, UK Marc Feeley — University of Montreal, Canada Matthew Flatt — University of Utah, USA Rainer Joswig — Hamburg, Germany Nick Levine — RavenPack, Spain Henry Lieberman — MIT, USA Christian Queinnec — University Pierre et Marie Curie, Paris 6, France Robert Strandh — University of Bordeaux, France Edmund Weitz — University of Applied Sciences, Hamburg, Germany Local Organization Christophe Rhodes – Goldsmiths, University of London, UK (chair) Richard Lewis – Goldsmiths, University of London, UK Shivi Hotwani – Goldsmiths, University of London, UK Didier Verna – EPITA Research and Development Laboratory, France ii Contents Acknowledgments i Messages from the chairs v Invited contributions Quicklisp: On Beyond Beta 2 Zach Beane µKanren: Running the Little Things Backwards 3 Bodil Stokke Escaping the Heap 4 Ahmon Dancy Unwanted Memory Retention 5 Martin Cracauer Peer-reviewed papers Efficient Applicative Programming Environments for Computer Vision Applications 7 Benjamin Seppke and Leonie Dreschler-Fischer Keyboard? How quaint. Visual Dataflow Implemented in Lisp 15 Donald Fisk P2R: Implementation of
    [Show full text]