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
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.
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
- 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.
Referee Report
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)
- 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)
- The title and abstract contain Portuguese text and LaTeX markup; an English abstract or bilingual presentation would improve accessibility for an international readership.
- No figures, screenshots, or architecture diagram are referenced, which would help illustrate the claimed interactive features.
Simulated Author's Rebuttal
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
-
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
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
Reference graph
Works this paper leans on
-
[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]
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 ...
work page 2012
-
[3]
http://automatatutor.com/index, accessed: 2019-02-11
Automata tutor v2.0. http://automatatutor.com/index, accessed: 2019-02-11
work page 2019
-
[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
work page 2019
-
[5]
http://automatonsimulator.com/, accessed: 2019-02-11
Automaton simulator. http://automatonsimulator.com/, accessed: 2019-02-11
work page 2019
-
[6]
http://vaucanson-project.org/Awali/index.html, accessed: 2019-07-09
Awali. http://vaucanson-project.org/Awali/index.html, accessed: 2019-07-09
work page 2019
-
[7]
http://js.cytoscape.org/, accessed: 2019-06-04
Cytoscape.js. http://js.cytoscape.org/, accessed: 2019-06-04
work page 2019
-
[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
work page 2019
-
[9]
http://ivanzuzak.info/noam/webapps/fsm2regex/, accessed: 2019- 02-14
Fsm2regex. http://ivanzuzak.info/noam/webapps/fsm2regex/, accessed: 2019- 02-14
work page 2019
-
[10]
http://www.jflap.org/, accessed: 2019-02-11
Jflap. http://www.jflap.org/, accessed: 2019-02-11
work page 2019
-
[11]
http://www.jflap.org/history.html, accessed: 2019-02-17
Jflap history. http://www.jflap.org/history.html, accessed: 2019-02-17
work page 2019
-
[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
work page 2019
-
[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
work page 2019
-
[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
work page 2019
-
[15]
https://visualgo.net/en, accessed: 2019-02-11
Visualgo. https://visualgo.net/en, accessed: 2019-02-11
work page 2019
-
[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]
Balat, V.: Ocsigen: Typing web interaction with objective caml. vol. 2006, pp. 84–94 (09 2006). https://doi.org/10.1145/1159876.1159889
-
[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]
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]
Claveirole, T., Lombardy, S., O’Connor, S., Pouchet, L.N., Sakarovitch, J.: Inside vaucanson. pp. 116–128 (01 2005)
work page 2005
-
[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]
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
work page internal anchor Pith review Pith/arXiv arXiv doi:10.1145/1141904.1141909 2005
-
[23]
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]
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)
work page 2015
-
[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]
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]
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]
Merceron, A., Yacef, K.: Web-based learning tools: storing usage data makes a difference. pp. 104–109 (03 2007)
work page 2007
-
[29]
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]
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]
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]
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]
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]
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]
Sanders, I., Pilkington, C., Van Staden, W.: Errors made by students when desig- ning finite automata (06 2015)
work page 2015
-
[36]
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]
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]
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]
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]
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]
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
work page 2007
-
[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
discussion (0)
Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.