2.2 Alternative Encoding of Algebraic Data Types

2.2 Alternative Encoding of Algebraic Data Types

PDF hosted at the Radboud Repository of the Radboud University Nijmegen The following full text is a publisher's version. For additional information about this publication click this link. http://hdl.handle.net/2066/76553 Please be advised that this information was generated on 2021-10-08 and may be subject to change. Functional Web Applications Implementation and Use of Client Side Interpreters Jan Martin Jansen ii Copyright © 2010 Jan Martin Jansen All rights reserved ISBN: 978-90-9025436-4 NUR-code: 988 Typeset with LTEX2e Cover design by P.J. de Vries, Bureau Multi Media NLDA Printed by Ipskamp Print Partners This research was supported by the Netherlands Defence Academy (NLDA) and the Centre for Automation of Mission-Critical Systems (CAMS-Force Vision) Functional Web Applications Implementation and Use of Client Side Interpreters Een wetenschappelijke proeve op het gebied van de Natuurwetenschappen, Wiskunde en Informatica Proefschrift ter verkrijging van de graad van doctor aan de Radboud Universiteit Nijmegen op gezag van de rector magnificus prof. mr. S.C.J.J. Kortmann volgens besluit van het college van decanen in het openbaar te verdedigen op donderdag 8 juli 2010 om 13:30 uur precies door Johannis Martinus Jansen geboren op 14 maart 1960 te Nieuwe Niedorp Promotor: Prof. dr. dr. hc. ir. M.J. Plasmeijer Copromotor: dr. P.W.M. Koopman Manuscript commissie: Prof. dr. F.W. Vaandrager Prof. dr. C. Runciman University of York Prof. dr. S.D. Swierstra Universiteit van Utrecht Contents 1 Introduction 1 1.1 Internet A p p licatio n s....................................................................................... 1 1.2 Internet Applications and Functional Programming .............................. 5 1.3 Scope and Contents of this T h e s is ................................................................ 7 2 Comprehensive Encoding of Data Types and Algorithms in the À- Calculus 17 2.1 Introduction ........................................................................................................ 17 2.2 Alternative Encoding of Algebraic Data Types ........................................ 18 2.3 Defining Recursive fu n c tio n s.......................................................................... 22 2.4 Converting Clean and Haskell Programs to À-calculus ...........................24 2.5 Comparing the Church and Scott encoding ............................................... 27 2.6 C o n clu sio n s........................................................................................................ 29 3 Efficient Interpretation by Transforming Data Types to Functions 31 3.1 In tro d u ctio n ........................................................................................................ 31 3.2 Representation of D ata Types by functions ............................................ 33 3.3 Sapl: An intermediate Functional Language ............................................ 36 3.4 An Interpreter for S a p l.................................................................................... 37 3.5 B en ch m ark s........................................................................................................ 41 3.6 Conclusions and further Research ................................................................ 47 4 From Interpretation to Compilation 49 4.1 Introduction ........................................................................................................ 49 4.2 The Sapl programming lan g u ag e................................................................... 50 4.3 An Interpreter for Sapl .................................................................................... 51 4.4 A Sapl Compiler ................................................................................................. 53 4.5 Conclusions ........................................................................................................ 64 5 Embedding a Web-Based Workflow Management System in a Func­ tional Language 65 5.1 Introduction ........................................................................................................ 65 5.2 Overview of the iTask system ...................................................................... 66 5.3 Ordering e x am p le .............................................................................................. 69 5.4 Experience with the iTask la n g u a g e ............................................................ 71 v vi CONTENTS 5.5 Experience with Clean as host lan g u ag e...................................................... 73 5.6 Related w o r k ..................................................................................................... 76 5.7 Conclusions ........................................................................................................ 77 6 Declarative Ajax and Client-Side Evaluation of Workflows 79 6.1 In tro d u ctio n ........................................................................................................ 79 6.2 Introduction to i T a s k s ....................................................................................84 6.3 Controlling the evaluation of tasks ............................................................ 88 6.4 Standard iTask Im p lem en tatio n ................................................................... 90 6.5 Implementing Ajax calls via Local Task R ew ritin g ..................................94 6.6 Implementing Local Task Rewriting on the C lie n t..................................98 6.7 Related W o r k .....................................................................................................101 6.8 C o n clu sio n s........................................................................................................102 7 ¡Editors: E xten d in g iTask w ith Interactive P lug-in s 105 7.1 In tro d u ctio n ........................................................................................................105 7.2 The iTask t o o l k i t ..............................................................................................107 7.3 iEditor: Plug-ins in iT a s k ................................................................................ 111 7.4 Implementation of iE d ito rs............................................................................. 116 7.5 Implementation for Java A pplets................................................................... 119 7.6 D iscussion........................................................................................................... 121 7.7 Related W o r k .....................................................................................................122 7.8 C o n clu sio n s........................................................................................................123 8 Web Based Dynamic Workflow Systems for Command & Constrol125 8.1 In tro d u ctio n ........................................................................................................125 8.2 The iTask s y s te m ..............................................................................................127 8.3 Example Applications in the Military D om ain ........................................ 133 8.4 Strengths and W eak n esses............................................................................. 137 8.5 Future C hallenges..............................................................................................141 8.6 C o n clu sio n s........................................................................................................142 9 Conclusions and Discussion 143 9.1 Part 1: Formalism and Implementation of Functional Languages . 143 9.2 Part 2: The iTask system and Client-side Processing.............................. 146 9.3 Part 3: Applications of the iTask S y s te m .................................................. 148 9.4 Final C onclusions..............................................................................................149 Bibliography 151 Summary 161 Samenvatting 163 Dankwoord 165 Curriculum Vitae 167 Chapter 1 Introduction This thesis is about the use of functional programming languages for the imple­ mentation of Internet applications and, in particular, the use of interpreters for client-side processing. This chapter gives an overview of the scope and the topics of the research. After a discussion about what makes Internet application development difficult and how modern functional programming can help to ease this development, a detailed description of the contents of this thesis and the contributions of the au­ thor is given. 1.1 Internet Applications During the last decade the Internet has become the prominent platform for the deployment of computer applications and web-browsers are an important interface for a large class of computer applications, such as e-mail applications, on-line shops and banking applications. Furthermore, they are used as the default communication interface between customers and companies like governmental institutions, insurance companies, etc. An important advantage of using web-browsers to interface with applications is that they do not require installation of application related software on a computer to use them. It is even possible to run the same web application on a large number of different platforms and operating systems, including PDA’s, smart phones, etc. Despite this popularity and convenience for the user, for a software engineer the development of web application is a difficult job. There are several

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    174 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us