LEADER 11345nam 22007095 450 001 9910754096803321 005 20251116200346.0 010 $a9783031428333 010 $a3031428331 024 7 $a10.1007/978-3-031-42833-3 035 $a(CKB)28519005400041 035 $a(MiAaPQ)EBC30793348 035 $a(Au-PeEL)EBL30793348 035 $a(DE-He213)978-3-031-42833-3 035 $a(PPN)272913510 035 $a(OCoLC)1404818354 035 $a(EXLCZ)9928519005400041 100 $a20231017d2023 u| 0 101 0 $aeng 135 $aurcnu|||||||| 181 $ctxt$2rdacontent 182 $cc$2rdamedia 183 $acr$2rdacarrier 200 10$aComposability, Comprehensibility and Correctness of Working Software $e8th Summer School, CEFP 2019, Budapest, Hungary, June 17?21, 2019, Revised Selected Papers /$fedited by Zoltán Porkoláb, Viktória Zsók 205 $a1st ed. 2023. 210 1$aCham :$cSpringer International Publishing :$cImprint: Springer,$d2023. 215 $a1 online resource (398 pages) 225 1 $aLecture Notes in Computer Science,$x1611-3349 ;$v11950 311 08$a9783031428326 327 $aIntro -- Preface -- Organization -- Contents -- Main Lectures -- Writing Internet of Things Applications with Task Oriented Programming -- 1 Introduction -- 1.1 Internet of Things -- 1.2 Task Oriented Programming -- 1.3 iTask -- 1.4 TOP for the IoT -- 1.5 Structure of the Paper -- 2 mTask system architecture -- 2.1 Blink -- 2.2 Language -- 2.3 Class Based Shallow Embedding -- 2.4 DSL design -- 2.5 Backends -- 2.6 Bytecode -- 2.7 Skeleton -- 3 mTask language -- 3.1 Expressions -- 3.2 Functions -- 3.3 Basic Tasks -- 3.4 Parallel Task Combinators -- 3.5 Threaded Blinking -- 3.6 Sequential Task Combinators -- 3.7 Shared Data Source -- 3.8 Lifted Shared Data Sources -- 3.9 Interactive Blinking -- 3.10 Peripherals -- 4 IoT applications with TOP -- 4.1 Hardware and Client -- 4.2 Temperature -- 4.3 LED matrix -- 4.4 Temperature Plotter -- 5 Related Work -- 5.1 Interpretation -- 5.2 Task Oriented Programming -- 5.3 Functional Reactive Programming -- 5.4 Functional Programming -- 5.5 Multitasking -- 5.6 mTask history -- 6 Discussion -- A Embedded Domain Specific Language Techniques -- A.1 Deep Embedding -- A.2 Shallow Embedding -- B iTask reference -- B.1 Types -- B.2 Editors -- B.3 Task Combinators -- B.4 Shared Data Sources -- B.5 Extra Task Combinators -- B.6 Examples -- C How to Install -- C.1 Fetch the CEFP distribution -- C.2 Setup -- C.3 Compile the Test Program -- C.4 Setup the Microcontroller Unit -- D Solutions -- References -- Paint Your Programs Green: On the Energy Efficiency of Data Structures -- 1 Introduction -- 2 Data Structures Libraries -- 2.1 Haskell Data Structures -- 2.2 Java Data Structures -- 3 Experimental Setup -- 3.1 Haskell Operations -- 3.2 Java Operations -- 3.3 Measuring Energy Consumption -- 4 Comparing Data Structure Energy Consumption -- 4.1 Haskell Data Structures -- 4.2 Java Data Structures -- 5 Related Work. 327 $a6 Conclusions -- References -- Energy Efficient Software in an Engineering Course -- 1 Introduction -- 2 Energy Efficient Software in Higher Education -- 2.1 Sustainable Development and Its Dimentions -- 2.2 Sustainable Development in Higher Education -- 2.3 Energy Efficient Software in Higher Education -- 3 Software Analysis and Testing with a Green Flavor -- 3.1 Green Software: A Multidisciplinary Module -- 3.2 Green Software: Module Objectives -- 3.3 Green Software: Module Supporting Tools -- 4 Energy Efficent Software: Students Assessment -- 4.1 A Catalog of Energy Smells and Refactorings -- 4.2 Students Grades -- 5 Conclusions -- References -- Utilizing Rail Traffic Control Simulator in Verified Software Development Courses -- 1 Introduction -- 2 TD/TS2JC Toolset -- 2.1 Train Director -- 2.2 TS2JavaConn -- 2.3 Communication with Control Modules -- 3 Control Modules and Configuration Files -- 3.1 Non-parametric Module -- 3.2 Parametric Module -- 4 Teaching Verified Software Development in B-Method with TD/TS2JC Toolset -- 4.1 Software Development Process of B-Method -- 4.2 B-Language -- 4.3 Abstract Specification -- 4.4 Refinement to Implementation -- 4.5 Three Sections Control Module Development Project -- 5 Conclusion -- References -- The Role of Functional Programming in Management and Orchestration of Virtualized Network Resources -- 1 Introduction -- 2 Background -- 3 Network Evolution -- 3.1 Cloud Computing Platforms -- 3.2 Network Function Virtalisation and Software Defined Network -- 4 Management and Orchestration of Virtualized Network Resources -- 4.1 Design Principles for Implementing Autonomic Behavior -- 4.2 Current State -- 5 OpenStack -- 5.1 Graphical User Interface for Manipulating Virtual Resources -- 5.2 Authentification and Authorisation Functions -- 5.3 Management of Disk Images -- 5.4 Network Management Functions. 327 $a5.5 Management of Virtual Instances -- 5.6 Management of Persistent Memory -- 5.7 Management of Object Storage -- 5.8 Performance Measurement Functions -- 5.9 Orchestration Functions -- 6 Examples -- 6.1 Example 1 -- 6.2 Example 2 -- 6.3 Example 3 -- 6.4 Example 4 -- 7 Use Cases from Industry and Reflection on Design Principles -- 7.1 Virtualisation of Mobile Switching Centre -- 7.2 Management Functions for Reliable and Stable Operation -- 8 Discussion -- 9 Conclusion -- References -- Towards Better Tool Support for Code Comprehension -- 1 Introduction -- 2 Model of Code Comprehension -- 2.1 Top-Down Models -- 2.2 Bottom-Up Models -- 2.3 Other Approaches -- 2.4 The Role of Concept Location -- 3 Nature of the Problems -- 3.1 Growing Complexity -- 3.2 Knowledge Erosion -- 3.3 Multiple Views of the Software Based on Various Information Sources -- 3.4 Communication Barriers -- 3.5 Multiple Programming Languages -- 3.6 Hard to Deploy New Tools -- 3.7 Requirement of Open Extensibility -- 3.8 API Usage -- 4 State of the Art -- 5 The CodeCompass Architecture -- 5.1 Layers of the Architecture -- 5.2 Web User Interface -- 5.3 Language Server Protocol -- 5.4 Performance -- 6 Important Design Workflows -- 6.1 Bug Investigation -- 6.2 Feature Development Planning and Estimation -- 6.3 Refactoring -- 6.4 Knowledge Transfer and Newcomers' Catch-Up -- 7 User Acceptance in Real Production -- 8 Conclusion and Future Work -- References -- Balanced Distributed Computation Patterns -- 1 Introduction -- 2 Go Essentials -- 2.1 Syntax of Basic Language Elements -- 3 Concurrent Programming -- 3.1 Goroutine -- 3.2 WaitGroup -- 3.3 Mutual Exclusion -- 3.4 Channels -- 3.5 Select -- 3.6 Concurrency Principles -- 3.7 Parallelism -- 3.8 Concurrent Job Processing -- 4 Advanced Message Queueing Protocol (AMQP) -- 4.1 AMQP Components -- 4.2 Connection and Channel. 327 $a4.3 Safe Message Delivery in Go -- 4.4 Prefetch -- 4.5 AMQP at Network Failures -- 4.6 AMQP Management -- 4.7 AMQP Advantages -- 4.8 AMQP Usage -- 4.9 AMQP 0.9.1 Model -- 4.10 Go RabbitMQ Client Library -- 5 Distributed Programming -- 5.1 RabbitMQ Hello World -- 5.2 RabbitMQ Exchange -- 5.3 RabbitMQ Shared Queue -- 5.4 Parallel Receive -- 5.5 Distributed Job Processing -- 5.6 Distributed Pipeline -- 5.7 Distributed Divide and Conquer -- 6 Testing Performances -- 7 Related Work -- 8 Conclusion -- A Code Listings and Outputs -- A.1 Parallel Receive -- A.2 Distributed Job Processing with Shared Response Queue, Version2 -- A.3 Distributed Job Processing with Private Response Queue, Version3 -- A.4 Distributed Job Processing with Worker Generator, Version4 -- A.5 Distributed Pipeline with Connection Confirmation (Version 2) -- A.6 Distributed Pipeline with Worker Generator (Version 3) -- A.7 Distributed Divide and Conquer -- B Task for Readers -- References -- PhD Workshop -- Tunnel Parsing -- 1 Introduction -- 2 Parsing Overview -- 3 Problem -- 4 Tunnel Parsing Algorithm -- 4.1 Tunnels -- 4.2 Routers -- 4.3 Segments -- 4.4 Control Layer -- 5 Results -- 6 Conclusion -- References -- Finding Code Clone Refactoring Techniques by Mapping Clone Context -- 1 Introduction -- 2 Background and Related Work -- 2.1 Clone Context Analysis -- 2.2 Clone Refactoring -- 3 Context Analysis of Clones -- 3.1 Relation -- 3.2 Location -- 3.3 Contents -- 4 CloneRefactor -- 5 Experimental Setup -- 5.1 The Corpus -- 5.2 Tool Validation -- 6 Results -- 6.1 Relation -- 6.2 Location -- 6.3 Contents -- 7 Discussion -- 8 Conclusion -- References -- Code Quality Metrics for Functional Features in Modern Object-Oriented Languages -- 1 Introduction -- 2 Problem Analysis -- 3 Candidate Measures -- 3.1 Number of Lambda-Functions Used in a Class (LC) -- 3.2 Source Lines of Lambda (SLOL). 327 $a3.3 Lambda Score (LSc) -- 3.4 Number of Lambda-Functions Using Mutable Field Variables in a Class (LMFV) -- 3.5 Number of Lambda-Functions Using Mutable Local Variables in a Class (LMLV) -- 3.6 Number of Lambda-Functions with Side-Effects Used in a Class (LSE) -- 3.7 Number of Non-terminated Collection Queries in a Class (UTQ) -- 4 Experimental Setup -- 4.1 Methodology -- 4.2 Relating Functional Constructs to Error-Proneness -- 4.3 Measuring Functional Constructs -- 4.4 Measuring Error-Proneness -- 4.5 Dataset -- 5 Experimental Evaluation -- 6 Threats to Validity -- 7 Related Work -- 8 Conclusion and Discussion -- References -- An Empirical Study on the Energy Efficiency of Matrix Transposition Algorithms -- 1 Introduction -- 2 Related Work -- 2.1 Energy Complexity Model -- 2.2 Empirical Studies on Cache Efficiency -- 2.3 Empirical Studies on Energy Efficiency -- 3 Algorithms for Matrix Transposition -- 4 Methodology and Experimental Setup -- 4.1 Experimental Setup -- 4.2 Performance Counter Measurement Tools -- 4.3 Intermediate Machine Code Generation Tool -- 5 Experimental Analysis -- 6 Conclusion and Future Work -- References -- Author Index. 330 $aThis book constitutes the revised selected papers of the 8th Summer School, CEFP 2019, held in Budapest, Hungary, during June 2019. The 7 full papers and the 4 short papers included in this volume were carefully reviewed and selected. The lectures cover various programming subjects with a focus on composability, comprehensibility, and correctness of working software. 410 0$aLecture Notes in Computer Science,$x1611-3349 ;$v11950 606 $aComputer programming 606 $aSoftware engineering 606 $aCompilers (Computer programs) 606 $aComputer science 606 $aProgramming Techniques 606 $aSoftware Engineering 606 $aCompilers and Interpreters 606 $aComputer Science Logic and Foundations of Programming 615 0$aComputer programming. 615 0$aSoftware engineering. 615 0$aCompilers (Computer programs) 615 0$aComputer science. 615 14$aProgramming Techniques. 615 24$aSoftware Engineering. 615 24$aCompilers and Interpreters. 615 24$aComputer Science Logic and Foundations of Programming. 676 $a005.11 700 $aPorkola?b$b Zolta?n$00 701 $aZso?k$b Vikto?ria$0851647 801 0$bMiAaPQ 801 1$bMiAaPQ 801 2$bMiAaPQ 906 $aBOOK 912 $a9910754096803321 996 $aComposability, Comprehensibility and Correctness of Working Software$93588029 997 $aUNINA LEADER 03201oam 22004572 450 001 9910968718903321 005 20251116190313.0 010 $a1-000-07855-8 010 $a0-367-80874-9 010 $a1-000-07853-1 035 $a(CKB)4100000011384584 035 $a(MiAaPQ)EBC6245782 035 $a(OCoLC)1156425259$z(OCoLC)1190776948 035 $a(OCoLC-P)1156425259 035 $a(FlBoTFG)9780367808747 035 $a(EXLCZ)994100000011384584 100 $a20200524d2020 uy 0 101 0 $aeng 135 $aur||||||||||| 181 $ctxt$2rdacontent 182 $cc$2rdamedia 183 $acr$2rdacarrier 200 10$aIntroduction to recognition and deciphering of patterns /$fMichael A. Radin 205 $aFirst edition. 210 1$aBoca Raton, FL :$cCRC Press,$d2020. 215 $a1 online resource (195 pages) 300 $a"A Chapman & Hall Book". 311 08$a0-367-40727-2 327 $aPatterns of geometrical systems -- Sequences and summations -- Pascal's triangle identities -- First order recursive relations -- Periodic traits. 330 $a"Introduction to Recognition and Deciphering of Patterns aims to get STEM and non-STEM students acquainted with different patterns, as well as where and when specific patterns arise. In addition, the book seeks to get students to learn how to recognize patterns and distinguish the similarities and differences between them. Patterns emerge on an every-day basis, such as weather patterns, traffic patterns, behavioural patterns, geometric patterns, linguistic patterns, structural patterns, digital patterns, etc. Recognizing patterns and studying their unique traits is essential for the development and enhancement of our intuitive skills, and in strengthening our analytical skills. Mathematicians often apply patterns to get acquainted with new concepts, but this is a technique that can be applied across many disciplines. Throughout this book we will encounter assorted patterns that emerge from various geometrical configurations of squares, circles, right triangles and equilateral triangles that either repeat at the same scale or at different scales. The book will also focus on describing linear patterns, geometric patterns, alternating patterns, piece-wise patterns, summation-type patterns and factorial-type patterns analytically. Deciphering the details of these distinct patterns will lead to the proof by induction method. Furthermore, the book will render properties of the Pascal's Triangle and provide supplemental practice in deciphering specific patterns and verifying them. The book will adjourn with first order recursive relations: describing sequences as recursive relations, obtaining the general solution by solving an initial value problem and determining the periodic traits"--$cProvided by publisher. 606 $aPattern perception 615 0$aPattern perception. 676 $a001.534 676 $a152.1423 700 $aRadin$b Michael A$g(Michael Alexander),$0767877 801 0$bOCoLC-P 801 1$bOCoLC-P 906 $aBOOK 912 $a9910968718903321 996 $aIntroduction to recognition and deciphering of patterns$94482824 997 $aUNINA