Muutke küpsiste eelistusi

Trends in Functional Programming Volume 1 [Kõva köide]

Edited by , Edited by , Edited by
  • Formaat: Hardback, 256 pages, kõrgus x laius: 229x178 mm
  • Sari: Trends in Functional Programming
  • Ilmumisaeg: 01-Dec-2000
  • Kirjastus: Intellect Books
  • ISBN-10: 1841500240
  • ISBN-13: 9781841500249
Teised raamatud teemal:
  • Formaat: Hardback, 256 pages, kõrgus x laius: 229x178 mm
  • Sari: Trends in Functional Programming
  • Ilmumisaeg: 01-Dec-2000
  • Kirjastus: Intellect Books
  • ISBN-10: 1841500240
  • ISBN-13: 9781841500249
Teised raamatud teemal:
This book brings together leading researchers and practitioners in the field of functional programming. The work presented here covers many aspects of the field, including:









language design  proof and transformation semantics and models implementation applications type systems parallelism and distribution performance modelling and profiling programming methodologies



The Editors provide a substantial introduction to a wide ranging set of papers, arranged by subject area. Appropriate overviews and summaries bring strong thematic links between chapters and sections covering:









Parallel Systems and Programming Type Systems Architectures and Implementations Applications Theory



The articles themselves are drawn from the First Scottish Functional Programming Workshop, held in Stirling in 1999. Central Scotland has been very influential in the development of functional programming, with notable contributions including the design, implementation and use of the SASL, Standard ML and Haskell languages. 





The Workshops provide an international forum, linking a vibrant Scottish core with the wider community. As a product of this forum, the book brings a broad perspective on current research trends and practice in the field.
Acknowledgements                    i



 



Preface                    iii



 



I     PARALLEL SYSTEMS AND PROGRAMMING                    1



1     Bypassing of Channels in Eden                    2



       Ulrike Klusike, Ricardo Peña and Clara Segura



       1.1     Introduction               2



       1.2     Eden and Bypassing               3



       1.3     CoreEden and Annotated CoreEden               4



       1.4     Bypassing Analysis               5



       1.5     The Bypassing Protocol               6



       1.6     Communication Costs and Conclusions               10



 



2     From GrandSim to Paradise                    11



       Félix Hernández, Ricardo Peña and Fernando Rubio



       2.1     Introduction               11



       2.2     GrandSim               12



       2.3     Eden               12



       2.4     Paradise               14



       2.5     Current State of the Implementation               19



       2.6     Related Work, Future Work and Conclusion               19



 



3     BSP-based Cost Analysis of Skeletal Programs                    20



       Yashushi Hayashi and Murray Cole 



       3.1     Introduction               20



       3.2     Background and Previous Work               21



       3.3     A BSP Cost Algebra               22



       3.4     A VEC-BSP Implementation Strategy               23



       3.5     A Cost Translation Framework               27



       3.6     Example and Discussion               27



       3.7     Summary and Future Work               27



 



4     High Level BSP Programming: BSML and BS                    29



       4.1     Introduction               29



       4.2     Explicit Processes + Flat Parallelism = Direct Mode           
   29



       4.3     BSML               30



       4.4     The BSMLlib Experiment               31



       4.5     Timings for BSMLlib               33



       4.6     Conclusions and Future Work               38



 



II     TYPES                    39



5     Deep Type Inference for Mobile Functions                    40



       Stephen Gilmore



       5.1     Introduction               40



       5.2     Compiling to Java Byte Code               41



       5.3     Understanding the Static Semantics               46



       5.4     Using Deep Types to Detect Unchecked Updates               47



       5.5     Related Work               48



 



6     Generalizing Techniques for Type Debugging                    49



       Bruce J. McAdam



       6.1     Introduction               49



       6.2     Graphs               49



       6.3     Basic Analysis of Graphs               51



       6.4     Bernstein and Stark's Assumption Environments             
 53



       6.5     Wand's Source of Type Errors               55



       6.6     Duggan's Correct Type Explanations               56



       6.7     Conclusions               57



 



