# Stepping OCaml

**Authors:** Tsukino Furukawa (Ochanomizu University), Youyou Cong (Ochanomizu, University), Kenichi Asai (Ochanomizu University)

arXiv: 1906.11422 · 2019-06-28

## TL;DR

This paper introduces a stepper tool for a practical OCaml fragment that tracks evaluation contexts and supports effectful constructs, aiming to improve understanding of program behavior for learners.

## Contribution

It presents a novel OCaml stepper supporting effectful features, extending pedagogical tools beyond DrRacket to a practical programming language.

## Key findings

- Students found the stepper helpful for understanding OCaml programs
- The stepper facilitated learning of effectful constructs like exceptions
- Preliminary assessment suggests positive educational impact

## Abstract

Steppers, which display all the reduction steps of a given program, are a novice-friendly tool for understanding program behavior. Unfortunately, steppers are not as popular as they ought to be; indeed, the tool is only available in the pedagogical languages of the DrRacket programming environment.   We present a stepper for a practical fragment of OCaml. Similarly to the DrRacket stepper, we keep track of evaluation contexts in order to reconstruct the whole program at each reduction step. The difference is that we support effectful constructs, such as exception handling and printing primitives, allowing the stepper to assist a wider range of users. In this paper, we describe the implementation of the stepper, share the feedback from our students, and show an attempt at assessing the educational impact of our stepper.

## Full text

_Full body text omitted from this summary view._ Fetch the complete paper as Markdown: https://tomesphere.com/paper/1906.11422/full.md

## Figures

24 figures with captions in the complete paper: https://tomesphere.com/paper/1906.11422/full.md

## References

7 references — full list in the complete paper: https://tomesphere.com/paper/1906.11422/full.md

---
Source: https://tomesphere.com/paper/1906.11422