Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
- research-articleJune 2024
Investigating the Performance of Language Models for Completing Code in Functional Programming Languages: a Haskell Case Study
FORGE '24: Proceedings of the 2024 IEEE/ACM First International Conference on AI Foundation Models and Software EngineeringApril 2024, Pages 91–102https://doi.org/10.1145/3650105.3652289Language model-based code completion models have quickly grown in use, helping thousands of developers write code in many different programming languages. However, research on code completion models typically focuses on imperative languages such as ...
- short-paperOctober 2023
Design and Implementation of Facets of Dynamic Policies
SPLASH 2023: Companion Proceedings of the 2023 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for HumanityOctober 2023, Pages 37–39https://doi.org/10.1145/3618305.3623599Information Flow Control (IFC) in dynamic contexts is challenging due to different interpretations of security that arise. This paper introduces a modular framework to address this challenge. We present a dynamic floating-label enforcement mechanism ...
- research-articleJune 2024
QuickerCheck: Implementing and Evaluating a Parallel Run-Time for QuickCheck
IFL '23: Proceedings of the 35th Symposium on Implementation and Application of Functional LanguagesAugust 2023, Article No.: 9, Pages 1–12https://doi.org/10.1145/3652561.3652570This paper introduces a new parallel run-time for QuickCheck, a Haskell library and EDSL for specifying and randomly testing properties of programs. The new run-time can run multiple tests for a single property in parallel, using the available cores. ...
- short-paperNovember 2020
Short Paper: Weak Runtime-Irrelevant Typing for Security
PLAS'20: Proceedings of the 15th Workshop on Programming Languages and Analysis for SecurityNovember 2020, Pages 13–17https://doi.org/10.1145/3411506.3417595Types indexed with extra type-level information are a powerful tool for statically enforcing domain-specific security properties. In many cases, this extra information is runtime-irrelevant, and so it can be completely erased at compile-time without ...
- research-articleFebruary 2020
Introduction to Computational Thinking: A New High School Curriculum using CodeWorld
SIGCSE '20: Proceedings of the 51st ACM Technical Symposium on Computer Science EducationFebruary 2020, Pages 992–998https://doi.org/10.1145/3328778.3366960The Louisiana Department of Education partnered with the Gordon A. Cain Center at LSU to pilot a Computing High School Graduation Pathway. The first course in the pathway, Introduction to Computational Thinking (ICT), is designed to teach programming ...
-
- research-articleSeptember 2019
A New Methodology for a Functional and Logic Programming Course: On Smoothening the Transition between the Two Paradigms
SIGITE '19: Proceedings of the 20th Annual SIG Conference on Information Technology EducationSeptember 2019, Pages 63–68https://doi.org/10.1145/3349266.3351408We have been giving a course on functional and logic programming models for third- and fourth-year undergraduate students of a university in Japan. For students mostly trained in imperative programming (e.g., the C language) and object-oriented ...
- research-articleAugust 2019
Scoping monadic relational database queries
Haskell 2019: Proceedings of the 12th ACM SIGPLAN International Symposium on HaskellAugust 2019, Pages 114–124https://doi.org/10.1145/3331545.3342598We present a novel method for ensuring that relational database queries in monadic embedded languages are well-scoped, even in the presence of arbitrarily nested joins and aggregates. Demonstrating our method, we present a simplified version of Selda, a ...
- research-articleSeptember 2018
Rhine: FRP with type-level clocks
Haskell 2018: Proceedings of the 11th ACM SIGPLAN International Symposium on HaskellSeptember 2018, Pages 145–157https://doi.org/10.1145/3242744.3242757Processing data at different rates is generally a hard problem in reactive programming. Buffering problems, lags, and concurrency issues often occur. Many of these problems are clock errors, where data at different rates is combined incorrectly. ...
Also Published in:
ACM SIGPLAN Notices: Volume 53 Issue 7, July 2018 - research-articleFebruary 2018
The Effect of a Web-based Coding Tool with Automatic Feedback on Students' Performance and Perceptions
SIGCSE '18: Proceedings of the 49th ACM Technical Symposium on Computer Science EducationFebruary 2018, Pages 2–7https://doi.org/10.1145/3159450.3159579In this paper we do three things. First, we describe a web-based coding tool that is open-source, publicly available and provides formative feedback and assessment. Second, we compare several metrics on student performance in courses that use the tool ...
- short-paperJanuary 2018
A Perspective on the Dependency Core Calculus
PLAS '18: Proceedings of the 13th Workshop on Programming Languages and Analysis for SecurityOctober 2018, Pages 24–28https://doi.org/10.1145/3264820.3264823This paper presents a simple but equally expressive vari- ant on the terminating fragment of the Dependency Core Calculus (DCC) of Abadi et al. [2]. DCC is a concise and elegant calculus for tracking dependency. The calculus has applications in, among ...
- research-articleOctober 2017
Encoding DCC in Haskell
PLAS '17: Proceedings of the 2017 Workshop on Programming Languages and Analysis for SecurityOctober 2017, Pages 77–89https://doi.org/10.1145/3139337.3139338The seminal work on the Dependency Core Calculus (DCC) shows how monads not only can be used for embedding effects in purely functional languages but also to statically track data dependencies. Such types of analysis have applications in research areas ...
- research-articleMarch 2017Distinguished Paper
Integrating Computer Science into Music Education
SIGCSE '17: Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science EducationMarch 2017, Pages 459–464https://doi.org/10.1145/3017680.3017767We present an experience report demonstrating the use a Domain-Specific Language, Nuterpea, in a general education music class. While the use of computing in music education is common, we demonstrate that {\em coding} allows students without a ...
- research-articleOctober 2016
On Formalizing Information-Flow Control Libraries
PLAS '16: Proceedings of the 2016 ACM Workshop on Programming Languages and Analysis for SecurityOctober 2016, Pages 15–28https://doi.org/10.1145/2993600.2993608Many state-of-the-art IFC libraries support a variety of advanced features like mutuable data structures, exceptions, and concurrency, whose subtle interaction makes verification of security guarantees challenging. In this paper, we present a full-...
- short-paperMay 2016
A Simulator for Distributed Cache Managementin Friend-to-Friend Networks
SIGSIM-PADS '16: Proceedings of the 2016 ACM SIGSIM Conference on Principles of Advanced Discrete SimulationMay 2016, Pages 79–82https://doi.org/10.1145/2901378.2901398Multimedia streaming services such as YouTube and Netflix consume a staggering amount of Internet bandwidth [1]. Furthermore, traditional mechanisms such as proxy caches, content distribution networks, and redundant traffic elimination are rendered ...
- research-articleAugust 2015
Bounded refinement types
ICFP 2015: Proceedings of the 20th ACM SIGPLAN International Conference on Functional ProgrammingAugust 2015, Pages 48–61https://doi.org/10.1145/2784731.2784745We present a notion of bounded quantification for refinement types and show how it expands the expressiveness of refinement typing by using it to develop typed combinators for: (1) relational algebra and safe database access, (2) Floyd-Hoare logic ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 9, September 2015 - research-articleApril 2015
Composable memory transactions with eager version management
SAC '15: Proceedings of the 30th Annual ACM Symposium on Applied ComputingApril 2015, Pages 2093–2098https://doi.org/10.1145/2695664.2695816STM Haskell extends the Haskell functional programming language with a set of primitives for writing composable memory transactions. STM Haskell employs lazy version management and lazy conflict detection algorithms. This paper describes a new ...
- research-articleApril 2015
Thunk recycling for lazy functional languages: operational semantics and correctness
SAC '15: Proceedings of the 30th Annual ACM Symposium on Applied ComputingApril 2015, Pages 2079–2086https://doi.org/10.1145/2695664.2695693Lazy evaluation helps programmers write clear programs. However, it has significant run-time overheads for building many as-yet unevaluated expressions, or thunks. Because thunk allocation is a space-consuming task, it is important to reduce the number ...
- research-articleJanuary 2015
Generalising Tree Traversals to DAGs: Exploiting Sharing without the Pain
PEPM '15: Proceedings of the 2015 Workshop on Partial Evaluation and Program ManipulationJanuary 2015, Pages 27–38https://doi.org/10.1145/2678015.2682539We present a recursion scheme based on attribute grammars that can be transparently applied to trees and acyclic graphs. Our recursion scheme allows the programmer to implement a tree traversal and then apply it to compact graph representations of trees ...
- research-articleOctober 2014
Smten with satisfiability-based search
OOPSLA '14: Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & ApplicationsOctober 2014, Pages 157–176https://doi.org/10.1145/2660193.2660208Satisfiability (SAT) and Satisfiability Modulo Theories (SMT) have been used in solving a wide variety of important and challenging problems, including automatic test generation, model checking, and program synthesis. For these applications to scale to ...
Also Published in:
ACM SIGPLAN Notices: Volume 49 Issue 10, October 2014 - research-articleSeptember 2014
Parallel computation of multifield topology: experience of Haskell in a computational science application
FHPC '14: Proceedings of the 3rd ACM SIGPLAN workshop on Functional high-performance computingSeptember 2014, Pages 11–21https://doi.org/10.1145/2636228.2636237Codes for computational science and downstream analysis (visualization and/or statistical modelling) have historically been dominated by imperative thinking, but this situation is evolving, both through adoption of higher-level tools such as Matlab, and ...