Support for Algebraic Data Types in Viper Bachelor of Science Thesis Project Description

Total Page:16

File Type:pdf, Size:1020Kb

Support for Algebraic Data Types in Viper Bachelor of Science Thesis Project Description Support for Algebraic Data Types in Viper Bachelor of Science Thesis Project Description David Rohr Supervised by Arshavir Ter-Gabrielyan Prof. Dr. Peter Müller Chair of Programming Methodology Department of Computer Science ETH Zürich September 30, 2016 1 Introduction Viper [1] is a suite of verication tools developed at ETH Zurich. A central part of Viper is its intermediate verication language, which can be used to describe, for instance, object-oriented programs and their properties (in the form of preconditions, postconditions and assertions) as well as complex data structures like trees and other types of graphs. These data structures can be specied in Viper using recursive predicates [1, pp. 9f.], quantied permissions [1, pp. 12f.] or, potentially, algebraic data types (sometimes referred to as ADTs, but not to be confused with abstract data types), which are commonly used in several functional and multi-paradigm programming languages like Haskell [2], F# [3], Scala [4] or Rust [5]. Although it is not possible to directly reference or dereference their instances (because they are value types), their simplicity and the fact that operations on algebraic data types don't cause any side eects - you could also call them pure - make them a useful tool for the specication of data structures. However, Viper does currently not support the direct (native) declaration of algebraic data types. Instead, they need to be encoded in Viper using custom domains [1, pp. 16f.], which is, depending on the encoded data type, considerably more complicated and error-prone than, for example, a native ADT declaration in Haskell. The main goal of this project is to design and implement a language extension that facilitates the denition and usage of algebraic data types in Viper. 1 2 Language Features This section contains an overview of the language features that will (core features) or might (extensions) be added to Viper within the framework of this project. 2.1 Algebraic data types (core) In the scope of this project, algebraic data types are the main feature added to Viper as part of the developed language extension. According to [2] and [6, p. 454], there exist two major categories of algebraic data types, which should both be supported: • Product types or record types, whose instances are tuples containing values or references of possibly (but not necessarily) several dierent types. • Sum types or variant types, whose instances can hold an instance or a reference of one of typically several dierent types or options. Enu- merated types (enums) can also be seen as a form of sum type; as a side note, sum types are in fact called enums in Rust [5]. Of course, sum types and product types can be combined. For example, the List data type dened in listing 1 is a sum type whose second option (Node) is a product of e and (List e). Listing 1: Recursive declaration of an ADT (linked list) in Haskell 1 data List e = Empty | Node e (List e) 2.2 Pattern matching (core) The concept of pattern matching is closely related to algebraic data types as it provides an easy way to decompose their instances. As a result, pat- tern matching mechanisms are often provided by programming languages supporting algebraic data types and should as well be part of the language extension developed over the course of this project. The language extension should at least support the following kinds of patterns: • A wildcard pattern that matches all possible objects. Example: div _ 0 = undefined (the wildcard is denoted by _) • Patterns that match only a specic instance of a certain type. Example: mul 2 x = x + x (2 is a pattern that only matches the inte- ger 2) 2 • Patterns that bind an instance of a certain type to a free variable of this type. Example: x ++ [] = x (the value of the rst argument is bound to the free variable x) • Patterns for ADTs, lists and other composite data types. Example: listSum (x:xs) = x + listSum xs (the list is decomposed into a head and a tail) The following example demonstrates how these kinds of patterns can be used in Haskell: 1 --An ADT representing a binary tree: 2 data Tree2 e = Leaf | Node (Tree2 e) e (Tree2 e) 3 4 --Checks whether a tree contains a specific element 5 containsElement :: Eq e => Tree2 e -> e -> Bool 6 7 --Leaf: Pattern that matches only the "Leaf" instance 8 --_: Wildcard pattern 9 containsElement Leaf _ = False 10 11 --(Node t1 val t2): ADT Pattern that matches "Node" instances and binds their content to free variables 12 --x: Pattern that binds the second argument (element) to a free variable x 13 containsElement (Node t1 val t2) x = val == x || containsElement t1 x || containsElement t2 x 14 15 --Output: "True" 16 main = putStrLn (show (containsElement (Node Leaf 1 (Node (Node Leaf 2 Leaf) 5 Leaf)) 2)) 2.2.1 Proof of exhaustiveness (core) In addition to dening possible patterns, the project should also describe ways to determine whether a set of patterns is exhaustive (i.e., whether every instance of the corresponding type is matched by at least one pattern in the set). This proof of exhaustiveness could either be done during the context sensitive analysis phase of the verier extension or be integrated into the generated Viper code. Listing 2: A set of Haskell patterns that is not exhaustive (B True is missing) 1 data IntBool = I Int | B Bool 2 3 3 toInt :: IntBool -> Int 4 toInt (I x) = x 5 toInt (B False) = 0 6 7 --Output: "Non-exhaustive patterns in function toInt" 8 main = putStrLn (show (toInt (B True))) Listing 3: Pseudocode that demonstrates how a Viper assertion could be used to check whether the patterns of a match statement are exhaustive if (pattern 1 matches value) { ... } elseif (pattern 2 matches value) { ... } ... else { assert false; } 2.3 Termination analysis (core) Another major part of the project is focused on the termination of programs that are encoded in Viper. Some of the questions that need to be answered in this part are: • What are the conditions that need to be fullled by a method, func- tion, predicate, statement or expression evaluation to be considered terminating? • Which language features could be introduced to facilitate the creation of termination proofs? • How can these new features (e.g., termination metrics) be implemented using basic context sensitive analyses and existing features of the Viper intermediate language? Some central language elements of the termination analysis are loops and recursive functions, methods and predicates, which can possibly cause a pro- gram to not terminate. 2.3.1 Termination metrics (core) Another aspect of the project considers features that simplify the declaration of loop variants and recursion bounds in order to prove the termination of a loop, function, method or program. For example, the programming language 4 Dafny [7] provides a decreases clause to dene termination metrics for loops and recursive methods, which could, in a similar way, also be introduced into Viper. The programming language ATS [8] oers a comparable feature for functions. Like in Dafny or ATS, it should also be possible to provide tuples of integer values/expressions as termination metrics. As explained in more detail in [9], the standard well-founded lexicographical ordering on natural numbers can then be used to order these tuples and to determine whether the tuple is decreased in each iteration. The following two examples demonstrate the usage of the decreases clause in Dafny. In both programs, the variables d1 and d0 represent the most and least signicant digit of a two-digit decimal integer. The integer is printed and reduced until both digits reach the value 0. Listing 4: A simple Dafny program containing a decreases clause method Main ( ) { var d1 := 4 ; var d0 := 5 ; w h i l e ( d1 > 0 _ d0 > 0) decreases d1 , d0 { p r i n t d1 ; p r i n t d0 ; p r i n t "\n" ; i f ( d0 = 0) { d0 := 9 ; d1 := d1 − 1 ; } e l s e { d0 := d0 − 1 ; } } } Listing 5: An implementation of the same algorithm using a recursive method method Main ( ) { out ( 4 , 5) ; } method out ( d1 : i n t , d0 : i n t ) r e q u i r e s d1 ≥ 0 r e q u i r e s d0 ≥ 0 decreases d1 , d0 { i f ( d1 > 0 _ d0 > 0) { p r i n t d1 ; p r i n t d0 ; p r i n t "\n" ; i f ( d0 = 0) { out ( d1 − 1 , 9) ; } e l s e { out ( d1 , d0 − 1) ; } } } 5 2.3.2 Using heap footprints as a termination measure (core) A further goal of this project is to provide the possibility of using the heap footprints of data structures as a termination measure. This feature can be particularly useful if we want to prove the termination of algorithms that need to analyze complex data structures (e.g., graphs) or if, more generally, the data structure's footprint is the only available termination measure. Listing 6: Using the size of an ADT (list) as a decreases measure in Dafny datatype List<T> = Empty | Node(element : T, t a i l : L i s t <T>) method Main ( ) { // Output : "123" printIntegerList(Node(1, Node(2, Node(3, Empty)))); } method printIntegerList(list : L i s t <i n t >) { var l := l i s t ; w h i l e ( l . Node ?) decreases l { p r i n t l . element ; l := l . t a i l ; } } A problem we face when reasoning about heap data structures in Viper is that the heap is not exposed in Viper, which makes it harder to compare the heap footprints of two data structures.
Recommended publications
  • SESAR JU CONSOLIDATED ANNUAL ACTIVITY REPORT 2020 Abstract
    SESAR JU CONSOLIDATED ANNUAL ACTIVITY REPORT 2020 Abstract This Consolidated Annual Activity Report, established on the guidelines set forth in Communication from the Commission ref. 2020/2297, provides comprehensive information on the implementation of the agency work programme, budget, staff policy plan, and management and internal control systems in 2020. © SESAR Joint Undertaking, 2021 Reproduction of text is authorised, provided the source is acknowledged. For any use or reproduction of photos, illustrations or artworks, permission must be sought directly from the copyright holders. COPYRIGHT OF IMAGES © Airbus S.A.S. 2021, page 50; © Alexa Mat/Shutterstock.com, page 209; © Alexandra Lande/Shutterstock.com, page 215; © AlexLMX/Shutterstock.com page 177; © chainarong06/Shutterstock.com, page 220; © DG Stock/ Shutterstock.com, cover; © Diana Opryshko page 155; © Dmitry Kalinovsky/Shutterstock.com, page 56; © iStock. com/Gordon Tipene, pages 189 and 194; © iStock.com/Nordroden, page 12; © iStock.com/sharply_done, page 209; © iStock.com/sharply_done, page 18; © iStock.com/stellalevi, page 228, © lassedesignen/Shutterstock.com, page 70 © Mario Hagen/Shutterstock.com, pages 36 and 130; © Michael Penner, page 130; © NickolayV/Shutterstock. com, page 77; © Sergey Peterman/Shutterstock.com, page 10; © SESAR JU, pages 9, 15, 16, 17, 48, 49, 55,79, 86, 102,132, 134, 145, 147, 148 and 190; © SFIO CRACHO/Shutterstock.com, pages 181 and 213; © Skycolors/ Shutterstock.com, page 40; © smolaw/Shutterstock.com, page 211; © Thiago B Trevisan/Shutterstock.com, page 136; © This Is Me/Shutterstock.com, page 175; © VLADGRIN/Shutterstock.com, page 191; © Limare/Shutterstock, page 193; © Photo by Chris Smith on Unsplash, page 227 © Photo by Julien Bessede on Unsplash, page 224 © Photo by Sacha Verheij on Unsplash, page 221 © yuttana Contributor Studio/Shutterstock.com, page 66.
    [Show full text]
  • Clangjit: Enhancing C++ with Just-In-Time Compilation
    ClangJIT: Enhancing C++ with Just-in-Time Compilation Hal Finkel David Poliakoff David F. Richards Lead, Compiler Technology and Lawrence Livermore National Lawrence Livermore National Programming Languages Laboratory Laboratory Leadership Computing Facility Livermore, CA, USA Livermore, CA, USA Argonne National Laboratory [email protected] [email protected] Lemont, IL, USA [email protected] ABSTRACT body of C++ code, but critically, defer the generation and optimiza- The C++ programming language is not only a keystone of the tion of template specializations until runtime using a relatively- high-performance-computing ecosystem but has proven to be a natural extension to the core C++ programming language. successful base for portable parallel-programming frameworks. As A significant design requirement for ClangJIT is that the runtime- is well known, C++ programmers use templates to specialize al- compilation process not explicitly access the file system - only gorithms, thus allowing the compiler to generate highly-efficient loading data from the running binary is permitted - which allows code for specific parameters, data structures, and so on. This capa- for deployment within environments where file-system access is bility has been limited to those specializations that can be identi- either unavailable or prohibitively expensive. In addition, this re- fied when the application is compiled, and in many critical cases, quirement maintains the redistributibility of the binaries using the compiling all potentially-relevant specializations is not practical. JIT-compilation features (i.e., they can run on systems where the ClangJIT provides a well-integrated C++ language extension allow- source code is unavailable). For example, on large HPC deploy- ing template-based specialization to occur during program execu- ments, especially on supercomputers with distributed file systems, tion.
    [Show full text]
  • Neufuzz: Efficient Fuzzing with Deep Neural Network
    Received January 15, 2019, accepted February 6, 2019, date of current version April 2, 2019. Digital Object Identifier 10.1109/ACCESS.2019.2903291 NeuFuzz: Efficient Fuzzing With Deep Neural Network YUNCHAO WANG , ZEHUI WU, QIANG WEI, AND QINGXIAN WANG China National Digital Switching System Engineering and Technological Research Center, Zhengzhou 450000, China Corresponding author: Qiang Wei ([email protected]) This work was supported by National Key R&D Program of China under Grant 2017YFB0802901. ABSTRACT Coverage-guided graybox fuzzing is one of the most popular and effective techniques for discovering vulnerabilities due to its nature of high speed and scalability. However, the existing techniques generally focus on code coverage but not on vulnerable code. These techniques aim to cover as many paths as possible rather than to explore paths that are more likely to be vulnerable. When selecting the seeds to test, the existing fuzzers usually treat all seed inputs equally, ignoring the fact that paths exercised by different seed inputs are not equally vulnerable. This results in wasting time testing uninteresting paths rather than vulnerable paths, thus reducing the efficiency of vulnerability detection. In this paper, we present a solution, NeuFuzz, using the deep neural network to guide intelligent seed selection during graybox fuzzing to alleviate the aforementioned limitation. In particular, the deep neural network is used to learn the hidden vulnerability pattern from a large number of vulnerable and clean program paths to train a prediction model to classify whether paths are vulnerable. The fuzzer then prioritizes seed inputs that are capable of covering the likely to be vulnerable paths and assigns more mutation energy (i.e., the number of inputs to be generated) to these seeds.
    [Show full text]
  • Master's Thesis
    FACULTY OF SCIENCE AND TECHNOLOGY MASTER'S THESIS Study programme/specialisation: Computer Science Spring / Autumn semester, 20......19 Open/Confidential Author: ………………………………………… Nicolas Fløysvik (signature of author) Programme coordinator: Hein Meling Supervisor(s): Hein Meling Title of master's thesis: Using domain restricted types to improve code correctness Credits: 30 Keywords: Domain restrictions, Formal specifications, Number of pages: …………………75 symbolic execution, Rolsyn analyzer, + supplemental material/other: …………0 Stavanger,……………………….15/06/2019 date/year Title page for Master's Thesis Faculty of Science and Technology Domain Restricted Types for Improved Code Correctness Nicolas Fløysvik University of Stavanger Supervised by: Professor Hein Meling University of Stavanger June 2019 Abstract ReDi is a new static analysis tool for improving code correctness. It targets the C# language and is a .NET Roslyn live analyzer providing live analysis feedback to the developers using it. ReDi uses principles from formal specification and symbolic execution to implement methods for performing domain restriction on variables, parameters, and return values. A domain restriction is an invariant implemented as a check function, that can be applied to variables utilizing an annotation referring to the check method. ReDi can also help to prevent runtime exceptions caused by null pointers. ReDi can prevent null exceptions by integrating nullability into the domain of the variables, making it feasible for ReDi to statically keep track of null, and de- tecting variables that may be null when used. ReDi shows promising results with finding inconsistencies and faults in some programming projects, the open source CoreWiki project by Jeff Fritz and several web service API projects for services offered by Innovation Norway.
    [Show full text]
  • Validating Software Via Abstract State Specifications Technical Report
    Validating Software via Abstract State Specifications Jonathan S. Ostroff Technical Report EECS-2017-02 July 31 2017 Department of Electrical Engineering and Computer Science 4700 Keele Street, Toronto, Ontario M3J 1P3 Canada VALIDATING SOFTWARE VIA ABSTRACT STATE SPECIFICATIONS, 31 JULY 2017 1 Validating Software via Abstract State Specifications Jonathan S. Ostroff Abstract We describe two tools—ETF and Mathmodels—for developing reliable software by eliciting precise specifica- tions, validating them and verifying that the final software product satisfies the requirements. Mathmodels extends the classical Eiffel contracting notation with the use of mathematical models (sets, sequences, relations, functions, bags) to describe abstract state machines. Classical contracts are incomplete or are low level implementation assertions. Mathmodel contracts provide complete specifications of components and systems that can be verified via runtime contract checking scaling up to large systems. Mathmodels are void safe and have immutable queries (for specifications) as well as relatively efficient mutable commands for the abstract description of algorithms. The ETF tool is used in requirements elicitation to derive specifications, to describe the user interface, to identify the abstract state, and to develop use cases before the software product is constructed. The ETF tool generates code that decouples the user interface from the design (the business logic). The ETF Tool supports the derivation of important system safety invariants which become Mathmodel class invariants in the production code. The ideas can be extended to other contracting languages and frameworks and are placed in the context of best practices for software engineering. We also discuss this work in the light of proposals for software engineering education.
    [Show full text]
  • Formal Specification and Verification Stephan Merz
    Formal specification and verification Stephan Merz To cite this version: Stephan Merz. Formal specification and verification. Dahlia Malkhi. Concurrency: the Works of Leslie Lamport, 29, Association for Computing Machinery, pp.103-129, 2019, ACM Books, 10.1145/3335772.3335780. hal-02387780 HAL Id: hal-02387780 https://hal.inria.fr/hal-02387780 Submitted on 2 Dec 2019 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Formal specification and verification Stephan Merz University of Lorraine, CNRS, Inria, LORIA, Nancy, France 1. Introduction Beyond his seminal contributions to the theory and the design of concurrent and distributed algorithms, Leslie Lamport has throughout his career worked on methods and formalisms for rigorously establishing the correctness of algorithms. Commenting on his first article about a method for proving the correctness of multi-process programs [32] on the website providing access to his collected writings [47], Lamport recalls that this interest originated in his submitting a flawed mutual-exclusion algorithm in the early 1970s. As a trained mathematician, Lamport is perfectly familiar with mathematical set theory, the standard formal foundation of classical mathematics. His career in industrial research environments and the fact that his main interest has been in algorithms, not formalisms, has certainly contributed to his designing reasoning methods that combine pragmatism and mathematical elegance.
    [Show full text]
  • Course Descriptions
    Course Descriptions 08/18 ACCT 090 Introduction to Accounting 3 Credits Prerequisites: None. Introduces the basic principles of accounting as utilized in a variety of office settings. Includes the principles of debit and credit, double-entry bookkeeping, use of journals, and analyzing transactions. Uses of ledgers, posting procedures, petty cash, banking procedures, payroll, depreciation, work sheets, balance sheets, and income statements are covered as well. ACCT 101 Financial Accounting TransferIN 3 Credits Prerequisites: Demonstrated competency through appropriate assessment or earning a grade of “C” or better in ENGL 093 and ENGL 083, or ENGL 095, and MATH 023 or higher. Introduces the fundamental principles, techniques, and tools of financial accounting. The development and use of the basic financial statements pertaining to corporations both service and retail. ACCT 102 Managerial Accounting TransferIN 3 Credits Prerequisites: ACCT 101. Emphasizes managerial accounting concepts, general versus cost accounting systems, cost behavior, cost-volume profit analysis, standard cost systems, responsibility accounting, incremental analysis, and capital investment analysis. ACCT 106 Payroll Accounting 3 Credits Prerequisites: Demonstrated competency through appropriate assessment or earning a grade of “C” or better in ENGL 093 and ENGL 083, or ENGL 095 and MATH 023 or higher. Covers payroll calculating and reporting including various federal and state withholding taxes, employer payroll taxes, typical insurance and other arrangements affecting the preparation of payroll registers and employee earning records. ACCT 118 Financial Concepts for Accounting 3 Credits Prerequisites: None. Surveys the applications of mathematics to various business and accounting activities. Includes a review of basic mathematical operations and their subsequent application to such commercial activities as payroll, consumer finance, business borrowing, inventory control, pricing, depreciation, and time value of money.
    [Show full text]
  • Interakce S Moderními Technologiemi Prostřednictvím Projevů Člověka
    Univerzita Karlova v Praze Pedagogická fakulta INTERAKCE S MODERNÍMI TECHNOLOGIEMI PROSTŘEDNICTVÍM PROJEVŮ ČLOVĚKA Jaroslav Novák Katedra speciální pedagogiky Vedoucí bakalářské práce: Doc. PhDr. Lea Květoňová, Ph.D. Studijní program: Specializace v pedagogice, IT–TIV Praha, 2014 6 DTD 6"DTD T\6D ­ DT6" T"\6D " "6"66" T "T"D6D DT \"DMT \T6D66" \ T T\6D" \"TM D " \ DN T Prohlašuji, že jsem bakalářskou práci na téma Interakce s moderními technologiemi prostřednictvím projevů člověka vypracoval pod vedením vedoucí bakalářské práce samostatně za použití v práci uvedených pramenů a literatury. Dále prohlašuji, že tato bakalářská práce nebyla využita k získání jiného nebo stejného titulu. V Praze 18. 6. 2014 .......................................................... podpis Rád bych vyjádřil poděkování Doc. PhDr. Lee Květoňové, Ph.D., za její cennou podporu a trpělivost při vedení mé bakalářské práce. .......................................................... podpis NÁZEV: Interakce s moderními technologiemi prostřednictvím projevů člověka AUTOR: Jaroslav Novák KATEDRA (ÚSTAV) Katedra speciální pedagogiky VEDOUCÍ PRÁCE: Doc. PhDr. Lea Květoňová, Ph.D. ABSTRAKT: Práce se zabývá komunikačními technologiemi se zaměřením na gesta v pojetí aug- mentativní a alternativní komunikace osob se znevýhodněním. Cílem je vymezit možnosti nových technologií na zpracování zejména obrazové informace při komunikaci člověka s technickým zařízením zaměřené především na rozpoznávání gest. Hlavní metodou zpracování je analýza dokumentů, práce má charakter studie s po- hledem technickým a aplikačním na vybrané komunikační technologie, obsahuje pohled oborů ICT a speciální pedagogiky. Výsledkem je text vycházející z popisu obecných pojmů komunikace přes specifikace technického rázu, vazby na možnosti aplikování technologií s různými typy znevý- hodnění, popisu zařízení zpracovávající obraz, popř. zvuk, a gesta, zakončený popi- sem možností užití autisty.
    [Show full text]
  • Best Practices 2013 Compendium from the Bio Lit World Best Practices Awards Program 2013
    Focus on Best Practices 2013 Compendium from the Bio lIT World Best Practices Awards Program 2013 2013 | Best Practices Compendium | BiolIT World [1] INTRODUCTION Best Practices 2013 2013 Judges The 2013 Best Practices Awards were INTRODUCTION 3 organized by Bio-IT World managing editor KNOWLEDGE MANAGEMENT 4 Allison Proffitt and editor Kevin Davies. Searching for Gold: GSK’s New Search Program that Saved Them Millions Joining the editors in judging the entries GlaxoSmithKline was a distinguished panel of experts: JUDGES’ PRIZE 5 Joe Cerro, SchoonerGroup Genentech Finds Big Savings in Small Places Bill Van Etten,The BioTeam Genentech Stephen Fogelson, Develotron 4 Martin Gollery, Tahoe Informatics CLINICAL AND HEALTH IT 6 PRO-ACT: Bigger and Better ALS Database Open for Mining Phillips Kuhl, Cambridge Healthtech Institute Prize4Life Alan Louie, IDC Health Insights Susan Ward, Consultant INFORMATICS 7 Brenda Yanak, Pfizer From DNA to PDF: Harnessing the Genome and Phenome to Make Better Diagnoses Genomic Medicine Institute, Geisinger Health System - nominated by SimulConsult IT INFRASTRUCTURE/HPC 8 5 The Cloud’s the Limit: Rentable Supercomputers for Improving Drug Discovery Schrodinger - nominated by Cycle Computing EDITORS’ PRIZE 9 GeneInsight: Genetic Knowledge to Action GeneInsight 8 11 HONORABLE MENTION: 10 - 11 Faster, Scarless Assemblies JBI and Amgen - nominated by TeselaGen Biotechnology TrialShare Brings Much Needed Transparency to Clinical Trials Data Immune Tolerance Network - nominated by LabKey Software 2013 BEST PRACTICES OVERVIEW 12 2013 BEST PRACTICES ENTRIES 13 Clinical and Health IT 13 Informatics 65 IT Infrastructure/HPC 155 Knowledge Management 202 2013 | Best Practices Compendium | BiolIT World [2] INTRODUCTION The Bio-IT World Best Practices Awards have been around long enough for us—as editors and judges—to get a little jaded.
    [Show full text]
  • Efficient Query Processing for Scalable Web Search
    Efficient Query Processing for Scalable Web Search Nicola Tonellotto Craig Macdonald National Research Council of Italy University of Glasgow [email protected] [email protected] Iadh Ounis University of Glasgow [email protected] November 23, 2018 1 Abstract Search engines are exceptionally important tools for accessing information in today’s world. In satisfying the information needs of millions of users, the effectiveness (the quality of the search results) and the efficiency (the speed at which the results are returned to the users) of a search engine are two goals that form a natural trade-off, as techniques that improve the effectiveness of the search engine can also make it less efficient. Meanwhile, search engines continue to rapidly evolve, with larger indexes, more complex retrieval strategies and growing query volumes. Hence, there is a need for the development of efficient query processing infrastructures that make appropriate sacrifices in effectiveness in order to make gains in efficiency. This survey comprehensively reviews the foundations of search engines, from index layouts to basic term-at-a-time (TAAT) and document-at-a-time (DAAT) query processing strategies, while also providing the latest trends in the literature in efficient query processing, including the coherent and systematic reviews of techniques such as dynamic pruning and impact-sorted posting lists as well as their variants and optimisations. Our explanations of query processing strategies, for instance the WAND and BMW dynamic pruning algorithms, are presented with illustrative figures showing how the processing state changes as the algorithms progress. Moreover, acknowledging the recent trends in applying a cascading infrastructure within search systems, this survey describes techniques for efficiently integrating effective learned models, such as those obtained from learning-to- rank techniques.
    [Show full text]
  • Inform 2.5.1 User Manual (PDF)
    inForm ® with MOTiF TM Advanced Image Analysis Software User's Manual inForm 2.5.1 Publication Date: February 23, 2021 Notice This manual is published by Akoya Biosciences, Inc. The information in this document is subject to change without notice and should not be construed as a commitment by Akoya Biosciences, Inc. Akoya assumes no responsibility for any errors that may appear in this document. This manual is believed to be complete and accurate at the time of publication. In no event shall Akoya Biosciences be liable for incidental or consequential damages in connection with or arising from the use of this manual. This manual describes how to use inForm software. For more information contact: Akoya Biosciences, Inc. 100 Campus Drive, 6th Floor Marlborough, MA 01752, USA Phone: +1 855-896-8401 Fax: +1 855-404-0061 Email: [email protected] Email (outside the US): [email protected] Web site: http://www.akoyabio.com This software covered by US Patent 7,555,155; 7,953,264; 8,280,140; 8,639,043; 10,126,242 and patents pending. Table of Contents Chapter 1 Welcom.e.. .t.o.. .i.n..F..o..r.m..................................................................................... 6 Chapter 2 Introduc.t..io..n................................................................................................ 7 1 Abo.u..t. .i.n.F..o..r.m............................................................................................................................ 7 2 Soft.w..a..r.e.. .C..o..n..fi.g..u..r.a.t.i.o..n..s............................................................................................................ 9 3 Ke.y.. .T..e.r.m...s............................................................................................................................. 11 4 Us.i.n..g. .O...n..li.n..e.. .D..o..c.u..m...e..n.t.a..t.i.o..n..................................................................................................
    [Show full text]
  • Paper 58 ~ a Comparison of Guiding Techniques for Out-Of-View Objects
    CHI 2019 Paper CHI 2019, May 4–9, 2019, Glasgow, Scotland, UK A Comparison of Guiding Techniques for Out-of-View Objects in Full-Coverage Displays Julian Petford, Iain Carson, Miguel A. Nacenta Carl Gutwin University of St Andrews University of Saskatchewan St Andrews, Scotland Saskatoon, Canada [email protected],ic48,[email protected] [email protected] ABSTRACT in Full-Coverage Displays. In CHI Conference on Human Factors in Full-coverage displays can place visual content anywhere Computing Systems Proceedings (CHI 2019), May 4–9, 2019, Glasgow, on the interior surfaces of a room (e.g., a weather display Scotland Uk. ACM, New York, NY, USA, 13 pages. https://doi.org/ 10.1145/3290605.3300288 near the coat stand). In these settings, digital artefacts can be located behind the user and out of their field of view — meaning that it can be difficult to notify the user when these artefacts need attention. Although much research has been 1 INTRODUCTION carried out on notification, little is known about how best to Full-coverage displays (FCDs) are environments where con- direct people to the necessary location in room environments. tent can be displayed on any of the interior surfaces of a room, We designed five diverse attention-guiding techniques for using technologies such as projection [12, 62] or augmented- full-coverage display rooms, and evaluated them in a study reality headsets [31, 37]. FCDs offer new opportunities for where participants completed search tasks guided by the interactive systems: they provide a large display area and different techniques. Our study provides new results about extended pixel space; they allow spatial organisation of con- notification in full-coverage displays: we showed benefits of tent; and they enable integration of digital artefacts with persistent visualisations that could be followed all the way to real-world activities (e.g., weather information projected the target and that indicate distance-to-target.
    [Show full text]