Vai al contenuto principale della pagina

Composability, Comprehensibility and Correctness of Working Software [[electronic resource] ] : 8th Summer School, CEFP 2019, Budapest, Hungary, June 17–21, 2019, Revised Selected Papers / / edited by Zoltán Porkoláb, Viktória Zsók



(Visualizza in formato marc)    (Visualizza in BIBFRAME)

Autore: Porkoláb Zoltán Visualizza persona
Titolo: Composability, Comprehensibility and Correctness of Working Software [[electronic resource] ] : 8th Summer School, CEFP 2019, Budapest, Hungary, June 17–21, 2019, Revised Selected Papers / / edited by Zoltán Porkoláb, Viktória Zsók Visualizza cluster
Pubblicazione: Cham : , : Springer International Publishing : , : Imprint : Springer, , 2023
Edizione: 1st ed. 2023.
Descrizione fisica: 1 online resource (398 pages)
Disciplina: 005.11
Soggetto topico: Computer programming
Software engineering
Compilers (Computer programs)
Computer science
Programming Techniques
Software Engineering
Compilers and Interpreters
Computer Science Logic and Foundations of Programming
Altri autori: ZsókViktória  
Nota di contenuto: 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 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.
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.
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 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.
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).
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 Generation Tool -- 5 Experimental Analysis -- 6 Conclusion and Future Work -- References -- Author Index.
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.
Titolo autorizzato: Composability, Comprehensibility and Correctness of Working Software  Visualizza cluster
ISBN: 3-031-42833-1
Formato: Materiale a stampa
Livello bibliografico Monografia
Lingua di pubblicazione: Inglese
Record Nr.: 996558467403316
Lo trovi qui: Univ. di Salerno
Opac: Controlla la disponibilità qui
Serie: Lecture Notes in Computer Science, . 1611-3349 ; ; 11950