pith. sign in

arxiv: 1907.05384 · v1 · pith:7CSP5UH7new · submitted 2019-07-11 · 💻 cs.FL

Visualizac{c}\~ao e animac{c}\~ao de aut\'omatos em Ocsigen Framework

Pith reviewed 2026-05-24 22:22 UTC · model grok-4.3

classification 💻 cs.FL
keywords automatavisualizationanimationOcsigenOCamlformal languagesinteractive toolword acceptance
0
0 comments X

The pith

An Ocsigen-based OCaml web application now supports creating automata, inspecting states, and animating word acceptance step-by-step with undo.

A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.

The paper reports the initial implementation of an interactive web platform written in OCaml for teaching automata theory and formal languages. Built on the Ocsigen framework, the tool lets users construct or load automata, classify their states, and simulate the processing of input words one transition at a time while allowing reversal of steps. This approach aims to make abstract computational models concrete through direct manipulation and visualization rather than static descriptions alone. The single-language client-server architecture and compile-time type checking are presented as the enablers for a reliable, error-free interactive experience.

Core claim

The first phase of the project has delivered a working web interface in which automata can be created and edited by the user, the nature of each state can be inspected, and the acceptance of a word can be verified by stepping through the computation with the option to undo any step.

What carries the argument

Ocsigen Framework, which supplies a unified OCaml codebase for client and server components together with strong static typing that eliminates many classes of web runtime errors.

If this is right

  • Users can test both preloaded and custom automata through reversible execution traces.
  • Future extensions can add animated versions of conversion algorithms between automaton models.
  • The same platform can support additional classical algorithms such as minimization or equivalence checking.
  • Strong typing inherited from OCaml prevents entire categories of web-page defects at compile time.

Where Pith is reading between the lines

These are editorial extensions of the paper, not claims the author makes directly.

  • Portuguese localization targets a specific student population but the underlying OCaml implementation could be extended to other languages without rewriting the core logic.
  • Because the tool is built in a functional language with formal-methods libraries, it could later incorporate automated verification of the automata themselves.
  • A web-based, undo-enabled simulator lowers the barrier for students to experiment with edge cases that are tedious to check by hand.

Load-bearing premise

The Ocsigen framework can produce complete, stable, and interactive web applications from a single OCaml program without introducing client-server communication or type-safety problems.

What would settle it

An attempt to run the tool on a browser that produces a type error, rendering failure, or loss of state during a multi-step word-acceptance simulation.

read the original abstract

Formal Languages and Automata Theory are important foundational topics in Computer Science. Their rigorous and formal characteristics make their learning them demanding. An important support for the assimilation of concepts is the possibility of interactively visualizing concrete examples of these computational models, facilitating understanding them. The tools available are neither complete nor fully support the interactive aspect. This project aims at the development of an interactive web tool in Portuguese to help in an assisted and intuitive way to understand the concepts and algorithms in question, seeing them work step-by-step, through typical examples preloaded or built by the user (an original aspect of our platform). The tool should therefore enable the creation and edition of an automata, as well as execute the relevant classical algorithms such as word acceptance, model conversions, etc. It is also intended to visualize not only the process of construction of the automaton, but also all the steps of applying the given algorithm. This tool uses the Ocsigen Framework because it provides the development of complete and interactive web tools written in OCaml, a functional language with a strong type checking system and therefore perfect for a web page without errors. Ocsigen was also chosen because it allows the creation of dynamic pages with a singular client-server system. This article presents the first phase of the development of the project. It is already possible to create automata, check the nature of its states and verify step-by-step (with undo) the acceptance of a word.

Editorial analysis

A structured set of objections, weighed in public.

Desk editor's note, referee report, simulated authors' rebuttal, and a circularity audit. Tearing a paper down is the easy half of reading it; the pith above is the substance, this is the friction.

Referee Report

1 major / 2 minor

Summary. The manuscript reports on the first phase of a project to develop an interactive web tool, written in OCaml using the Ocsigen framework, for creating, editing, and animating finite automata. The central claim is that the implemented features already allow users to construct automata, inspect the nature of states, and perform step-by-step word acceptance verification (including undo). The choice of Ocsigen is motivated by its unified client-server model and strong static typing to reduce web errors. The work targets educational support for automata theory, with an emphasis on Portuguese-language interface and user-built examples.

Significance. If the reported functionality is correctly realized, the tool could provide a practical, type-safe platform for interactive learning of automata concepts, addressing gaps in existing visualization software. The use of a functional language with strong typing for a web application is a methodological strength that aligns with reliability goals in educational tools. However, because the paper is a status report without code, architecture details, or evaluation data, its significance remains modest and primarily relevant to computer-science education rather than advancing formal language theory.

