Central European Functional Programming School 6th Summer School, CEFP 2015, Budapest, Hungary, July 6-10, 2015, Revised Selected Papers

This volume presents the revised lecture notes of selected talks given at the 6th Central European Functional Programming School, CEFP 2015, held in July 2015, in Budapest, Hungary.The 10 revised full papers presented were carefully reviewed and selected. The lectures covered a wide range of functio...

Full description

Saved in:
Bibliographic Details
Main Authors Zsok, Viktoria, Porkolab, Zoltan, Horvath, Zoltan
Format eBook Conference Proceeding
LanguageEnglish
Published Cham Springer Nature 2019
Springer International Publishing AG
Springer International Publishing
Springer
Edition1
SeriesLecture Notes in Computer Science
Subjects
Online AccessGet full text
ISBN3030283461
9783030283469
9783030283452
3030283453
ISSN0302-9743
1611-3349
DOI10.1007/978-3-030-28346-9

Cover

Abstract This volume presents the revised lecture notes of selected talks given at the 6th Central European Functional Programming School, CEFP 2015, held in July 2015, in Budapest, Hungary.The 10 revised full papers presented were carefully reviewed and selected. The lectures covered a wide range of functional programming and C++ programming subjects.
AbstractList This volume presents the revised lecture notes of selected talks given at the 6th Central European Functional Programming School, CEFP 2015, held in July 2015, in Budapest, Hungary.The 10 revised full papers presented were carefully reviewed and selected. The lectures covered a wide range of functional programming and C++ programming subjects.
Author Zsók, Viktória
Horváth, Zoltán
Porkoláb, Zoltán
Author_xml – sequence: 1
  fullname: Zsok, Viktoria
– sequence: 2
  fullname: Porkolab, Zoltan
– sequence: 3
  fullname: Horvath, Zoltan
BookMark eNpNkMtOwzAQRQ0URFv6AewqNoiFWzvjPGYJUQtIlUAC1padOG0gtUucwu-TNAixmte5o5k7IgPrrCHkkrMZZyyeY5xQoAwYDRIQEcUjMoK2PFT8mAx5xDkFEHjyfzAgwy6nGAs4IyPOeRxzBgLOycT7d8ZYELAEWTIks9TYplbVdLGv3c4oO13ubdaUzra959qta7XdlnY9fck2zlUX5LRQlTeT3zgmb8vFa_pAV0_3j-ntiioehSHQQKsiigyEBSoE1AoRQWOhuIlio4HlhRCotAi0zhRmiU7yHCDUeYK6yGFMbvq9yn-Yb79xVePlV2W0cx9etrb8PYstO-9Zv6vbS00te4oz2ZnY0RJky8uDQHaK616xq93n3vhGHhZnvRVycZeGGERCQEte9WSmvKpKW8qts50pu42XIYiAcYQfp3J3cQ
ContentType eBook
Conference Proceeding
Copyright Springer Nature Switzerland AG 2019
Copyright_xml – notice: Springer Nature Switzerland AG 2019
DBID I4C
DEWEY 005
DOI 10.1007/978-3-030-28346-9
DatabaseName Casalini Torrossa eBooks Institutional Catalogue
DatabaseTitleList
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISBN 3030283461
9783030283469
EISSN 1611-3349
Edition 1
1st ed. 2019.
Editor Zsók, Viktória
Horváth, Zoltán
Porkoláb, Zoltán
Editor_xml – sequence: 1
  fullname: Horváth, Zoltán
– sequence: 2
  fullname: Porkoláb, Zoltán
– sequence: 3
  fullname: Zsók, Viktória
