{"text_format":"2","workbook":"xls","n_sheets":1,"sheets":["report2"],"not_rendered":{"charts":0,"images":0,"macros":0,"external_links":1,"defined_names":1,"comments":0,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"run_cost":"one","rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":0,"cells_raw":0,"read":"whole","date_system":"1900","formulas":"cached_only"}

{"sheet":"report2","index":0,"n_rows":30,"n_cols":5,"rows_kept":30,"cut":false,"hidden":false,"merged":[[0,2,0,3],[0,4,0,5],[1,2,1,3],[1,4,1,5],[2,2,2,3],[2,4,2,5],[3,2,3,3],[4,2,4,3],[6,2,6,3],[7,2,7,3],[8,2,8,3],[9,2,9,3],[10,2,10,3],[18,2,18,3],[19,2,19,3],[21,2,21,3]],"flags":["formulas_cached_only"]}
[null,"1.","Record Nr.",null,"UNINA9910754096803321"]
[null,null,"Autore",null,"Porkoláb Zoltán"]
[null,null,"Titolo",null,"Composability, Comprehensibility and Correctness of Working Software : 8th Summer School, CEFP 2019, Budapest, Hungary, June 17–21, 2019, Revised Selected Papers / / edited by Zoltán Porkoláb, Viktória Zsók"]
[null,null,"Pubbl/distr/stampa",null,"Cham : , : Springer International Publishing : , : Imprint : Springer, , 2023"]
[null,null,"ISBN",null,"9783031428333"]
[{"$nulls":4},"3031428331"]
[null,null,"Edizione",null,"[1st ed. 2023.]"]
[null,null,"Descrizione fisica",null,"1 online resource (398 pages)"]
[null,null,"Collana",null,"Lecture Notes in Computer Science, , 1611-3349 ; ; 11950"]
[null,null,"Disciplina",null,"005.11"]
[null,null,"Soggetti",null,"Computer programming"]
[{"$nulls":4},"Software engineering"]
[{"$nulls":4},"Compilers (Computer programs)"]
[{"$nulls":4},"Computer science"]
[{"$nulls":4},"Programming Techniques"]
[{"$nulls":4},"Software Engineering"]
[{"$nulls":4},"Compilers and Interpreters"]
[{"$nulls":4},"Computer Science Logic and Foundations of Programming"]
[null,null,"Lingua di pubblicazione",null,"Inglese"]
[null,null,"Formato",null,"Materiale a stampa"]
[null,null,null,"Livello bibliografico","Monografia"]
[null,null,"Nota di contenuto",null,"Intro -- 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 "]
[{"$nulls":4},"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."]
[{"$nulls":4},"6 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."]
[{"$nulls":4},"5.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 "]
[{"$nulls":4},"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."]
[{"$nulls":4},"4.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)."]
[{"$nulls":4},"3.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 "]
[{"$nulls":4},"Generation Tool -- 5 Experimental Analysis -- 6 Conclusion and Future Work -- References -- Author Index."]
[null,null,null,"Sommario/riassunto","This 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."]