Energy-efficient software helps improve mobile device experiences and reduce the carbon footprint of data centers. However, energy goals are often de-prioritized in order to meet other requirements. We take inspiration from recent work exploring the use of large language models (LLMs) for different software engineering activities. We propose a novel application of LLMs: as code optimizers for energy efficiency. We describe and evaluate a prototype, finding that over 6 small programs our system can improve energy efficiency in 3 of them, up to 2x better than compiler optimizations alone. From our experience, we identify some of the challenges of energy-efficient LLM code optimization and propose a research agenda.
@misc{peng2024largelanguagemodelsenergyefficient,title={Large Language Models for Energy-Efficient Code: Emerging Results and Future Directions},author={Peng, Huiyun and Gupte, Arjun and Eliopoulos, Nicholas John and Ho, Chien Chou and Mantri, Rishi and Deng, Leo and Jiang, Wenxin and Lu, Yung-Hsiang and Läufer, Konstantin and Thiruvathukal, George K. and Davis, James C.},year={2024},eprint={2410.09241},archiveprefix={arXiv},primaryclass={cs.SE},url={https://arxiv.org/abs/2410.09241},}
Background: In this paper, we present our initial efforts to integrate formal methods, with a focus on model-checking specifications written in Temporal Logic of Actions (TLA+), into computer science education, targeting undergraduate juniors/seniors and graduate students. Formal methods can play a key role in ensuring correct behavior of safety-critical systems, yet remain underutilized in educational and industry contexts. Aims: We aim to (1) qualitatively assess the state of formal methods in computer science programs, (2) construct level-appropriate examples that could be included midway into one’s undergraduate studies, (3) demonstrate how to address successive "failures" through progressively stringent safety and liveness requirements, and (4) establish an ongoing framework for assessing interest and relevance among students. Methods: After starting with a refresher on mathematical logic, students specify the rules of simple puzzles in TLA+ and use its included model checker (known as TLC) to find a solution. We gradually escalate to more complex, dynamic, event-driven systems, such as the control logic of a microwave oven, where students will study safety and liveness requirements. We subsequently discuss explicit concurrency, along with thread safety and deadlock avoidance, by modeling bounded counters and buffers. Results: Our initial findings suggest that through careful curricular design and choice of examples and tools, it is possible to inspire and cultivate a new generation of software engineers proficient in formal methods. Conclusions: Our initial efforts suggest that 84% of our students had a positive experience in our formal methods course. Future plans include a longitudinal analysis within our own institution and proposals to partner with other institutions to explore the effectiveness of our open-source and open-access modules.
@misc{laufer2024fie,title={WIP: An Engaging Undergraduate Intro to Model Checking in Software Engineering Using TLA+},author={Läufer, Konstantin and Mertin, Gunda and Thiruvathukal, George K.},year={2024},eprint={2407.21152},archiveprefix={arXiv},primaryclass={cs.SE},url={https://arxiv.org/abs/2407.21152},}
Our hands-on course introduces model checking using Temporal Logic of Actions through practical examples like the control logic for a microwave oven. Due to highly positive initial feedback from our own students, we plan to broaden our reach by partnering with other institutions.
@article{laufer2024computer,journal={Computer},title={Engaging More Students in Formal Methods Education: A Practical Approach Using Temporal Logic of Actions},author={Läufer, Konstantin and Mertin, Gunda and Thiruvathukal, George K.},year={2024},volume={57},number={12},doi={10.1109/MC.2024.3462188},}
One of the key goals in high-performance and distributed software engineering is to leverage the specific capabilities of the target hardware to the extent possible. Today’s systems are typically heterogeneous, where one or more architectures may be present within a single system, such as conventional CPU cores combined with accelerators such as GPUs and FPGAs. Although parallel computing itself has reached a high level of maturity, as we move toward exascale and beyond computing, challenges similar to those that plagued the earliest days of parallel and distributed computing are beginning to resurface: Leveraging heterogeneity while balancing performance, software portability, and developer productivity (P3). This tutorial provides hands-on experience in developing high-performance and embedded software for heterogeneous architectures using Intel’s oneAPI reference implementation of the Khronos SYCL standard in conjunction with state-of-the-art software engineering methods. By raising the abstraction level via its unified application programming interface (API), oneAPI makes it easier to develop portable high-performance software for systems with embedded hardware accelerators, such as GPUs and FPGAs.
@inproceedings{escience2023unoapi,author={Läufer, Konstantin and Thiruvathukal, George K.},title={{UnoAPI}: Modern Techniques for Engineering High-Performance Software (Tutorial)},booktitle={IEEE eScience Conference, Limmasol, Cyprus},month=oct,year={2023},url={https://www.escience-conference.org/2023/tutorials/unoapi},}
New technologies as decision aids for the advancement of ecological risk assessment
Federico Sinche Chele, Priscilla Jimenez‐Pazmino, and Konstantin Läufer
Integrated Environmental Assessment and Management, Aug 2023
Moore’s law states that the number of transistors that can be placed on an integrated circuit doubles every two years (Moore, 1975). This has led to a steady increase in the processing power of computers over time, and technology is now enhancing and advancing software and scientific applications, which has enabled computationally intensive methods such as machine learning, data science, modeling, and simulation. The advancement of computers and data-driven algorithms is profoundly impacting people’s lives. It is changing the way we work, the way we learn, and the way we interact with the world around us. Here, this editorial will discuss how scientists can benefit from the latest technology advancements and related tools by incorporating them into the ecological risk assessment (ERA) to study ecosystems as a way to create refined assessments and accelerate the turnaround times.
Abstract—oneAPI is a major initiative by Intel aimed at making it easier to program heterogeneous architectures used in high-performance computing using a unified application programming interface (API). While raising the abstraction level via a unified API represents a promising step for the current generation of students and practitioners to embrace highperformance computing, we argue that a curriculum of welldeveloped software engineering methods and well-crafted exemplars will be necessary to ensure interest by this audience and those who teach them. We aim to bridge the gap by developing a curriculum—codenamed UnoAPI—that takes a more holistic approach by looking beyond language and framework to include the broader development ecosystem, similar to the experience found in popular HPC languages such as Python. We hope to make parallel programming a more attractive option by making it look more like general application development in modern languages being used by most students and educators today. Our curriculum emanates from the perspective of well-crafted exemplars from the foundations of computer systems—given that most HPC architectures of interest begin from the systems tradition—with an integrated treatment of essential principles of distributed systems, programming languages, and software engineering. We argue that a curriculum should cover the essence of these topics to attract students to HPC and enable them to confidently solve computational problems using oneAPI. By the time of this submission, we have shared our materials with a small group of undergraduate sophomores, and their responses have been encouraging in terms of self-reported comprehension and ability to reproduce the compilation and execution of exemplars on their personal systems. We plan a follow-up study with a larger cohort by incorporating some of our materials in our existing course on High-Performance Computing.
@inproceedings{EduHPC22,author={Läufer, Konstantin and Thiruvathukal, George K.},title={UnoAPI: Balancing Performance, Portability, and Productivity (P3) in HPC Education},booktitle={Proc. EduHPC-22: Workshop on Education for High-Performance Computing},year={2022},month=nov,address={Dallas, TX, USA},note={held in conjunction with SC22},url={https://ecommons.luc.edu/cs_facpubs/314/},}
Software metrics capture information about software development products and processes. These metrics support decision-making, e.g., in team management or dependency selection. However, existing metrics tools measure only a snapshot of a software project. Little attention has been given to enabling engineers to reason about metric trends over time—longitudinal metrics that give insight about process, not just product. In this work, we present PRIME (PRocess Internal MEtrics), a tool for computing and visualizing process metrics. The currently-supported metrics include productivity, issue density, issue spoilage, and bus factor. We illustrate the value of longitudinal data and conclude with a research agenda.
@inproceedings{ASE_2022,address={Oakland Center, MI, USA},author={Synovic, Nicholas and Hyatt, Matt and Sethi, Rohan and Thota, Sohini and Shilpika and Miller, Allan J. and Jiang, Wenxin and Amobi, Emmanuel S. and Pinderski, Austin and Läufer, Konstantin and Hayward, Nicholas J. and Klingensmith, Neil and Davis, James C. and Thiruvathukal, George K.},booktitle={Proceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering},location={Ann Arbor, Michigan, USA},title={Snapshot Metrics Are Not Enough: Analyzing Software Repositories with Longitudinal Metrics (Tool Demonstration)},series={ASE '22},year={2022},month=oct,url={http://ecommons.luc.edu/cs_facpubs/296/},}
LUC
DriveAware: Generating Actionable Data through Vehicle-Based Citizen Science (Poster)
Álvaro Landaluce, Federico Sinche Chele, Loretta Stalans, and 2 more authors
As we’re driving around Chicago going about our weekly business, we can’t help but notice telltale signs of social problems in our neighborhoods, such as homelessness, drug use, street prostitution, and suspected human trafficking. Some neighborhoods are frozen in time, often with little evidence of new development and access to opportunities that are clustered around the north side of Chicago. It may not be comfortable for us to intervene directly or scientifically sound to draw conclusions based on our isolated observations. Nevertheless, we may have an opportunity to contribute as citizen scientists by recording our observations and sharing them with better-equipped stakeholders. The interdisciplinary DriveAware project aims to use mobile computing technology to make it safe and convenient for citizen scientists in their vehicles or on foot to augment existing observations, e.g. Google Street View, such as geotagged annotated images, to various stakeholders, such as social scientists, law enforcement, social service providers, and ordinary fellow citizens. The collected data can be used in various ways, including offline data analysis and real-time maps and dashboards, as well as concrete action, such as social scientists going on location to interview the affected individuals, law enforcement investigating and prosecuting potential incidents, and social service providers intervening directly, e.g., by picking up homeless persons during a cold spell and taking them to shelters. In addition to the interdisciplinary stakeholders’ existing research questions, this project gives rise to various computer science research questions, such as system requirements and architecture, system implementation, integration with existing databases in particular fields, user experience studies to determine the likelihood of reporting observations through in-car voice-based and/or reduced distraction touch interfaces (Android Auto/Apple CarPlay) versus conventional mobile apps. To support our research questions, we have developed a proof of concept of a mobile application for reporting observations in various pertinent categories, which get stored in a cloud-hosted Firebase (NoSQL) instance and can be accessed through a Python Jupyter notebook and analyzed/visualized in multidimensional ways. Future plans include integration with commercial automotive frameworks, such as Android Auto (and eventually Apple CarPlay) and automatic image collection from dashcams connected to the mobile phone via Bluetooth. The diagram below illustrates the high-level system architecture.
@inproceedings{DriveAware2022,author={de Landaluce, Álvaro and Sinche Chele, Federico and Stalans, Loretta and Thiruvathukal, George K. and Läufer, Konstantin},booktitle={Computer Science Research Symposium},url={https://ecommons.luc.edu/csrs/ay2021-2022/techreport/1/},title={{DriveAware}: Generating Actionable Data through Vehicle-Based Citizen Science (Poster)},year={2022},}
2021
LUC
Metrics Pipeline (Codename): An Analytics and Visualization Pipeline for Software Quality Metrics (Poster)
Nicholas Synovic, Emmanuel Amobi, Erik Greve, and 8 more authors
In Undergraduate Research and Engagement Symposium, Oct 2021
The Metrics Pipeline (Codename) focuses on metrics indicative of team progress and project health instead of privileging individual metrics, e.g. number of commits, etc. The Metrics Dashboard allows the user to submit the URL of a hosted repository for batch analysis, whose results are then cached. Upon completion, the user can interactively study various metrics over time (at varying granularity), numerically, and visually. The initial version of the system is up and running as a public cloud service (SaaS) and supports project size (KLOC), defect density, defect spoilage, and productivity. While our system is by no means the first to support software metrics, we believe it may be one of the first community-focused extensible resources that can be used by any hosted project.
@inproceedings{URES-Posters-91,author={Synovic, Nicholas and Amobi, Emmanuel and Greve, Erik and Von Hatten, Sophie and Pinderski, Austin and Rodriguez, Stephanie and Zugschwert, Martin and Davis, Jamie C. and Hayward, Nicholas and Läufer, Konstantin and Thiruvathukal, George K.},booktitle={Undergraduate Research and Engagement Symposium},url={https://ecommons.luc.edu/ures/2021/2021/91/},url_pdf={https://ecommons.luc.edu/ures/2021/2021/91/},title={Metrics Pipeline (Codename): An Analytics and Visualization Pipeline for Software Quality Metrics (Poster)},year={2021},}
@book{SaleemSiddiqui_2021,author={Siddiqui, Saleem},title={Learning Test-Driven Development},publisher={O'Reilly Media, Inc.},year={2021},isbn={9781098106478},note={Foreword by Konstantin Läufer},url={https://learning.oreilly.com/library/view/learning-test-driven-development/9781098106461/foreword01.html},}
2020
LUC
Toward a containerized pipeline for longitudinal analysis of open-source software projects (Poster)
Allan Miller, George K. Thiruvathukal, Konstantin Läufer, and 10 more authors
Trust in open-source software is a cornerstone of scientific progress and a foundation of high-quality public services. Just as standards are integral when judging the efficacy of a novel pharmaceutical compound or determining the spread of a new disease, the software used to make those determinations should be useful, error-free, reliable, performant, and secure. A small bug in an application, library, or framework can lead to economic loss and even loss of life. We rely on software developers to be dynamic and responsive to user review and bug-reporting. Our team developed an open-source modular pipeline to perform empirical investigations of software quality. A key innovation of our approach is to look at projects “from a distance” similar to methods used in climate, e.g. satellite images being used to observe environmental impacts in air quality/rain forests. Instead of looking at language-specific source code features, our pipeline uses a language-agnostic high-level approach to track software quality by focusing on the development process itself, which yields great insight into the processes programmers use to write and maintain their software. Our distributed modular approach to analytics allows the pipeline to be easily extended to support additional metrics in future work. We store extracted data in an embedded SQLite database, which means that analysis can proceed without complex server setup, let alone hosting the software on dedicated servers. Our analytical modules are designed for efficiency, and future runs of our software only collect missing data, supporting the incremental analysis of known, important open-source projects.
@inproceedings{GRS-Posters-4,author={Miller, Allan and Thiruvathukal, George K. and Läufer, Konstantin and Amobi, Emmanuel and Higgins, Sean and Maliakal, Linette and Meister, Emily and Putter, Jean-Luc and Rose, Alex and Synovic, Nicholas and Von Hatten, Sophie and Warkentin, Jonathan and Zugschwert, Martin},booktitle={Graduate Research Symposium},url={http://ecommons.luc.edu/grs/2020/posters/4},title={Toward a containerized pipeline for longitudinal analysis of open-source software projects (Poster)},year={2020},}
In testing stateful abstractions, it is often necessary to record interactions, such as method invocations, and express assertions over these interactions. Following the Test Spy design pattern, we can reify such interactions programmatically through additional mutable state. Alternatively, a mocking framework, such as Mockito, can automatically generate test spies that allow us to record the interactions and express our expectations in a declarative domain-specific language. According to our study of the test code for Scala’s Iterator trait, the latter approach can lead to a significant reduction of test code complexity in terms of metrics such as code size (in some cases over 70% smaller), cyclomatic complexity, and amount of additional mutable state required. In this tools paper, we argue that the resulting test code is not only more maintainable, readable, and intentional, but also a better stylistic match for the Scala community than manually implemented, explicitly stateful test spies.
@inproceedings{Scala_2019,address={New York, NY, USA},author={Läufer, Konstantin and O'Sullivan, John and Thiruvathukal, George K.},booktitle={Proceedings of the Tenth ACM SIGPLAN Symposium on Scala},doi={10.1145/3337932.3338814},isbn={9781450368247},keywords={automated unit testing, test code metrics, stream processing, spy-based testing, mock-based testing, prefix sum, iterator design pattern, test code complexity},location={London, United Kingdom},numpages={5},pages={17–21},publisher={Association for Computing Machinery},series={Scala '19},title={Tests as Maintainable Assets via Auto-Generated Spies: A Case Study Involving the Scala Collections Library's Iterator Trait},url={https://doi.org/10.1145/3337932.3338814},year={2019},}
In this chapter, we explore various parallel and distributed computing topics from a user-centric software engineering perspective. Specifically, in the context of mobile application development, we study the basic building blocks of interactive applications in the form of events, timers, and asynchronous activities, along with related software modeling, architecture, and design topics.
@incollection{CDERBook,author={Läufer, Konstantin and Thiruvathukal, George K.},title={Managing Concurrency in Mobile User Interfaces with Examples in Android},editor={Prasad, Sushil K. and Gupta, Anshul and Rosenberg, Arnold and Sussman, Alan and Weems, Charles},booktitle={Topics in Parallel and Distributed Computing},publisher={Springer},year={2018},doi={https://doi.org/10.1007/978-3-319-93109-8_9},isbn={978-3-319-93109-8},url={https://arxiv.org/abs/1705.02899},}
Metrics Dashboard: A Hosted Platform for Software Quality Metrics
George K. Thiruvathukal, Shilpika, Nicholas J. Hayward, and 1 more author
There is an emerging consensus in the scientific software community that progress in scientific research is dependent on the "quality and accessibility of software at all levels" (this http URL). This progress depends on embracing the best traditional—and emergent—practices in software engineering, especially agile practices that intersect with the more formal tradition of software engineering. As a first step in our larger exploratory project to study in-process quality metrics for software development projects in Computational Science and Engineering (CSE), we have developed the Metrics Dashboard, a platform for producing and observing metrics by mining open-source software repositories on GitHub. Unlike GitHub and similar systems that provide individual performance metrics (e.g. commits), the Metrics Dashboard focuses on metrics indicative of team progress and project health. The Metrics Dashboard allows the user to submit the URL of a hosted repository for batch analysis, whose results are then cached. Upon completion, the user can interactively study various metrics over time (at varying granularity), numerically and visually. The initial version of the system is up and running as a public cloud service (SaaS) and supports project size (KLOC), defect density, defect spoilage, and productivity. While our system is by no means the first to support software metrics, we believe it may be one of the first community-focused extensible resources that can be used by any hosted project.
@article{DBLP:journals/corr/abs-1804-02053,author={Thiruvathukal, George K. and Shilpika and Hayward, Nicholas J. and L{\"{a}}ufer, Konstantin},title={Metrics Dashboard: {A} Hosted Platform for Software Quality Metrics},journal={CoRR},volume={abs/1804.02053},year={2018},url={http://arxiv.org/abs/1804.02053},eprinttype={arXiv},eprint={1804.02053},timestamp={Mon, 13 Aug 2018 16:47:28 +0200},biburl={https://dblp.org/rec/journals/corr/abs-1804-02053.bib},bibsource={dblp computer science bibliography, https://dblp.org},}
2017
Experiences with Scala Across the College-Level Curriculum (Invited Talk)
Mark Lewis, Konstantin Läufer, and George K. Thiruvathukal
@inproceedings{ScalaDays_2017,author={Lewis, Mark and Läufer, Konstantin and Thiruvathukal, George K.},booktitle={Scala Days},title={Experiences with Scala Across the College-Level Curriculum (Invited Talk)},year={2017},month=may,}
As sequencing technologies continue to drop in price and increase in throughput, new challenges emerge for the management and accessibility of genomic sequence data. We have developed a pipeline for facilitating the storage, retrieval, and subsequent analysis of molecular data, integrating both sequence and metadata. Taking a polyglot approach involving multiple languages, libraries, and persistence mechanisms, sequence data can be aggregated from publicly available and local repositories. Data are exposed in the form of a RESTful web service, formatted for easy querying, and retrieved for downstream analyses. As a proof of concept, we have developed a resource for annotated HIV-1 sequences. Phylogenetic analyses were conducted for >6,000 HIV-1 sequences revealing spatial and temporal factors influence the evolution of the individual genes uniquely. Nevertheless, signatures of origin can be extrapolated even despite increased globalization. The approach developed here can easily be customized for any species of interest.
@article{doi:10.4137/EBO.S32757,author={Reisman, Steven and Hatzopoulos, Thomas and Läufer, Konstantin and Thiruvathukal, George K. and Putonti, Catherine},title={A Polyglot Approach to Bioinformatics Data Integration: A Phylogenetic Analysis of HIV-1},journal={Evolutionary Bioinformatics},volume={12},pages={EBO.S32757},year={2016},doi={10.4137/EBO.S32757},note={PMID: 26819543},url={https://doi.org/10.4137/EBO.S32757},eprint={https://doi.org/10.4137/EBO.S32757},}
Academic courses focused on individual microcomputers or client/server applications are no longer sufficient for students to develop knowledge in embedded systems. Current and near-term industrial systems employ multiple interacting components and new network and security approaches; hence, academic preparation requires teaching students to develop realistic projects comparable to these real-world products. However, the complexity, breadth, and technical variations of these real-world products are difficult to reproduce in the classroom. This paper outlines preliminary work on a framework architecture suitable for academic teaching of modern embedded systems including the Internet of Things. It defines four layers, two of which are at the edges of the network, and not adequately covered in academia. For each layer of the architecture, specific technology and suitable devices are identified. Desired academic outcomes for courses using projects based on the architecture are identified. Feedback and comparison is sought on how effective student course and research activities based on the framework will be to real-world embedded systems developers.
@inproceedings{wl_honig_framework_2015,author={Honig, William and Läufer, Konstantin and Thiruvathukal, George K.},booktitle={10th IEEE International Symposium on Industrial Embedded Systems (SIES)},copyright={Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC-BY-NC-SA)},pages={1--4},title={A Framework Architecture for Student Learning in Distributed Embedded Systems},year={2015},url={https://ecommons.luc.edu/cs_facpubs/257/},}
@inproceedings{WSSSPE_2015,author={Thiruvathukal, George K. and Shilpika and Hayward, Nicholas and Aguiar, Saulo and Läufer, Konstantin},booktitle={Proc. Workshop on Sustainable Software for Science: Practice and Experiences (WSSSPE)},title={Towards Sustainable Digital Humanities Software},year={2015},url={https://ecommons.luc.edu/cs_facpubs/257/},}
Middleware for Collaborative Distributed/Mobile Applications: XMPP or Reactive HTTP? (Poster)
Brian Gathright, Konstantin Läufer, Aziz Parsa, and 1 more author
In Proc. 4th Greater Chicago Area System Research Workshop (GCASR), Chicago, Illinois, May 2015
@inproceedings{GCASR_2015,author={Gathright, Brian and Läufer, Konstantin and Parsa, Aziz and Thiruvathukal, George K.},booktitle={Proc. 4th Greater Chicago Area System Research Workshop (GCASR), Chicago, Illinois},title={Middleware for Collaborative Distributed/Mobile Applications: XMPP or Reactive HTTP? (Poster)},year={2015},month=may,}
2014
SIGCSE
Scala for Introductory CS and Parallelism (Workshop)
Mark Lewis, Konstantin Läufer, and George K. Thiruvathukal
In 45th ACM technical symposium / Computer science education (SIGCSE ’14), May 2014
Scala is one of a new breed of hybrid languages with both object-oriented and functional aspects. It happens to be the most successful of these languages coming in at #12 on the Red Monk language ranking and leading all languages in their 2nd tier. This workshop will introduce participants to the Scala programming language, how it can be used effectively in introductory CS courses, and the parallel tools that are available for it. We begin with simple examples in the REPL and scripting environment, then look at doing larger, object-oriented projects. We finish off with an exploration of composable futures and the Akka actor library. Participants are strongly recommended to bring a laptop.
@inproceedings{mark_lewis_scala_2014,address={ACM, 2 Penn Plaza, Suite 701, New York, NY 10121-0701, USA},author={Lewis, Mark and Läufer, Konstantin and Thiruvathukal, George K.},booktitle={45th ACM technical symposium / Computer science education (SIGCSE '14)},copyright={Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC-BY-NC-SA)},isbn={978-1-4503-2605-6},title={Scala for Introductory CS and Parallelism (Workshop)},url={https://scalaworkshop.cs.luc.edu/html/},year={2014},}
@inproceedings{EduPar2013,title={Spring-11: Introducing PDC topics into CS1/2 and a Mobile- and Cloud-Based Intermediate Software Design Course},author={Läufer, Konstantin and Sekharan, Chandra and Thiruvathukal, George K. and Kaylor, Joseph P.},booktitle={3rd NSF/IEEE-CS TCPP Workshop on Parallel and Distributed Computing Education ({EduPar}), Boston, Massachusetts},year={2013},month=may,url={https://tcpp.cs.gsu.edu/curriculum/?q=EduPar-13_Proceedings},}
GCASR
Building Capable, Energy-Efficient, Flexible Visualization and Sensing Clusters from Commodity Tablets (Poster)
Thomas Delgado Dias, Xian Yan, Konstantin Läufer, and 1 more author
@misc{gcasr_2013_tablets,author={Dias, Thomas Delgado and Yan, Xian and Läufer, Konstantin and Thiruvathukal, George K.},copyright={Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC-BY-NC-SA)},shorttitle={{GCASR 13}},title={Building Capable, Energy-Efficient, Flexible Visualization and Sensing Clusters from Commodity Tablets (Poster)},booktitle={Proc. 4th Greater Chicago Area System Research Workshop (GCASR), Chicago, Illinois},year={2013},month=may,url={https://ecommons.luc.edu/cs_facpubs/66/},}
GCASR
Network Technologies Used to Aggregate Environmental Data (Poster)
Paul Stasiuk, Konstantin Läufer, and George K. Thiruvathukal
In Proc. 2nd Greater Chicago Area System Research Workshop (GCASR), Chicago, Illinois, May 2013
@inproceedings{gcasr_2013_environmental_data,author={Stasiuk, Paul and Läufer, Konstantin and Thiruvathukal, George K.},copyright={Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC-BY-NC-SA)},shorttitle={GCASR 13},title={Network Technologies Used to Aggregate Environmental Data (Poster)},booktitle={Proc. 2nd Greater Chicago Area System Research Workshop (GCASR), Chicago, Illinois},year={2013},month=may,url={https://ecommons.luc.edu/cs_facpubs/65/},}
SIGCSE
Using Scala strategically across the undergraduate curriculum (Workshop)
Mark Lewis, Konstantin Läufer, and George K. Thiruvathukal
In 44th ACM technical symposium / Computer science education (SIGCSE ’13), May 2013
Various hybrid-paradigm languages, designed to balance compile-time error detection, conciseness, and performance, have emerged. Scala, e.g., is interoperable with Java and has become an early leader in adoption, especially in the start-up and open-source spaces. Workshop participants experience Scala’s value as a teaching language in the CS curriculum through four lecture-lab modules: In CS1, the read-eval-print loop and simple, uniform syntax aid programming in the small. In CS2, higher-order methods allow concise, efficient manipulation of collections. Advanced topics include domain-specific languages, concurrency, web apps/services, and mobile apps. Laptop recommended with Scala installed.
@inproceedings{mark_lewis_using_2013,address={ACM, 2 Penn Plaza, Suite 701, New York, NY 10121-0701, USA},author={Lewis, Mark and Läufer, Konstantin and Thiruvathukal, George K.},booktitle={{44th ACM technical symposium / Computer science education (SIGCSE '13)}},copyright={Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC-BY-NC-SA)},isbn={978-1-4503-1868-6},title={{Using Scala strategically across the undergraduate curriculum (Workshop)}},year={2013},url={https://ecommons.luc.edu/cs_facpubs/69/},}
@inproceedings{kaylor_simplifying_2012,author={Kaylor, Joseph P. and Läufer and Thiruvathukal, George K.},booktitle={International {{Conference}} on {{Electro Information Technology}} 2012},copyright={Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC-BY-NC-SA)},title={Simplifying Domain Modeling and Memory Management in User-Mode Filesystems with the {{NOFS}} Framework},year={2012},url={https://ecommons.luc.edu/cs_facpubs/62/},}
Early Adopter Report: PDC Modules for Every Level: A Comprehensive Model for Incorporating PDC Topics into the Existing Undergraduate Curriculum (Poster)
Konstantin Läufer, Chandra Sekharan, George K. Thiruvathukal, and 1 more author
In 2nd NSF/IEEE-CS TCPP Workshop on Parallel and Distributed Computing Education (EduPar), Shanghai, China, May 2012
@inproceedings{EduPar2012,title={Early Adopter Report: PDC Modules for Every Level: A Comprehensive Model for Incorporating PDC Topics into the Existing Undergraduate Curriculum (Poster)},author={Läufer, Konstantin and Sekharan, Chandra and Thiruvathukal, George K. and Kaylor, Joseph P.},booktitle={2nd NSF/IEEE-CS TCPP Workshop on Parallel and Distributed Computing Education ({EduPar}), Shanghai, China},year={2012},month=may,url={https://tcpp.cs.gsu.edu/curriculum/?q=advanced-technical-program},}
@incollection{CloudBookRestFS,author={Kaylor, Joseph P. and Läufer, Konstantin and Thiruvathukal, George K.},title={RestFS: The Filesystem as a Connector Abstraction for Flexible Resource and Service Composition},editor={Wang, Lizhe and Ranjan, Rajiv and Chen, Jinjun and Benatallah, Boualem},booktitle={Cloud Computing: Methodology, System, and Applications},publisher={CRC Press},year={2011},isbn={978-1439856413},url={https://ecommons.luc.edu/cs_facpubs/45/},}
We have designed and implemented RestFS, a software framework that provides a uniform, configurable connector layer for mapping remote web-based resources to local filesystem-based resources, recognizing the similarity between these two types of resources. Such mappings enable programmatic access to a resource, as well as composition of two or more resources, through the local operating system’s standard filesystem application programming interface (API), scriptable file-based command-line utilities, and inter-process communication (IPC) mechanisms. The framework supports automatic and manual authentication. We include several examples intended to show the utility and practicality of our framework.
@inproceedings{kaylor_restfs_2011,address={ACM, 2 Penn Plaza, Suite 701, New York, NY 10121-0701, USA},author={Kaylor, Joseph P. and Läufer, Konstantin and Thiruvathukal, George K.},booktitle={{Second International Workshop / RESTful Design (WS-REST '11)}},copyright={Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC-BY-NC-SA)},isbn={978-1-4503-0623-2},title={{RestFS: Resources are Filesystems, too}},year={2011},url={https://ecommons.luc.edu/cs_facpubs/15/},}
Initial experience in moving key academic department functions to social networking sites
David B. Dennis, George K. Thiruvathukal, and Konstantin Läufer
In ICSOFT 2011 - Proceedings of the 6th International Conference on Software and Data Technologies, Volume 1, Seville, Spain, 18-21 July, 2011, May 2011
@inproceedings{DBLP:conf/icsoft/2011-1,title={Initial experience in moving key academic department functions to social networking sites},author={Dennis, David B. and Thiruvathukal, George K. and Läufer, Konstantin},booktitle={{ICSOFT} 2011 - Proceedings of the 6th International Conference on
Software and Data Technologies, Volume 1, Seville, Spain, 18-21 July,
2011},publisher={SciTePress},year={2011},isbn={978-989-8425-76-8},timestamp={Wed, 28 Sep 2011 18:26:31 +0200},biburl={https://dblp.org/rec/conf/icsoft/2011-1.bib},bibsource={dblp computer science bibliography, https://dblp.org},url={http://ecommons.luc.edu/cs_facpubs/36/},}
REST on Routers? Preliminary Lessons for Language Designers, Framework Architects, and App Developers
Joseph P. Kaylor, Konstantin Läufer, and George K. Thiruvathukal
In ICSOFT 2011 - Proceedings of the 6th International Conference on Software and Data Technologies, Volume 1, Seville, Spain, 18-21 July, 2011, May 2011
@inproceedings{DBLP:conf/icsoft/2011-2,title={{REST} on Routers? Preliminary Lessons for Language Designers, Framework Architects, and App Developers},author={Kaylor, Joseph P. and Läufer, Konstantin and Thiruvathukal, George K.},booktitle={{ICSOFT} 2011 - Proceedings of the 6th International Conference on
Software and Data Technologies, Volume 1, Seville, Spain, 18-21 July,
2011},publisher={SciTePress},year={2011},isbn={978-989-8425-76-8},timestamp={Wed, 28 Sep 2011 18:26:31 +0200},biburl={https://dblp.org/rec/conf/icsoft/2011-1.bib},bibsource={dblp computer science bibliography, https://dblp.org},url={https://ecommons.luc.edu/cs_facpubs/35/},}
@inproceedings{EduPar2011,title={PDC Modules for Every Level: A Comprehensive Model for Incorporating PDC Topics into the Existing Undergraduate Curriculum},author={Läufer, Konstantin and Sekharan, Chandra and Thiruvathukal, George K.},booktitle={1st NSF/IEEE-CS TCPP Workshop on Parallel and Distributed Computing Education ({EduPar}), Anchorage, Alaska},year={2011},month=may,url={https://tcpp.cs.gsu.edu/curriculum/?q=node/16950},}
@article{laufer_moving_2011,author={Läufer, Konstantin and Thiruvathukal, George K. and Dennis, David B.},copyright={Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC-BY-NC-SA)},issn={1521-9615},journal={Computing in Science and Engineering},number={5},pages={84--89},shorttitle={Moving Academic Department Functions to Social Networks and Clouds},title={Moving {{Academic Department Functions}} to {{Social Networks}} and {{Clouds}}: {{Initial Experiences}}},volume={13},year={2011},url={https://ecommons.luc.edu/cs_facpubs/144/},}
We present a novel form of intra-volume directory layering with hierarchical, inheritance-like namespace unification. While each layer of an OLFS volume constitutes a subvolume that can be mounted separately in a fan-in configuration, the entire hierarchy is always accessible (online) and fully navigable through any mounted layer. OLFS uses a relational database to store its layering metadata and either a relational database or any (virtual) host file system as its backing store, along with metadata and block caching for improved performance. Because OLFS runs as a virtual file system in user-space, its capabilities are available to all existing software without modification or special privileges. We have developed a reference implementation of OLFS for FUSE based on MySQL and XFS, and conducted performance benchmarking against XFS by itself. We explore several applications of OLFS, such as enhanced server synchronization, transactional file operations, and versioning.
@inproceedings{kaylor_online_2010,author={Kaylor, Joseph P. and Läufer, Konstantin and Thiruvathukal, George K.},booktitle={IEEE International Conference on Electro/Information Technology (EIT 2010)},copyright={Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC-BY-NC-SA)},pages={1--9},shorttitle={Online Layered File System (OLFS)},title={Online Layered File System (OLFS): A layered and versioned filesystem and performance analysis},year={2010},url={https://ecommons.luc.edu/cs_facpubs/40},}
@article{george_k_thiruvathukal_virtualization_2010,author={Thiruvathukal, George K. and Läufer, Konstantin and Hinsen, Konrad and Kaylor, Joseph P.},copyright={Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC-BY-NC-SA)},issn={1521-9615},journal={Computing in Science and Engineering},number={4},pages={52--61},title={Virtualization for {{Computational Scientists}}},volume={12},year={2010},url={https://ecommons.luc.edu/cs_facpubs/16/},}
@inproceedings{DBLP:conf/icws/GutmanRKSL09,author={Gutman, Moshe and Radhakrishnan, Sridhar and Kim, Changwook and Sekharan, Chandra N. and L{\"{a}}ufer, Konstantin},bibsource={dblp computer science bibliography, https://dblp.org},biburl={https://dblp.org/rec/conf/icws/GutmanRKSL09.bib},booktitle={{IEEE} International Conference on Web Services, {ICWS} 2009, Los
Angeles, CA, USA, 6-10 July 2009},doi={10.1109/ICWS.2009.135},pages={1035--1036},publisher={{IEEE} Computer Society},timestamp={Thu, 14 Oct 2021 01:00:00 +0200},title={GroupSpeak: High-level Language Extension for Workflow Capability},url={https://doi.org/10.1109/ICWS.2009.135},year={2009},}
@article{laufer_scientific_2009,author={Läufer, Konstantin and Thiruvathukal, George K.},copyright={Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC-BY-NC-SA)},issn={1521-9615},journal={Computing in Science and Engineering},number={5},pages={68--75},shorttitle={Scientific {{Programming}}},title={Scientific {{Programming}}: {{The Promises}} of {{Typed}}, {{Pure}}, and {{Lazy Functional Programming}}: {{Part II}}},volume={11},year={2009},url={https://ecommons.luc.edu/cs_facpubs/25/},}
@article{konrad_hinsen_essential_2009,author={Hinsen, Konrad and Läufer, Konstantin and Thiruvathukal, George K.},copyright={Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC-BY-NC-SA)},issn={1521-9615},journal={Computing in Science and Engineering},number={6},pages={84--91},shorttitle={Essential {{Tools}}},title={Essential {{Tools}}: {{Version Control Systems}}},volume={11},year={2009},url={https://ecommons.luc.edu/cs_facpubs/27/},}
@article{k_laufer_putting_2009,author={Läufer, Konstantin and Thiruvathukal, George K. and Nishimura, Ryohei and Martínez-Eiroa, Carlos Ramírez},copyright={Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC-BY-NC-SA)},issn={1521-9615},journal={Computing in Science and Engineering},number={2},pages={62--68},title={Putting a {{Slug}} to {{Work}}},volume={11},year={2009},url={https://ecommons.luc.edu/cs_facpubs/23/},}
Processing markup in object-oriented languages often requires the programmer to focus on the objects generating the markup rather than the more pertinent domain objects. The BetterXML framework aims to improve this situation by allowing the programmer to develop a domain-specific object model as usual and later bind this model to preexisting or newly generated markup. To this end, the framework provides two types of object trees, XElement and NaturalXML, for representing XML documents. XElement goes beyond DOM-like automatic parsing of XML by supporting the custom mapping of elements to domain objects; NaturalXML allows the mapping of existing domain objects to XML elements using class metadata. Both types of object trees can be inflated and deflated by means of a common intermediate representation in the form of an event stream. Finally, the framework includes the XML Intermediate Representation (XIR), a lossless record-oriented representation of XML documents for efficient streaming and other types of data exchange.
@inproceedings{matt_bone_taming_2008,author={Bone, Matt and Nabicht, Peter F. and Läufer and Thiruvathukal, George K.},booktitle={IEEE International Conference on Electro/Information Technology (EIT 2008)},copyright={Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC-BY-NC-SA)},pages={488--493},shorttitle={Taming XML},title={Taming XML: Objects First, Then Markup},year={2008},url={https://ecommons.luc.edu/cs_facpubs/39},}
Combining SOA and BPM Technologies for Cross-System Process Automation
Sebastian Herr, Konstantin Läufer, John Shafaee, and 2 more authors
In Proceedings of the Twentieth International Conference on Software Engineering & Knowledge Engineering (SEKE’2008), San Francisco, CA, USA, July 1-3, 2008, May 2008
@inproceedings{DBLP:conf/seke/HerrLSTW08,author={Herr, Sebastian and L{\"{a}}ufer, Konstantin and Shafaee, John and Thiruvathukal, George K. and Wirtz, Guido},title={Combining {SOA} and {BPM} Technologies for Cross-System Process Automation},booktitle={Proceedings of the Twentieth International Conference on Software
Engineering {\&} Knowledge Engineering (SEKE'2008), San Francisco,
CA, USA, July 1-3, 2008},pages={339--344},publisher={Knowledge Systems Institute Graduate School},year={2008},timestamp={Thu, 12 Mar 2020 11:30:50 +0100},biburl={https://dblp.org/rec/conf/seke/HerrLSTW08.bib},bibsource={dblp computer science bibliography, https://dblp.org},}
@article{george_k_thiruvathukal_what_2008,author={Thiruvathukal, George K. and Läufer, Konstantin},copyright={Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC-BY-NC-SA)},issn={1521-9615},journal={Computing in Science and Engineering},number={6},pages={76--81},title={What I Did on My Summer Vacation},volume={10},year={2008},url={https://ieeexplore.ieee.org/document/4653209},}
@article{DBLP:journals/cse/Laufer08,author={L{\"{a}}ufer, Konstantin},bibsource={dblp computer science bibliography, https://dblp.org},biburl={https://dblp.org/rec/journals/cse/Laufer08.bib},doi={10.1109/MCSE.2008.67},journal={Comput. Sci. Eng.},number={3},pages={76--83},timestamp={Thu, 14 Oct 2021 01:00:00 +0200},title={A Stroll through Domain-Driven Development with Naked Objects},url={https://doi.org/10.1109/MCSE.2008.67},volume={10},year={2008},}
@inproceedings{IPDPS_2007,author={Mehta, Neeraj and Kanitkar, Yogesh and Laufer, Konstantin and Thiruvathukal, George K.},booktitle={2007 IEEE International Parallel and Distributed Processing Symposium},title={A Model-Driven Approach to Job/Task Composition in Cluster Computing},year={2007},volume={},number={},pages={1-8},doi={10.1109/IPDPS.2007.370423},}
By incorporating automated component, integration, and acceptance testing into the various tiers of a lightweight lava 2 Enterprise Edition (J2EE) Web application architecture, developers can shorten the development cycle and increase the quality of their work
@article{konstantin_laufer_hike_2007,author={Läufer, Konstantin and Thiruvathukal, George K. and González, Benjamin},copyright={Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC-BY-NC-SA)},issn={1521-9615},journal={Computing in Science and Engineering},number={1},title={A Hike through a Post-EJB J2EE Web Application Architecture, Part III},volume={9},year={2007},url={https://ecommons.luc.edu/cs_facpubs/263/},}
@article{george_k_thiruvathukal_unit_2006,author={Thiruvathukal, George K. and Läufer, Konstantin and González, Benjamin},copyright={Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC-BY-NC-SA)},issn={1521-9615},journal={Computing in Science and Engineering},number={6},pages={76--87},title={Unit {{Testing Considered Useful}}},volume={8},year={2006},url={https://ecommons.luc.edu/cs_facpubs/33/},}
@article{george_k_thiruvathukal_plone_2004,author={Thiruvathukal, George K. and Läufer, Konstantin},copyright={Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC-BY-NC-SA)},issn={1521-9615},journal={Computing in Science and Engineering},number={4},pages={88--95},title={Plone and Content Management},volume={6},year={2004},url={https://ecommons.luc.edu/cs_facpubs/30/},}
@article{george_k_thiruvathukal_natural_2004,author={Thiruvathukal, George K. and Läufer, Konstantin},copyright={Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC-BY-NC-SA)},issn={1521-9615},journal={Computing in Science and Engineering},pages={86--92},title={Natural {{XML}} for {{Data Binding}}, {{Processing}}, and {{Persistence}}},volume={6},year={2004},url={https://ecommons.luc.edu/cs_facpubs/9/},}
@inproceedings{DBLP:conf/ic/ZhangLG03,author={Zhang, Jia and L{\"{a}}ufer, Konstantin and Gong, Zhiguo},bibsource={dblp computer science bibliography, https://dblp.org},biburl={https://dblp.org/rec/conf/ic/ZhangLG03.bib},booktitle={Proceedings of the International Conference on Internet Computing,
{IC} '03, Las Vegas, Nevada, USA, June 23-26, 2003, Volume 2},editor={Arabnia, Hamid R. and Mun, Youngsong},pages={684--687},publisher={{CSREA} Press},timestamp={Wed, 23 Oct 2019 01:00:00 +0200},title={Mockup Supporting Web Requirements Engineering},year={2003},}
Using handheld and wireless technology for classroom and community-based South Asian language pedagogy
Christopher Chung, Daisy Rockwell, Tao Bai, and 2 more authors
@misc{chung2003,title={Using handheld and wireless technology for classroom and community-based {South} Asian language pedagogy},author={Chung, Christopher and Rockwell, Daisy and Bai, Tao and Laufer, K and Thiruvathukal, George K},howpublished={Presented at the 2003 Midwest Software Engineering Conference, Chicago, Illinois},year={2003},url={https://ecommons.luc.edu/cs_facpubs/2/},}
Patent
Method and apparatus for providing interactive services with multiple interfaces
Thomas J Ball, Peter John Danielsen, Lalita Jategaonkar Jagadeesan, and 3 more authors
@patent{ball2003method2,title={Method and apparatus for providing interactive services with multiple interfaces},author={Ball, Thomas J and Danielsen, Peter John and Jagadeesan, Lalita Jategaonkar and Läufer, Konstantin and Mataga, Peter Andrew and Rehor, Kenneth G},year={2003},month=mar,note={US Patent 6,609,089},url={https://patents.google.com/patent/US6609089B1},}
Patent
Method and apparatus for providing interactive services with multiple interfaces
Thomas J Ball, Peter John Danielsen, Lalita Jategaonkar Jagadeesan, and 3 more authors
@patent{ball2003method1,title={Method and apparatus for providing interactive services with multiple interfaces},author={Ball, Thomas J and Danielsen, Peter John and Jagadeesan, Lalita Jategaonkar and Läufer, Konstantin and Mataga, Peter Andrew and Rehor, Kenneth G},year={2003},month=mar,note={US Patent 6,529,863},url={https://patents.google.com/patent/US6529863B1},}
Enhancing the CS Curriculum with with Aspect-Oriented Software Development (AOSD) and Early Experience
Konstantin Läufer, George K. Thiruvathukal, and Tzilla Elrad
@techreport{2003_AOSD,author={Läufer, Konstantin and Thiruvathukal, George K. and Elrad, Tzilla},title={Enhancing the {CS} Curriculum with with Aspect-Oriented Software Development ({AOSD}) and Early Experience},institution={Loyola University Chicago},year={2003},month=sep,url={https://ecommons.luc.edu/cs_facpubs/4/},}
2002
Half & Half: Multiple Dispatch and Retroactive Abstraction for Java
Gerald Baumgartner, Martin Jansche, and Konstantin Läufer
@techreport{Baumgartner02half,author={Baumgartner, Gerald and Jansche, Martin and Läufer, Konstantin},title={Half {\&} Half: Multiple Dispatch and Retroactive Abstraction for Java},institution={Purdue University},year={2002},}
@inproceedings{DBLP:conf/sigsoft/GodefroidJJL00,author={Godefroid, Patrice and Jagadeesan, Lalita Jategaonkar and Jagadeesan, Radha and L{\"{a}}ufer, Konstantin},bibsource={dblp computer science bibliography, https://dblp.org},biburl={https://dblp.org/rec/conf/sigsoft/GodefroidJJL00.bib},booktitle={{ACM} {SIGSOFT} Symposium on Foundations of Software Engineering,
an Diego, California, USA, November 6-10, 2000, Proceedings},doi={10.1145/355045.355051},editor={Knight, John C. and Rosenblum, David S.},pages={40--49},publisher={{ACM}},timestamp={Thu, 14 Oct 2021 01:00:00 +0200},title={Automated systematic testing for constraint-based interactive services},url={https://doi.org/10.1145/355045.355051},year={2000},}
@inproceedings{DBLP:conf/cp/GuptaJJJL00,author={Gupta, Vineet and Jagadeesan, Lalita Jategaonkar and Jagadeesan, Radha and Jiang, Xiaowei and L{\"{a}}ufer, Konstantin},bibsource={dblp computer science bibliography, https://dblp.org},biburl={https://dblp.org/rec/conf/cp/GuptaJJJL00.bib},booktitle={Principles and Practice of Constraint Programming - {CP} 2000, 6th
International Conference, Singapore, September 18-21, 2000, Proceedings},doi={10.1007/3-540-45349-0_16},editor={Dechter, Rina},pages={202--217},publisher={Springer},series={Lecture Notes in Computer Science},timestamp={Thu, 14 Oct 2021 01:00:00 +0200},title={A Constraint-Based Framework for Prototyping Distributed Virtual Applications},url={https://doi.org/10.1007/3-540-45349-0_16},volume={1894},year={2000},}
@article{DBLP:journals/ijst/BallCDJJLMR00,author={Ball, Thomas and Colby, Christopher and Danielsen, Peter J. and Jagadeesan, Lalita Jategaonkar and Jagadeesan, Radha and L{\"{a}}ufer, Konstantin and Mataga, Peter and Rehor, Kenneth},bibsource={dblp computer science bibliography, https://dblp.org},biburl={https://dblp.org/rec/journals/ijst/BallCDJJLMR00.bib},doi={10.1023/A:1009645414233},journal={Int. J. Speech Technol.},number={2},pages={93--108},timestamp={Mon, 08 Jun 2020 01:00:00 +0200},title={Sisl: Several Interfaces, Single Logic},url={https://doi.org/10.1023/A:1009645414233},volume={3},year={2000},}
@article{DBLP:journals/cj/LauferBR00,author={L{\"{a}}ufer, Konstantin and Baumgartner, Gerald and Russo, Vincent F.},bibsource={dblp computer science bibliography, https://dblp.org},biburl={https://dblp.org/rec/journals/cj/LauferBR00.bib},doi={10.1093/comjnl/43.6.469},journal={Comput. J.},number={6},pages={469--481},timestamp={Thu, 14 Oct 2021 01:00:00 +0200},title={Safe Structural Conformance for Java},url={https://doi.org/10.1093/comjnl/43.6.469},volume={43},year={2000},}
@inproceedings{Triveni_OOPSLAEDU_1998,author={Colby, Christopher and Jagadeesan, Radha and Läufer, Konstantin and Sekharan, Chandra},title={Interaction, Concurrency, and {OOP} in the Curriculum: a
Sophomore Course},booktitle={Proc. OOPSLA 1998 Educators'
Symposium},year={1998},address={Vancouver, Canada},month=oct,}
@inproceedings{DBLP:conf/iccl/ColbyJJLP98,author={Colby, Christopher and Jagadeesan, Lalita Jategaonkar and Jagadeesan, Radha and L{\"{a}}ufer, Konstantin and Puchol, Carlos},bibsource={dblp computer science bibliography, https://dblp.org},biburl={https://dblp.org/rec/conf/iccl/ColbyJJLP98.bib},booktitle={Proceedings of the 1998 International Conference on Computer Languages,
{ICCL} 1998, Chicago, IL, USA, May 14-16, 1998},doi={10.1109/ICCL.1998.674157},pages={58--67},publisher={{IEEE} Computer Society},timestamp={Thu, 14 Oct 2021 01:00:00 +0200},title={Design and Implementation of Triveni: {A} Process-Algebraic {API}
for Threads + Events},url={https://doi.org/10.1109/ICCL.1998.674157},year={1998},}
@inproceedings{DBLP:conf/coots/ColbyJJLP98,author={Colby, Christopher and Jagadeesan, Lalita Jategaonkar and Jagadeesan, Radha and L{\"{a}}ufer, Konstantin and Puchol, Carlos},bibsource={dblp computer science bibliography, https://dblp.org},biburl={https://dblp.org/rec/conf/coots/ColbyJJLP98.bib},booktitle={4th {USENIX} Conference on Object-Oriented Technologies and Systems
(COOTS), April 27-30, 1998, Eldorado Hotel, Santa Fe, New Mexico,
{USA}},pages={131--149},publisher={{USENIX}},timestamp={Tue, 02 Feb 2021 00:00:00 +0100},title={Objects and Concurrency in Triveni: {A} Telecommunication Case Study
in Java},url={http://www.usenix.org/publications/library/proceedings/coots98/colby.html},year={1998},}
@article{DBLP:journals/entcs/ColbyJJLP98,author={Colby, Christopher and Jategaonkar, Lalita and Jagadeesan, Radha and L{\"{a}}ufer, Konstantin and Puchol, Carlos},bibsource={dblp computer science bibliography, https://dblp.org},biburl={https://dblp.org/rec/journals/entcs/ColbyJJLP98.bib},doi={10.1016/S1571-0661(05)80233-6},journal={Electron. Notes Theor. Comput. Sci.},pages={107--133},timestamp={Thu, 14 Oct 2021 01:00:00 +0200},title={The Semantics of Triveni: {A} Process-Algebraic {API} for Threads
+ Events},url={https://doi.org/10.1016/S1571-0661(05)80233-6},volume={14},year={1998},}
1997
Using Java in the Undergraduate Computer Science Curriculum
@misc{Laufer_MCC_1997,author={L{\"{a}}ufer, Konstantin},title={Using {Java} in the Undergraduate Computer Science
Curriculum},howpublished={Presented at the Eleventh Annual Midwest
Computer Conference, Springfield, Illinois},year={1997},month=mar,}
In Conference Record of POPL’96: The 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Papers Presented at the Symposium, St. Petersburg Beach, Florida, USA, January 21-24, 1996, Mar 1996
@inproceedings{DBLP:conf/popl/OderskyL96,author={Odersky, Martin and L{\"{a}}ufer, Konstantin},bibsource={dblp computer science bibliography, https://dblp.org},biburl={https://dblp.org/rec/conf/popl/OderskyL96.bib},booktitle={Conference Record of POPL'96: The 23rd {ACM} {SIGPLAN-SIGACT} Symposium
on Principles of Programming Languages, Papers Presented at the Symposium,
St. Petersburg Beach, Florida, USA, January 21-24, 1996},doi={10.1145/237721.237729},editor={Boehm, Hans{-}Juergen and Jr., Guy L. Steele},pages={54--67},publisher={{ACM} Press},timestamp={Tue, 06 Nov 2018 00:00:00 +0100},title={Putting Type Annotations to Work},url={https://doi.org/10.1145/237721.237729},year={1996},}
@misc{Laufer_MCC_1996,author={L{\"{a}}ufer, Konstantin},title={An Open Environment for {Common} {Gateway}
{Interface} Programming},howpublished={Presented at the Tenth Annual Midwest
Computer Conference, Chicago},year={1996},month=mar,}
On the Interaction of Object-Oriented Design Patterns and Programming Languages
Gerald Baumgartner, Konstantin Läufer, and Vincent F. Russo
Design patterns are distilled from many real systems to catalog common programming practice. However, some object-oriented design patterns are distorted or overly complicated because of the lack of supporting programming language constructs or mechanisms. For this paper, we have analyzed several published design patterns looking for idiomatic ways of working around constraints of the implementation language. From this analysis, we lay a groundwork of general-purpose language constructs and mechanisms that, if provided by a statically typed, object-oriented language, would better support the implementation of design patterns and, transitively, benefit the construction of many real systems. In particular, our catalog of language constructs includes subtyping separate from inheritance, lexically scoped closure objects independent of classes, and multimethod dispatch. The proposed constructs and mechanisms are not radically new, but rather are adopted from a variety of languages and programming language research and combined in a new, orthogonal manner. We argue that by describing design patterns in terms of the proposed constructs and mechanisms, pattern descriptions become simpler and, therefore, accessible to a larger number of language communities. Constructs and mechanisms lacking in a particular language can be implemented using paradigmatic idioms.
@techreport{BaumgartnerLauferRusso_Interactions_1996,author={Baumgartner, Gerald and L{\"{a}}ufer, Konstantin and Russo, Vincent F.},title={On the Interaction of Object-Oriented
Design Patterns and Programming Languages},institution={Purdue University},year={1996},number={CSD-TR-96-020},month=feb,eprint={1905.13674},eprinttype={arXiv},url={http://arxiv.org/abs/1905.13674},}
@inproceedings{DBLP:conf/coots/Laufer95,author={L{\"{a}}ufer, Konstantin},bibsource={dblp computer science bibliography, https://dblp.org},biburl={https://dblp.org/rec/conf/coots/Laufer95.bib},booktitle={Proceedings of the {USENIX} Conference on Object-Oriented Technologies,
COOTS'95, Monterey, California, USA, June 26-29, 1995},editor={Russo, Vincent F.},publisher={{USENIX}},timestamp={Tue, 02 Feb 2021 00:00:00 +0100},title={A Framework for Higher-Order Functions in {C++}},url={http://www.usenix.org/publications/library/proceedings/coots95/laufer.html},year={1995},}
Interactive Web Applications Based on Finite State Machines (Invited Talk)
Konstantin Läufer
In Proc. Symp. Information Systems Analysis and Synthesis (ISAS), Aug 1995
@inproceedings{Laufer_ISAS_1995,author={L{\"{a}}ufer, Konstantin},title={Interactive Web Applications Based on Finite State Machines (Invited Talk)},booktitle={Proc. Symp. Information Systems Analysis and
Synthesis (ISAS)},year={1995},address={Baden-Baden, Germany},month=aug,note={Invited paper},}
@inproceedings{Laufer_PANEL_1994,author={L{\"{a}}ufer, Konstantin},title={Combining Type Classes and Existential Types},booktitle={Proc. Latin American Informatics Conf. (PANEL)},year={1994},organization={ITESM-CEM},address={Mexico},month=sep,}
@article{DBLP:journals/toplas/LauferO94,author={L{\"{a}}ufer, Konstantin and Odersky, Martin},bibsource={dblp computer science bibliography, https://dblp.org},biburl={https://dblp.org/rec/journals/toplas/LauferO94.bib},doi={10.1145/186025.186031},journal={{ACM} Trans. Program. Lang. Syst.},number={5},pages={1411--1430},timestamp={Thu, 14 Oct 2021 01:00:00 +0200},title={Polymorphic Type Inference and Abstract Data Types},url={https://doi.org/10.1145/186025.186031},volume={16},year={1994},}
@inproceedings{LauferOdersky_Reflection_1993,author={L{\"{a}}ufer, Konstantin and Odersky, Martin},booktitle={Proc. OOPSLA Workshop on Reflection and Metalevel Architectures},month=oct,organization={ACM},title={Self-Interpretation and Reflection in a Statically Typed Language},year={1993},}
@inproceedings{LauferOdersky_ML_1992,author={L{\"{a}}ufer, Konstantin and Odersky, Martin},title={An Extension of {ML} with First-Class Abstract Types},booktitle={Proc. ACM SIGPLAN Workshop on ML and its Applications},year={1992},month=jun,}
Polymorphic Type Inference and Abstract Data Types
K. Läufer
New York University, Jul 1992
Available as Technical Report 622, December 1992, from New York University, Department of Computer Science
Many statically-typed programming languages provide an abstract data type construct, such as the package in Ada, the cluster in CLU, and the module in Modula2. However, in most of these languages, instances of abstract data types are not first-class values. Thus they cannot be assigned to a variable, passed as a function parameter, or returned as a function result. The higher-order functional language ML has a strong and static type system with parametric polymorphism. In addition, ML provides type reconstruction and consequently does not require type declarations for identifiers. Although the ML module system supports abstract data types, their instances cannot be used as first-class values for type-theoretic reasons. In this dissertation, we describe a family of extensions of ML. While retaining ML’s static type discipline, type reconstruction, and most of its syntax, we add significant expressive power to the language by incorporating first-class abstract types as an extension of ML’s free algebraic datatypes. In particular, we are now able to express multiple implementations of a given abstract type; heterogeneous aggregates of different implementations of the same abstract type; and dynamic dispatching of operations with respect to the implementation type. Following Mitchell and Plotkin, we formalize abstract types in terms of existentially quantified types. We prove that our type system is semantically sound with respect to a standard denotational semantics. We then present an extension of Haskell, a non-strict functional language that uses type classes to capture systematic overloading. This language results from incorporating existentially quantified types into Haskell and gives us first-class abstract types with type classes as their interfaces. We can now express heterogeneous structures over type classes. The language is statically typed and offers comparable flexibility to object-oriented languages. Its semantics is defined through a type-preserving translation to a modified version of our ML extension. We have implemented a prototype of an interpreter for our language, including the type reconstruction algorithm, in Standard ML.
@phdthesis{Laufer_Thesis_1992,author={L{\"{a}}ufer, K.},key={lau92},month=jul,note={Available as Technical Report 622, December
1992, from New York University, Department of
Computer Science},school={New York University},title={Polymorphic Type Inference and Abstract
Data Types},year={1992},}
@inproceedings{HengleinLaufer_PANEL_1991,author={Henglein, Fritz and L{\"{a}}ufer, Konstantin},booktitle={Proc. XVII Latin American Informatics Conference (PANEL '91)},address={Universidad Simón Bolívar, Caracas, Venezuela},pages={333--352},title={Programming with Structures, Functions, and Objects},year={1991},}
In Declarative Programming, Sasbachwalden 1991, PHOENIX Seminar and Workshop on Declarative Programming, Sasbachwalden, Black Forest, Germany, 18-22 November 1991, Jul 1991
@inproceedings{DBLP:conf/phoenix/LauferO91,author={L{\"{a}}ufer, Konstantin and Odersky, Martin},bibsource={dblp computer science bibliography, https://dblp.org},biburl={https://dblp.org/rec/conf/phoenix/LauferO91.bib},booktitle={Declarative Programming, Sasbachwalden 1991, {PHOENIX} Seminar and
Workshop on Declarative Programming, Sasbachwalden, Black Forest,
Germany, 18-22 November 1991},doi={10.1007/978-1-4471-3794-8_10},editor={Darlington, John and Dietrich, Roland},pages={148--162},publisher={Springer},series={Workshops in Computing},timestamp={Fri, 21 Jun 2019 13:08:59 +0200},title={Type Classes are Signatures of Abstract Types},url={https://doi.org/10.1007/978-1-4471-3794-8_10},year={1991},}
Three Approaches to Transformational Programming – A Comparative Survey
@techreport{Laufer_Transformational_1991,author={L{\"{a}}ufer, Konstantin},title={Three Approaches to Transformational Programming --
A Comparative Survey},institution={Department of Computer Science, New York University},year={1991},number={NYU-CS-TR 555},month=apr,}
@techreport{laufer1987,author={Läufer, Konstantin and Mehl, Wolfgang},title={Cobra Address User Manual},institution={Cobra GmbH},address={Technologiezentrum Konstanz, Germany},year={1987},annote={Address book for Microsoft Windows},}
@techreport{laufer1986,author={Läufer, Konstantin},title={Cobra Litsy User Manual},institution={Cobra GmbH},address={Technologiezentrum Konstanz, Germany},year={1986},annote={Bibliography manager for Microsoft Windows},}
1984
MailBox User Manual and Administration Guide
Ralf Dierenbach, Heinz-Erich Erbs, and Konstantin Läufer
@techreport{laufer1984,author={Dierenbach, Ralf and Erbs, Heinz-Erich and Läufer, Konstantin},title={MailBox User Manual and Administration Guide},institution={Universität Konstanz},year={1984},annote={In-house email system for Siemens BS-2000.},}