skip to main content
10.1145/3622780.3623647acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Composing Turing Machines in FSM

Published:19 October 2023Publication History

ABSTRACT

For Computer Science students, designing Turing machines is a Herculean task. Formal Languages and Automata Theory textbooks aid students by introducing a graphical notation for Turing machine composition. The difficulty of the task remains unchanged, because design principles are not emphasized and students rarely have the opportunity to program their designs in a textual programming language which allows them to write unit tests. To aid students that are trained as programmers, FSM--a domain-specific language for the Automata Theory classroom--has been developed. Using FSM, students design, program, validate, and establish the correctness of their Turing machines. Once they are familiar with Turing machines, students are introduced to Turing machine composition much like they are introduced to function composition when they learn to design programs. To compose Turing machines in FSM, there is an embedded domain-specific language that students may use. In this manner, students' training in programming is made relevant in the course. This article discusses how students are taught to design, program, validate, and establish the correctness of composed Turing machines.

References

  1. Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram Krishnamurthi. 2018. How to Design Programs: An Introduction to Programming and Computing (Second ed.). MIT Press, Cambridge, MA, USA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi, Eli Barsilay, Jay McCarthy, and Sam Tobin-Hochstadt. 2018. A Programmable Programming Language. Commun. ACM, 61, 13 (2018), March, 62–71. issn:0001-0782 https://doi.org/10.1145/3127223 Google ScholarGoogle ScholarCross RefCross Ref
  3. Matthias Felleisen, David Van Horn, and Conrad Barski. 2013. Realm of Racket–Learn to Program, One Game at a Time!. No Starch Press. isbn:978-1-59327-491-7 Google ScholarGoogle Scholar
  4. Matthew Flatt, Robert Bruce Findler, and PLT. [n. d.]. The Racket Guide. https://docs.racket-lang.org/guide/ last accessed 2023-07-07 Google ScholarGoogle Scholar
  5. C.A.R. Hoare and H. Jifeng. 1998. Unifying Theories of Programming. Prentice Hall. isbn:9780134587615 lccn:98010608 Google ScholarGoogle Scholar
  6. C. A. R. Hoare. 1969. An Axiomatic Basis for Computer Programming. Commun. ACM, 12, 10 (1969), Oct., 576–580. issn:0001-0782 https://doi.org/10.1145/363235.363259 Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Harry R. Lewis and Christos H. Papadimitriou. 1997. Elements of the Theory of Computation (2nd ed.). Prentice Hall PTR, Upper Saddle River, NJ, USA. isbn:0132624788 https://doi.org/10.1145/300307.1040360 Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Peter Linz. 2011. An Introduction to Formal Languages and Automata (5th ed.). Jones and Bartlett Publishers, Inc., USA. isbn:9781449615529 Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. John C. Martin. 2003. Introduction to Languages and the Theory of Computation (3 ed.). McGraw-Hill, Inc., New York, NY, USA. isbn:0072322004, 9780072322002 Google ScholarGoogle Scholar
  10. Marco T. Morazán. 2022. Animated Problem Solving - An Introduction to Program Design Using Video Game Development. Springer. isbn:978-3-030-85090-6 https://doi.org/10.1007/978-3-030-85091-3 Google ScholarGoogle ScholarCross RefCross Ref
  11. Marco T. Morazán. 2022. Animated Program Design - Intermediate Program Design Using Video Game Development. Springer. isbn:978-3-031-04316-1 https://doi.org/10.1007/978-3-031-04317-8 Google ScholarGoogle ScholarCross RefCross Ref
  12. Elaine Rich. 2019. Automata, Computability and Complexity: Theory and Applications. Pearson Prentice Hall. isbn:9780132288064 Google ScholarGoogle Scholar
  13. Susan H. Rodger. 2006. JFLAP: An Interactive Formal Languages and Automata Package. Jones and Bartlett Publishers, Inc., USA. isbn:0763738344 Google ScholarGoogle Scholar
  14. Susan H. Rodger, Bart Bressler, Thomas Finley, and Stephen Reading. 2006. Turning automata theory into a hands-on course. In Proceedings of the 37th SIGCSE Technical Symposium on Computer Science Education, SIGCSE 2006, Houston, Texas, USA, March 3-5, 2006, Doug Baldwin, Paul T. Tymann, Susan M. Haller, and Ingrid Russell (Eds.). ACM, 379–383. https://doi.org/10.1145/1121341.1121459 Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Tomás García Saiz and Elena Gaudioso Vázquez. 2010. Autómatas, Gramáticas, y Lenguages Formales: Problemas Resueltos (1st ed.). Sanz Y Torres, S. L., España. isbn:978-84-92948-36-9 Google ScholarGoogle Scholar

Index Terms

  1. Composing Turing Machines in FSM

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Article Metrics

        • Downloads (Last 12 months)44
        • Downloads (Last 6 weeks)3

        Other Metrics

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader