Abstract
The FAdo system is a symbolic manipulator of formal language objects, implemented in Python. In this work, we extend its capabilities by implementing methods to manipulate transducers and we go one level higher than existing formal language systems and implement methods to manipulate objects representing classes of independent languages (widely known as code properties). Our methods allow users to define their own code properties and combine them between themselves or with fixed properties such as prefix codes, suffix codes, error detecting codes, etc. The satisfaction and maximality decision questions are solvable for any of the definable properties. The new online system LaSer allows one to query about a code property and obtain the answer in a batch mode. Our work is founded on independence theory as well as the theory of rational relations and transducers, and contributes with improved algorithms on these objects.
Due to the page limit we chose to omit algorithmic details and proofs of correctness, and focus on providing a somewhat comprehensive presentation on implementation aspects and the new capabilities of FAdo. Details can be found in [17].
N. Moreira and R. Reis are partially supported by CMUP (UID/MAT/00144/2013), which is funded by FCT with national and European structural funds through the programs FEDER, under the partnership agreement PT2020. S. Konstantinidis and C. Meijer are supported by NSERC, Canada.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Note: In transducer figures, the input and output alphabets are equal. An arrow with label \(\sigma /\sigma \) represents a set of transitions with labels \(\sigma /\sigma \), for each alphabet symbol \(\sigma \); and similarly for an arrow with label \(\sigma /\varepsilon \). An arrow with label \(\sigma /\sigma '\) represents a set of transitions with labels \(\sigma /\sigma '\) for all distinct alphabet symbols \(\sigma ,\sigma '\).
References
Almeida, A., Almeida, M., Alves, J., Moreira, N., Reis, R.: FAdo and GUItar: tools for automata manipulation and visualization. In: Maneth, S. (ed.) CIAA 2009. LNCS, vol. 5642, pp. 65–74. Springer, Heidelberg (2009)
Béal, M.P., Carton, O., Prieur, C., Sakarovitch, J.: Squaring transducers: an efficient procedure for deciding functionality and sequentiality. Theoret. Comput. Sci. 292(1), 45–63 (2003)
Berstel, J.: Transductions and Context-Free Languages. B.G. Teubner, Stuttgart (1979)
Berstel, J., Perrin, D., Reutenauer, C.: Codes and Automata. Cambridge University Press, New York (2009)
Claveirole, T., Lombardy, S., O’Connor, S., Pouchet, L.-N., Sakarovitch, J.: Inside vaucanson. In: Farré, J., Litovsky, I., Schmitz, S. (eds.) CIAA 2005. LNCS, vol. 3845, pp. 116–128. Springer, Heidelberg (2006)
Domaratzki, M.: Trajectory-based codes. Acta Informatica 40, 491–527 (2004)
Domaratzki, M., Salomaa, K.: Codes defined by multiple sets of trajectories. Theoret. Comput. Sci. 366, 182–193 (2006)
Dudzinski, K., Konstantinidis, S.: Formal descriptions of code properties: decidability, complexity, implementation. IJFCS 23(1), 67–85 (2012)
FAdo: Tools for formal languages manipulation. http://fado.dcc.fc.up.pt/
Grail: Grail+. http://www.csit.upei.ca/~ccampeanu/Grail/
Hamming, R.W.: Error detecting and error correcting codes. Bell Syst. Tech. J. 26(2), 147–160 (1950)
Head, T., Weber, A.: Deciding code related properties by means of finite transducers. In: Capocelli, R., De Santis, A., Vaccaro, U. (eds.) Sequences II, Methods in Communication, Security, and Computer Science, pp. 260–272. Springer, New York (1993)
Hopcroft, J.E., Ullman, J.D.: Introduction to Automata Theory, Languages, and Computation. Addison-Wesley, Reading (1979)
Jürgensen, H.: Syntactic monoids of codes. Acta Cybernetica 14, 117–133 (1999)
Jürgensen, H., Konstantinidis, S.: Codes. In: Rozenberg and Salomaa [25], pp. 511–607
Konstantinidis, S.: Transducers and the properties of error-detection, error-correction and finite-delay decodability. JUCS 8, 278–291 (2002)
Konstantinidis, S., Meijer, C., Moreira, N., Reis, R.: Symbolic manipulation of code properties. Computing Research Repository (2015). arXiv:1504.04715v1
Konstantinidis, S., Moreira, N., Reis, R.: Channels with synchronization/substitution errors and computation of error control codes. Computing Research Repository (2016). arXiv:1601.06312v1
LaSer: Independent LAnguage SERver. http://laser.cs.smu.ca/independence/
Mateescu, A., Salomaa, A.: Formal languages: an introduction and a synopsis. In: Rozenberg and Salomaa [25], pp. 1–39
Nivat, M.: Elements de la théorie générale des codés. In: Automata Theory, pp. 278–294 (1966)
OpenFst: OpenFst Library. http://www.openfst.org/
Paluncic, F., Abdel-Ghaffar, K., Ferreira, H.: Insertion/deletion detecting codes and the boundary problem. IEEE Trans. Info. Theory 59(9), 5935–5943 (2013)
Raymond, D., Wood, D.: Grail: a C++ library for automata and expressions. J. Symbolic Comput. 17(4), 341–350 (1994)
Rozenberg, G., Salomaa, A. (eds.): Handbook of Formal Languages, vol. I. Springer-Verlag, Berlin (1997)
Sakarovitch, J.: Elements of Automata Theory. Cambridge University Press, New York (2009)
Sardinas, A.A., Patterson, G.W.: A necessary and sufficient condition for the unique decomposition of coded messages. IRE Int. Conven. Rec. 8, 104–108 (1953)
Shyr, H.J.: Free Monoids and Languages, 2nd edn. Hon Min Book Company, Taichung (1991)
Shyr, H.J., Thierrin, G.: Codes and binary relations. In: Malliavin, M.P. (ed.) Séminaire d’Algèbre Paul Dubreil Paris 1975–1976 (29ème Année). Lecture Notes in Mathematics, vol. 586, pp. 180–188. Springer, Heidelberg (1977)
Vaucanson: The Vaucanson Project. http://vaucanson-project.org/
Veanes, M.: Applications of symbolic finite automata. In: Konstantinidis, S. (ed.) CIAA 2013. LNCS, vol. 7982, pp. 16–23. Springer, Heidelberg (2013)
Yu, S.: Regular languages. In: Rozenberg and Salomaa [25], pp. 41–110
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing Switzerland
About this paper
Cite this paper
Konstantinidis, S., Meijer, C., Moreira, N., Reis, R. (2016). Implementation of Code Properties via Transducers. In: Han, YS., Salomaa, K. (eds) Implementation and Application of Automata. CIAA 2016. Lecture Notes in Computer Science(), vol 9705. Springer, Cham. https://doi.org/10.1007/978-3-319-40946-7_16
Download citation
DOI: https://doi.org/10.1007/978-3-319-40946-7_16
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-40945-0
Online ISBN: 978-3-319-40946-7
eBook Packages: Computer ScienceComputer Science (R0)