major comments (1)
  1. The manuscript states that the listed features have been implemented but supplies no description of the OCaml data structures used to represent automata, the client-server communication for step-by-step simulation, or any test cases that would allow verification of the acceptance procedure with undo. Without such details the central claim cannot be assessed.
minor comments (2)
  1. The title and abstract contain Portuguese text and LaTeX markup; an English abstract or bilingual presentation would improve accessibility for an international readership.
  2. No figures, screenshots, or architecture diagram are referenced, which would help illustrate the claimed interactive features.

Simulated Author's Rebuttal

1 responses · 0 unresolved

We thank the referee for the detailed review and constructive feedback on our status report describing the first phase of the automata visualization tool. We address the major comment below.

read point-by-point responses
  1. Referee: The manuscript states that the listed features have been implemented but supplies no description of the OCaml data structures used to represent automata, the client-server communication for step-by-step simulation, or any test cases that would allow verification of the acceptance procedure with undo. Without such details the central claim cannot be assessed.

    Authors: We agree that the current manuscript, as a concise status report on the initial phase, does not include sufficient low-level implementation details. In the revised version we will add a dedicated section describing the OCaml data structures (e.g., the representation of states, transitions, and the overall automaton using records or modules), the Ocsigen client-server communication mechanisms used to drive the step-by-step simulation, and concrete test cases that exercise the word-acceptance procedure together with the undo functionality. These additions will make the central claims verifiable while remaining consistent with the paper's scope as a first-phase report. revision: yes

Circularity Check

0 steps flagged

No circularity; direct implementation report

full rationale

The paper is a project-status report describing the first phase of an automata visualization tool built with Ocsigen/OCaml. Its central claim is a factual statement of achieved functionality (create automata, check states, step-by-step word acceptance with undo). No equations, derivations, fitted parameters, predictions, or uniqueness theorems appear. No self-citations are load-bearing. The description of Ocsigen capabilities is presented as background motivation, not as a derived result. The work is self-contained as engineering reporting with no reduction of claims to inputs by construction.

Axiom & Free-Parameter Ledger

0 free parameters · 0 axioms · 0 invented entities

The paper is a software development report and introduces no free parameters, mathematical axioms, or invented entities beyond standard web-framework usage.

pith-pipeline@v0.9.0 · 5798 in / 958 out tokens · 18024 ms · 2026-05-24T22:22:35.047699+00:00 · methodology

discussion (0)

Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.

Reference graph

Works this paper leans on

42 extracted references · 42 canonical work pages · 1 internal anchor

  1. [1]

    Pelo que ficou dito, compreende-se que existem muitas ferramentas que po- deriam ser aqui mencionadas

    e VisualAlgo [13], por terem o objectivo de animar algoritmos ou estruturas de dados, estando relacionados com este projecto devido ` a sua forte componente interactiva. Pelo que ficou dito, compreende-se que existem muitas ferramentas que po- deriam ser aqui mencionadas. Decidiu-se, contudo, desenvolver um pouco mais aquelas que de alguma forma se destaca...

  2. [2]

    finalexample

    Destaca-se por ser uma das mais completas para o estudo de Linguagens Formais e Teoria de Aut´ omatos. ´E fruto do trabalho de Susan H. Rodger e de alguns dos seus alunos que, ao longo do tempo, foram desenvolvendo novas funcionalidades [9, 10]. Apesar de ter sido inicialmente escrita em c++ e x windows , foi mais tarde reescrita em Java e swing de forma ...

  3. [3]

    http://automatatutor.com/index, accessed: 2019-02-11

    Automata tutor v2.0. http://automatatutor.com/index, accessed: 2019-02-11

  4. [4]

    https://idea.nguyen.vg/~leon/automata experiments/index.html, accessed: 2019-02-11

    Automate. https://idea.nguyen.vg/~leon/automata experiments/index.html, accessed: 2019-02-11

  5. [5]

    http://automatonsimulator.com/, accessed: 2019-02-11

    Automaton simulator. http://automatonsimulator.com/, accessed: 2019-02-11

  6. [6]

    http://vaucanson-project.org/Awali/index.html, accessed: 2019-07-09

    Awali. http://vaucanson-project.org/Awali/index.html, accessed: 2019-07-09

  7. [7]

    http://js.cytoscape.org/, accessed: 2019-06-04

    Cytoscape.js. http://js.cytoscape.org/, accessed: 2019-06-04

  8. [8]

    http://ivanzuzak.info/noam/webapps/fsm simulator/, acces- sed: 2019-02-11

    Fsm simulator. http://ivanzuzak.info/noam/webapps/fsm simulator/, acces- sed: 2019-02-11

  9. [9]

    http://ivanzuzak.info/noam/webapps/fsm2regex/, accessed: 2019- 02-14

    Fsm2regex. http://ivanzuzak.info/noam/webapps/fsm2regex/, accessed: 2019- 02-14

  10. [10]

    http://www.jflap.org/, accessed: 2019-02-11

    Jflap. http://www.jflap.org/, accessed: 2019-02-11

  11. [11]

    http://www.jflap.org/history.html, accessed: 2019-02-17

    Jflap history. http://www.jflap.org/history.html, accessed: 2019-02-17

  12. [12]

    https://www2.cs.duke.edu/csed/jflapworkshop/ sigcse06/WorkshopHistory.pdf, accessed: 2019-02-17

    Jflap history powerpoint. https://www2.cs.duke.edu/csed/jflapworkshop/ sigcse06/WorkshopHistory.pdf, accessed: 2019-02-17

  13. [13]

    https://ocsigen.org/ home/intro.html, accessed: 2019-02-11

    Ocsigen - multi-tier programming for web and mobile apps. https://ocsigen.org/ home/intro.html, accessed: 2019-02-11

  14. [14]

    http://ivanzuzak.info/noam/webapps/ regex simplifier/, accessed: 2019-02-14

    Regular expressions gym. http://ivanzuzak.info/noam/webapps/ regex simplifier/, accessed: 2019-02-14

  15. [15]

    https://visualgo.net/en, accessed: 2019-02-11

    Visualgo. https://visualgo.net/en, accessed: 2019-02-11

  16. [16]

    Adar, E.: Guess: A language and interface for graph exploration. vol. 2, pp. 791–800 (01 2006). https://doi.org/10.1145/1124772.1124889

  17. [17]

    Balat, V.: Ocsigen: Typing web interaction with objective caml. vol. 2006, pp. 84–94 (09 2006). https://doi.org/10.1145/1159876.1159889

  18. [18]

    Balat, V., Vouillon, J., Yakobowski, B.: Experience report: Ocsi- gen, a web programming framework. vol. 44, pp. 311–316 (09 2009). https://doi.org/10.1145/1596550.1596595

  19. [19]

    Saxena, P., Katti, C.: Fifty years of automata simulation: A review

    Chakraborty, P., C. Saxena, P., Katti, C.: Fifty years of automata simulation: A review. ACM Inroads 2 (12 2011). https://doi.org/10.1145/2038876.2038893

  20. [20]

    Claveirole, T., Lombardy, S., O’Connor, S., Pouchet, L.N., Sakarovitch, J.: Inside vaucanson. pp. 116–128 (01 2005)

  21. [21]

    In: Proceedings of the November 12-14, 1963, Fall Joint Com- puter Conference

    Coffin, R.W., Goheen, H.E., Stahl, W.R.: Simulation of a turing machine on a digital computer. In: Proceedings of the November 12-14, 1963, Fall Joint Com- puter Conference. pp. 35–43. AFIPS ’63 (Fall), ACM, New York, NY, USA (1963). https://doi.org/10.1145/1463822.1463827, http://doi.acm.org/10.1145/ 1463822.1463827

  22. [22]

    Time Series Simulation by Conditional Generative Adversarial Net

    Cogliati, J., W. Goosey, F., T. Grinder, M., A. Pascoe, B., Ross, R., J. Wil- liams, C.: Realizing the promise of visualization in the theory of compu- ting. ACM Journal of Educational Resources in Computing 5, 1–17 (06 2005). https://doi.org/10.1145/1141904.1141909 24 R. Macedo, A. M. Dias, A. Ravara

  23. [23]

    Comput.- Hum

    D’antoni, L., Kini, D., Alur, R., Gulwani, S., Viswanathan, M., Hartmann, B.: How can automatic feedback help students construct automata? ACM Trans. Comput.- Hum. Interact. 22(2), 9:1–9:24 (Mar 2015). https://doi.org/10.1145/2723163, http://doi.acm.org/10.1145/2723163

  24. [24]

    Bulletin of the European Association for Computer Science 117, 143–160 (Oct 2015)

    D’Antoni, L., Weaver, M., Weinert, A., Alur, R.: Automata tutor and what we learned from building an online teaching tool. Bulletin of the European Association for Computer Science 117, 143–160 (Oct 2015)

  25. [25]

    Demaille, A., Duret-Lutz, A., Lombardy, S., Sakarovitch, J.: Implemen- tation concepts in vaucanson 2. vol. 7982, pp. 122–133 (07 2013). https://doi.org/10.1007/978-3-642-39274-0 12

  26. [26]

    Lombardy, S., Poss, R., R´ egis-Gianas, Y., Sakarovitch, J.: Introducing vaucanson. vol. 2759, pp. 107–134 (06 2003). https://doi.org/10.1007/3-540-45089-0 10

  27. [27]

    White, T., Way, T.: jfast: a java finite automata simulator

    M. White, T., Way, T.: jfast: a java finite automata simulator. vol. 38, pp. 384–388 (03 2006). https://doi.org/10.1145/1124706.1121460

  28. [28]

    Merceron, A., Yacef, K.: Web-based learning tools: storing usage data makes a difference. pp. 104–109 (03 2007)

  29. [29]

    SIGCSE Bull

    Pierson, W.C., Rodger, S.H.: Web-based animation of data structures using jawaa. SIGCSE Bull. 30(1), 267–271 (Mar 1998). https://doi.org/10.1145/274790.274310, http://doi.acm.org/10.1145/274790.274310

  30. [30]

    SIGCSE Bulletin 41, 48–52 (01 2009)

    Pillay, N.: Learning difficulties experienced by students in a course on for- mal languages and automata theory. SIGCSE Bulletin 41, 48–52 (01 2009). https://doi.org/10.1145/1709424.1709444

  31. [31]

    Radanne, G., Vouillon, J., Balat, V.: Eliom: A core ml language for tierless web programming. pp. 377–397 (11 2016). https://doi.org/10.1007/978-3-319-47958- 3 20

  32. [32]

    Raymond, D., Wood, D.: Grail: A c++ library for automata and expressions. J. Symb. Comput. 17(4), 341–350 (Apr 1994). https://doi.org/10.1006/jsco.1994.1023, http://dx.doi.org/10.1006/ jsco.1994.1023

  33. [33]

    https://doi.org/10.1145/199691.199820

    Rodger, S.: An interactive lecture approach to teaching computer science 27 (10 1998). https://doi.org/10.1145/199691.199820

  34. [34]

    Rodger, S., Wiebe, E., Min Lee, K., Morgan, C., Omar, K., Su, J.: Increa- sing engagement in automata theory with jflap. vol. 41, pp. 403–407 (03 2009). https://doi.org/10.1145/1508865.1509011

  35. [35]

    Sanders, I., Pilkington, C., Van Staden, W.: Errors made by students when desig- ning finite automata (06 2015)

  36. [36]

    SIGCHI Bull

    Stasko, J.T.: Tango: A framework and system for algorithm animation. SIGCHI Bull. 21(3), 59–60 (Jan 1990). https://doi.org/10.1145/379088.1046618, http:// doi.acm.org/10.1145/379088.1046618

  37. [37]

    https://doi.org/10.1145/1411260.1411267

    Stoughton, A.: Experimenting with formal languages using forlan (01 2008). https://doi.org/10.1145/1411260.1411267

  38. [38]

    Grinder, M.: A preliminary empirical evaluation of the effectiveness of a finite state automaton animator

    T. Grinder, M.: A preliminary empirical evaluation of the effectiveness of a finite state automaton animator. vol. 35, pp. 157–161 (01 2003). https://doi.org/10.1145/611892.611958

  39. [39]

    Vieira, L., Vieira, M., Vieira, N.: Language emulator, a helpful toolkit in the learning process of computer theory. vol. 36, pp. 135–139 (03 2004). https://doi.org/10.1145/971300.971348

  40. [40]

    Software: Practice and Experience (2013)

    Vouillon, J., Balat, V.: From Bytecode to JavaScript: the Js of ocaml Compiler. Software: Practice and Experience (2013). https://doi.org/10.1002/spe.2187

  41. [41]

    Brown, C., A

    W. Brown, C., A. Hardisty, E.: Regexex: an interactive system providing regular expression exercises. vol. 39, pp. 445–449 (01 2007) Visualiza¸ c˜ ao e anima¸ c˜ ao de aut´ omatos em Ocsigen Framework 25

  42. [42]

    ACM SIGCSE Bulletin 37 (09 2005)

    Wermelinger, M., Dias, A.: A prolog toolkit for formal languages and automata. ACM SIGCSE Bulletin 37 (09 2005). https://doi.org/10.1145/1067445.1067536