Kanaganayagam, Sahithyen and Moor, Luca (2025) CronFP. Other thesis, OST Ostschweizer Fachhochschule.
Full text not available from this repository.Abstract
Abstract CronFP
===============
Introduction
------------
Job scheduling is a critical component in modern computing systems, enabling automated execution of tasks at specified times or in response to specific events. Traditional job schedulers, such as cron, are widely used but often rely on imperative programming paradigms that can lead to complex and hard-to-maintain configurations. This project explores the application of purely functional, declarative, and denotational programming concepts to the domain of job scheduling.
Definition of the task
----------------------
The objective of this work is to investigate whether principles from purely functional, declarative, and denotational programming can improve the conceptual foundations of job scheduling systems. Since no established functional scheduling model was identified in the state of the art, the task was defined as an exploratory study, with the goal of proposing and evaluating a feasible functional approach through a concrete implementation.
Approach
--------
We adopted a research-oriented approach, beginning with an analysis of existing scheduling systems to identify their advantages and limitations. We then explored functional programming concepts, particularly Functional Reactive Programming (FRP), Algebra-Driven Design, and Embedded Domain-Specific Languages (EDSLs), to design a scheduling framework. After this research phase, we decided to implement a clon of the cron job scheduler for gaining practical insights about the application of FRP using Rhine. Additionally, we designed and implemented an Intermediate Language (IL) as an EDSL to explore first ideas for a more general scheduling framework supporting both time-based and Webhook-based scheduling.
Results
-------
Our analysis of existing scheduling systems revealed that there are no scheduling systems using functional and denotational programming concepts. During our research with the aim to design a general-purpose functional scheduling system, we gained a gradual understanding of how to apply these concepts to scheduling. We did not have a breakthough moment, but rather a gradual understanding of how to apply these concepts to our scheduling system.
To evaluate our understanding, we implemented a clon of the cron job scheduler using the Rhine FRP library in Haskell. The implementation was successful and is accompanied by a manual in this documentation. The cron clon can parse a cron file and schedule commands accordingly using FRP streams written in Haskell.
To further explore our ideas of a scheduling framework, we designed and implemented an Intermediate Language (IL) as an EDSL in Haskell. The IL allows users to define scheduled tasks in a functional manner, allowing for time-based schedules and Webhook capabilities. The IL implementation is also successful and is documented in this documentation with a getting started guide. Due to using functional programming concepts such as monads, the IL provides a flexible and expressive way to define scheduling logic.
Conclusion
----------
This project successfully demonstrated that purely functional, declarative, and denotational programming concepts can be effectively applied to job scheduling systems by developing two prototype systems.
Our work established that functional and denotational concepts had not been systematically explored in the scheduling domain. During our work we demonstrated how FRP can be used to implement a scheduling solutions and how monads enable composable task definitions.
The area of scheduling using functional and denotational programming needs further research. We have identified multiple areas for future exploration to build on this project. Key questions to be addressed include:
- Is the architecture with the placement of consumer and producer optimal?
- Does the simplicity and elegance of a static schedule definition outweigh the flexibility of dynamic schedules?
- Is responding to events from external sources (e.g., Webhooks) a useful feature for a scheduling system?
- How can we enable event source extensibility in a user-friendly manner?
In summary, this work provides an initial exploration of functional and denotational approaches to scheduling systems and highlights several open questions that can guide future investigation and development.
| Item Type: | Thesis (Other) |
|---|---|
| Subjects: | Topics > Software Area of Application > Development Tools Technologies > Programming Languages > Haskell Metatags > IFS (Institute for Software) |
| Divisions: | Bachelor of Science FHO in Informatik > Student Research Project |
| Depositing User: | OST Deposit User |
| Date Deposited: | 26 Feb 2026 09:02 |
| Last Modified: | 26 Feb 2026 09:02 |
| URI: | https://eprints.ost.ch/id/eprint/1372 |