7     Explaining Type Errors by Finding the Source of a Type Conflict       
            58



       Jun Yang



       7.1     Introduction               58



       7.2     Unification of Assumption Environments (AE)               60



       7.3     Incremental Error Inference               61



       7.4     Conclusions               64



       7.5     Acknowledgements               66



 



8     How to Combine the Benefits of Strict and Soft Typing                 
  67



       Manfred Widera and Christoph Beierle 



       8.1     Introduction               67



       8.2     The Use of Complete Type Checking               68



       8.3     The Definition of Complete Subtyping               70



       8.4     Conclusion and Future Work               75



 



III     ARCHITECTURES AND IMPLEMENTATION                    77



9     Interfacing Java with Haskell                    78



       Mark Green and Ali E. Abdallah



       9.1     Introduction               78



       9.2     Possible Approaches               79



       9.3     Java-Haskell Interface Implementation               80



       9.4     Examples of Use               83



       9.5     Conclusion               86



 



10   An Abstract Machine for Memory Management                    88



       10.1   Introduction               88



       10.2   Abstract Machines               89



       10.3   Garbage Collection               91



       10.4   Further Work               95



 



11   The MT Architecture and Allocation Algorithm                    97 



       Marco T. Morazán and Douglas R. Troeger



       11.1   The MT System               97



       11.2   Expected Advantages of MT               99



       11.3   Experiment I: List of Fibonacci Numbers Using References to
Objects               100



       11.4   Experiment II: Simple Lists in MT               102



       11.5   Experiment III: A List of Simple Lists               103



       11.6   Summarising Remarks               104



 



12   ZG-machine: a Space-Efficient G-machine                    105



       Gyun Woo and Taisook Han



       12.1   Introduction               105



       12.2   Tag-forwarding               106



       12.3   Experiments               107



       12.4   Summary and Related Work               112



 



IV     APPLICATIONS                    114



13   A Functional Design Framework for Genetic Algorithms                   
115



       Fethi A. Rabhi, Guy Lapalme and Albert Y. Zomaya



       13.1   Introduction               115



       13.2   Genetic Algorithms               116



       13.3   The Single-row Routing (SRR) Problem               119



       13.4   Solving the SRR Problem with the GA Framework             
 121



       13.5   Conclusion and Future Work               123



 



14   An Industrial use of FP: A Tool for Generating Test Scripts from Sys-



       tem Specifications                    125



       Paul Baker, Clive Jervis and David J. King



       14.1   Introduction               125



       14.2   Motivation for Using Formal Methods               126



       14.3   Formal Specification with Message Sequence Charts             
 126



       14.4   Generating Test Scripts from MSCs               127



       14.5   Implementation of ptk               129



       14.6   How could Functional Languages be Improved to Better Meet the 



                 Requirements of Industry               131



       14.7   Conclusions               132



 



V     THEORY                    133



15   List Homomorphisms with Accumulation and Indexing                   
134



       Walter Dosch and Bernd Wiedemann



       15.1   Introduction               134



       15.2   Data Parallel List Programming               135



       15.3   List Homomorphisms With Accumulation               137



       15.4   Conclusion and Related Work               141



 



16   Reuse by Program Transformation                    143



       Ralf Lämmel



       16.1   Introduction               143



       16.2   Motivation by Examples               144



       16.3   Transformation Operators               147



       16.4   Concluding Remarks               151



 



17   An Abstract Machine for Parallel Lazy Evaluation                    153



       Clem Baker-Finch



       17.1   Introduction               153



       17.2   Sequential Lazy Abstract Machines               154



       17.3   Fully Speculative Evaluation               155



       17.4   Parallelism with par and seq               158



       17.5   Modelling Limited Resources               159



       17.6   Conclusion               160



 



Bibliography                    162