ExternalDocumentID 9783030283469
488233
EBC5926443
5342019
GroupedDBID 38.
AABBV
AAJYQ
AATVQ
ABBUY
ABCYT
ACDTA
ACDUY
AEDXK
AEHEY
AEJLV
AEKFX
AHNNE
ALMA_UNASSIGNED_HOLDINGS
ATJMZ
AYMPB
BBABE
CXBFT
CZZ
EXGDT
FCSXQ
I4C
IEZ
MGZZY
NSQWD
OORQV
SBO
TPJZQ
TSXQS
Z83
Z84
Z88
-DT
-~X
29L
2HA
2HV
ACGFS
ADCXD
EJD
F5P
LAS
LDH
P2P
RSU
~02
ID FETCH-LOGICAL-a16553-2baf66e35f9a939ba9993b9fa1e67eb30df449ab42bbca9c8b8dd335bd89bfd3
ISBN 3030283461
9783030283469
9783030283452
3030283453
ISSN 0302-9743
IngestDate Tue Sep 09 06:55:59 EDT 2025
Tue Oct 01 19:17:10 EDT 2024
Thu Apr 24 04:17:11 EDT 2025
Tue Sep 09 06:54:12 EDT 2025
IsPeerReviewed true
IsScholarly true
LCCallNum_Ident Q
Language English
LinkModel OpenURL
MeetingName Central European Functional Programming School
MergedId FETCHMERGED-LOGICAL-a16553-2baf66e35f9a939ba9993b9fa1e67eb30df449ab42bbca9c8b8dd335bd89bfd3
OCLC 1117710343
PQID EBC5926443
PageCount 401
ParticipantIDs askewsholts_vlebooks_9783030283469
springer_books_10_1007_978_3_030_28346_9
proquest_ebookcentral_EBC5926443
casalini_monographs_5342019
PublicationCentury 2000
PublicationDate 2019
20190814
2019-08-13
PublicationDateYYYYMMDD 2019-01-01
2019-08-14
2019-08-13
PublicationDate_xml – year: 2019
  text: 2019
PublicationDecade 2010
PublicationPlace Cham
PublicationPlace_xml – name: Netherlands
– name: Cham
PublicationSeriesSubtitle Theoretical Computer Science and General Issues
PublicationSeriesTitle Lecture Notes in Computer Science
PublicationSeriesTitleAlternate Lect.Notes Computer
PublicationYear 2019
Publisher Springer Nature
Springer International Publishing AG
Springer International Publishing
Springer
Publisher_xml – name: Springer Nature
– name: Springer International Publishing AG
– name: Springer International Publishing
– name: Springer
RelatedPersons Hartmanis, Juris
Gao, Wen
Bertino, Elisa
Woeginger, Gerhard
Goos, Gerhard
Steffen, Bernhard
Yung, Moti
RelatedPersons_xml – sequence: 1
  givenname: Gerhard
  surname: Goos
  fullname: Goos, Gerhard
  organization: Karlsruhe Institute of Technology, Karlsruhe, Germany
– sequence: 2
  givenname: Juris
  surname: Hartmanis
  fullname: Hartmanis, Juris
  organization: Cornell University, Ithaca, USA
– sequence: 3
  givenname: Elisa
  surname: Bertino
  fullname: Bertino, Elisa
  organization: Purdue University, West Lafayette, USA
– sequence: 4
  givenname: Wen
  surname: Gao
  fullname: Gao, Wen
  organization: Peking University, Beijing, China
– sequence: 5
  givenname: Bernhard
  surname: Steffen
  fullname: Steffen, Bernhard
  organization: TU Dortmund University, Dortmund, Germany
– sequence: 6
  givenname: Gerhard
  surname: Woeginger
  fullname: Woeginger, Gerhard
  organization: RWTH Aachen, Aachen, Germany
– sequence: 7
  givenname: Moti
  surname: Yung
  fullname: Yung, Moti
  organization: Columbia University, New York, USA
SSID ssj0002208908
ssj0002792
Score 2.4790652
Snippet This volume presents the revised lecture notes of selected talks given at the 6th Central European Functional Programming School, CEFP 2015, held in July 2015,...
SourceID askewsholts
springer
proquest
casalini
SourceType Aggregation Database
Publisher
SubjectTerms Artificial Intelligence
Computer programming, programs, data
Computer Science
Database Management
Functional programming (Computer science)
Programming Languages, Compilers, Interpreters
Programming Techniques
Software Engineering
Subtitle 6th Summer School, CEFP 2015, Budapest, Hungary, July 6-10, 2015, Revised Selected Papers
TableOfContents 5 Lambda Expressions -- 5.1 Capture -- 5.2 Capturing this Pointer -- 5.3 Constant Initialization by Lambda -- 5.4 Generic Lambdas -- 5.5 Generalized Lambda Capture -- 6 C++ Template Metaprogramming -- 7 Summary -- References -- Programming in a Functional Style in C++ -- 1 Introduction -- 2 Functional Programming in C++ -- 3 Functional Programming: The Definition -- 4 Characteristics of Functional Programming -- 4.1 First-Class Functions -- The Extension of the Function Concept. -- 4.2 First-Class Functions -- 4.3 Immutable Data -- 4.4 Pure Functions -- 4.5 Recursion -- 4.6 Processing of Lists -- 4.7 Lazy Evaluation -- 5 Functional Programming in C++17 and C++20 -- 5.1 Fold Expressions -- 5.2 Ranges Library -- Lazy Evaluation. -- Function Composition. -- Range Comprehension. -- 5.3 Concepts Lite -- Concepts Lite for Class Templates and Member of Classes. -- Extended Functionality. -- 5.4 std::optional -- 5.5 std::future Extensions -- 5.6 Conclusion -- References -- Functional, Reactive Web Programming in F# -- 1 Introduction -- 2 WebSharper -- 3 WebSharper UI.Next -- 3.1 Dynamic Dataflow -- 3.2 Reactive DOM -- 3.3 List Models -- 3.4 Reactive Templates -- 4 Examples -- 4.1 Reactive Views -- 4.2 Reactive Formlets -- 4.3 Reactive Piglets -- 4.4 Reactive Templates -- 5 Related Work -- 6 Conclusions -- References -- Functional Languages in Design of Coloured Petri Nets Models -- 1 Introduction -- 2 Basic Concepts of Petri Nets -- 2.1 Markings and Transition Firing -- 3 Standard ML -- 3.1 Expressions and Primitive Types -- 3.2 Variables and Functions -- 3.3 Tuples, Records and Lists -- 3.4 User-Defined Types -- 3.5 Higher-Order Functions -- 3.6 Structures, Signatures and Functors -- 4 CPN ML -- 4.1 Colour Sets and Variables -- 4.2 Multisets -- 5 Coloured Petri Nets -- 5.1 Place, Transition and Arc Inscriptions -- 5.2 Transition Firing -- 5.3 Time in CPN
8.5 Compiler-Directed Parallelisation for Workstation Clusters -- 9 Compilation Case Study: Convolution -- 9.1 Type Inference and Function Specialisation -- 9.2 Optimisation Prologue -- 9.3 With-Loop Folding -- 9.4 With-Loop Fusion -- 9.5 Optimisation Epilogue -- 9.6 With-Loop Lowering -- 9.7 Index Vector Elimination -- 9.8 Memory Management -- 9.9 Code Generation and Final Words -- 10 Experimental Evaluation: An Annotated Bibliography -- 11 Related Work -- 12 Conclusions and Perspectives -- References -- Type-Safe Functions and Tasks in a Shallow Embedded DSL for Microprocessors -- 1 Introduction -- 2 Arduino Programming -- 2.1 Shields -- 3 DSL Implementation Techniques -- 3.1 Deep Embedding of the DSL -- 3.2 Generalized Algebraic Data Types for the DSL -- 3.3 Shallow Embedding of the DSL -- 3.4 Shallow Embedding of the DSL with Multiple Views -- 4 The mTask DSL -- 4.1 Expressions -- 4.2 Arduino Data Types -- 4.3 Conditionals -- 4.4 Shared Data Sources -- 4.5 Monadic Bind -- 4.6 Input-Output Pins -- 4.7 Shield Control -- 4.8 Function Definitions -- 4.9 Task Definitions -- 4.10 Mutual Recursion -- 4.11 Examples -- 4.12 Software Download -- 5 The Code Generation View of mTask -- 5.1 Data Type for Compilation -- 5.2 Code Generation for Expressions -- 5.3 Code Generation for Arduino Data Types -- 5.4 Code Generation for Conditionals -- 5.5 Code Generation for Share Definitions -- 5.6 Code Generation for the Monadic Bind -- 5.7 Code Generation for Input-Output Pins -- 5.8 Code Generation for Shield Classes -- 5.9 Code Generation for Function Definitions -- 5.10 Code Generation for Task Definitions -- 6 The Simulation View -- 6.1 Data Type for Simulation -- 6.2 Evaluating Expressions -- 6.3 Evaluation of Arduino Data Types -- 6.4 Evaluation of Conditionals -- 6.5 Evaluation of Share Definitions -- 6.6 Evaluation of the Monadic Bind
6.7 Evaluation of Input-Output Pins -- 6.8 Evaluation of Shield Control -- 6.9 Evaluation of Functions Definitions -- 6.10 Evaluation of Task Definitions -- 6.11 An mTask Simulator -- 7 Optimization -- 7.1 Partial Evaluation -- 7.2 Syntax Tree Manipulation -- 8 Related Work -- 8.1 High-Level Languages for Microprocessors -- 8.2 Generating C-Code -- 8.3 Shallow Embedding of DSLs with Multiple Views -- 8.4 Future Work -- 9 Discussion -- A The Function [language=Clean]compile -- References -- Static and Dynamic Visualisations of Monadic Programs -- 1 Introduction -- 2 Static Blueprints: Examples -- 2.1 Static Blueprints of the I/O Monad -- 2.2 Static Blueprints of the Task Monad -- 3 Building Static Blueprints -- 4 Dynamic Blueprints -- 4.1 Dynamic Blueprints of the Task Monad -- 4.2 Tonic Architecture -- 4.3 Tonic Wrappers in Action -- 4.4 Dynamic Blueprints in iTasks -- 4.5 The Integrated Tonic Viewer -- 5 Blueprints for All -- 5.1 Dynamic Blueprints of the I/O Monad -- 5.2 Stand-Alone Viewer Architecture -- 5.3 Drawing Dynamic Blueprints -- 5.4 Discussion -- 6 Related Work -- 7 Discussion and Conclusion -- A Using Tonic -- B iTasks Combinators -- B.1 Type Classes -- B.2 Step Combinator and Utility Functions -- B.3 Parallel Combinators -- B.4 Editors -- B.5 Share Combinators -- B.6 Task Assignment -- References -- Analyzing Scale-Free Properties in Erlang and Scala -- 1 Introduction -- 2 Related Works -- 2.1 On Scale-Free Networks -- 2.2 Metrics -- 3 Formal Evaluation -- 3.1 Definitions -- 4 Evaluation of the Metrics -- 4.1 Methodology -- 4.2 Hypotheses -- 4.3 Our Findings -- 5 Future Work -- 6 Summary -- References -- Author Index
6 CPN Model Development -- 6.1 Low-Level PN Model -- 6.2 High-Level Timed CPN Model -- 6.3 Adding Id Generator -- 6.4 Quality Evaluation Process -- 6.5 From Deterministic to Stochastic Model -- 6.6 Adding Input Queue -- 6.7 Failed Products Recording -- 7 Conclusion -- References -- Single Assignment C (SAC) -- 1 Introduction -- 2 Language Design -- 2.1 The Scalar Language Core: A Functional Subset of C -- 2.2 Multidimensional Stateless Arrays -- 2.3 With-Loop Array Comprehensions and Reductions -- 2.4 Array Type System -- 3 Programming Methodology: Abstraction and Composition -- 3.1 The Principle of Abstraction -- 3.2 How It Really Works: Rank-Generic Subtraction -- 3.3 Alternatives and Extensions -- 3.4 The Principle of Composition -- 4 Programming Case Study: Convolution -- 4.1 Algorithmic Principle -- 4.2 Iterative Process with Convergence Check -- 4.3 Convolution Step -- 4.4 Rank-Generic Array Rotation -- 4.5 Further Variations of Convolution -- 5 Compilation Technology: Overview and Frontend -- 5.1 SAC Compiler Organisation -- 5.2 Compiler Front End -- 5.3 Type Inference and Function Specialisation -- 6 Architecture-Independent Optimisation -- 6.1 Standard Optimisations -- 6.2 Organisation of the Optimisation Process -- 6.3 Array Optimisations -- 6.4 With-Loop Folding Optimisation -- 6.5 With-Loop Fusion Optimisation -- 6.6 With-Loop Scalarisation Optimisation -- 6.7 Further Array Optimisations -- 7 Lowering Towards Code Generation -- 7.1 Transforming Complex Generator Sets -- 7.2 Index Vector Elimination -- 7.3 Memory Management -- 8 Code Generation -- 8.1 Compiler-Directed Parallelisation for Multi-core Systems -- 8.2 Compiler-Directed Parallelisation for Many-Core GPGPUs -- 8.3 Compiler-Directed Parallelisation for Heterogeneous Systems -- 8.4 Compiler-Directed Parallelisation for the MicroGrid
Intro -- Preface -- Contents -- Watch Out for that Tree! A Tutorial on Shortcut Deforestation -- 1 Introduction -- 2 A Gentle Introduction to Haskell -- 3 Shortcut Fusion -- 3.1 Standard Shortcut Fusion -- 3.2 Extended Shortcut Fusion -- 4 Generalized Shortcut Fusion -- 4.1 Data-Types -- 4.2 Fold -- 4.3 The Fold/Build Rule -- 4.4 Fold with Parameters -- 4.5 The Pfold/Buildp Rule -- 4.6 The Higher-Order Pfold/Buildp Rule -- 5 Algol 68 Scope Rules -- 5.1 Calculating a Circular Program -- 5.2 Calculating a Higher-Order Program -- 6 Conclusions -- References -- Functional Reactive Programming in C++ -- 1 Introduction -- 2 Asynchronous Functions -- 2.1 Calls and Callbacks -- 2.2 Signals and Slots -- 2.3 Actor Systems -- 2.4 Problems with These Approaches -- 3 Futures -- 3.1 Futures in C++ -- 3.2 Proper Way of Handling Futures -- 3.3 Continuation Monad -- 3.4 std::future and Similar Types -- 4 Iterators and Algorithms -- 4.1 Accumulate (fold) -- 4.2 Transform (map) -- 4.3 Iterator Types -- 4.4 Composition -- 4.5 Easier Functional Objects Creation -- 5 Ranges -- 5.1 Convenience -- 5.2 Composability -- 5.3 Views -- 5.4 Infinite Views -- 5.5 Actions -- 5.6 Combining Views and Actions -- 5.7 Range Types -- 6 Reactive Streams -- 6.1 Map, or Transform -- 6.2 Forking a Stream -- 6.3 Stateful Function Objects -- 6.4 Stream Filtering -- 6.5 Generating New Stream Events -- 7 Data-Flow Design -- 8 Conclusion -- References -- Immutables in C++: Language Foundation for Functional Programming -- 1 Introduction -- 2 Immutable Elements in C++ -- 2.1 Preprocessor Macros -- 2.2 String Literals -- 2.3 Named Constants -- 2.4 Static Const Members -- 3 Const Correctness -- 3.1 Non-class Types -- 3.2 Constness of Class Types -- 3.3 Mutable -- 3.4 Constant Correctness in STL -- 3.5 Casting Const Away -- 4 Constexpr -- 4.1 Constexpr Functions -- 4.2 Constexpr Objects
Title Central European Functional Programming School
URI http://digital.casalini.it/9783030283469
https://ebookcentral.proquest.com/lib/[SITE_ID]/detail.action?docID=5926443
http://link.springer.com/10.1007/978-3-030-28346-9
https://www.vlebooks.com/vleweb/product/openreader?id=none&isbn=9783030283469
Volume 10094
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwnV1LT9wwELZ4XODSF6hbShVVHCqhrLJ-JT70UNAihABxAMTN8uRxoV2kJnDor-_4lWS3e2h7iVZR1k5mxjPjeXwm5IiZska3VqRcZVXKAdecoplJZyU0BW2KRromsatreX7HLx7Ew3AmqOsu6WBa_lrbV_I_XMV7yFfbJfsPnO0HxRv4G_mLV-QwXlec37V2JkRmj_uI-hkaqRDbu_F1Vz8c4LZD2vT6w-Iat18vQ-bg-qlzBVnH8XCHuNbHwQDbf4R7wD-DgSvhxCGitbR7ROtlvQsuxgFGZrmVe-ikae2VorRQh8xDi_Za09YkrtXB47ILHC61U8hUDQanLwNE5UEZ2ySbeY4Kafvb_OLyvg-QUZoVKhug3y3SoU8J-Re0jTrxA5iHUho-KOavA4Tw0ovskl3TPqIJQfPStdYfMa2xbahLm4yVvLhzN25fk72hETO56Vn_hmzUi7fkVWRWEpj1jkyDKCRRFJJBFJKRKCReFPbI3dn89vQ8DSdhpGYmhWApBdNIWTPRKKOYAoN-PQPVmFkt8xpYVjWcKwOcApRGlQUUVcWYgKpQ0FRsn2wtnhb1e5JUlEtFJWQS1yjwEipT5gLQEzQlNcVsQj6PqKNfvrukfatH5JVqQg4i0TSuKQ-u3mrBuBXKCUkiHbX7d6gz1vOTU6GsB84m5Eukr_bjR_hsnEczjTNpN5VWH_7-0QOyMyyKj2Sr-_lcH6LP2MGnIF2_AZ8XYjI
linkProvider Library Specific Holdings
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=Central+European+Functional+Programming+School&rft.series=Lecture+Notes+in+Computer+Science&rft.date=2019-08-14&rft.pub=Springer+International+Publishing&rft.isbn=9783030283452&rft.issn=0302-9743&rft.eissn=1611-3349&rft.volume=10094&rft_id=info:doi/10.1007%2F978-3-030-28346-9&rft.externalDocID=488233
thumbnail_m http://utb.summon.serialssolutions.com/2.0.0/image/custom?url=https%3A%2F%2Fvle.dmmserver.com%2Fmedia%2F640%2F97830302%2F9783030283469.jpg
thumbnail_s http://utb.summon.serialssolutions.com/2.0.0/image/custom?url=https%3A%2F%2Fmedia.springernature.com%2Fw306%2Fspringer-static%2Fcover-hires%2Fbook%2F978-3-030-28346-9