Abstract
We introduce a domain-specific language (DSL) for creating sets of tile types for simulations of the abstract Tile Assembly Model. The language defines objects known as tile templates, which represent related groups of tiles, and a small number of basic operations on tile templates that help to eliminate the error-prone drudgery of enumerating such tile types manually or with low-level constructs of general-purpose programming languages. The language is implemented as a class library in Python (a so-called internal DSL), but is presented independently of Python or object-oriented programming, with emphasis on support for a visual editing tool for creating large sets of complex tile types.
This research was partially supported by NSF grants 0652569 and 0728806.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Becker, F.: Pictures worth a thousand tiles, a geometrical programming language for self-assembly. Theoretical Computer Science (to appear)
Blum, M.: On the size of machines. Information and Control 11(3), 257–265 (1967)
Chou, H.-H., Huang, W., Reggia, J.A.: The Trend cellular automata programming environment. SIMULATION: Transactions of The Society for Modeling and Simulation International 78, 59–75 (2002)
Fowler, M.: Language workbenches: The killer-app for domain specific languages? (June 2005), http://martinfowler.com/articles/languageWorkbench.html
Kao, M.-Y., Schweller, R.T.: Reducing tile complexity for self-assembly through temperature programming. In: Proceedings of the 17th Annual ACM-SIAM Symposium on Discrete Algorithms (SODA 2006), Miami, Florida, January 2006, pp. 571–580 (2007)
Lathrop, J.I., Lutz, J.H., Summers, S.M.: Strict self-assembly of discrete Sierpinski triangles. Theoretical Computer Science 410, 384–405 (2009)
Patitz, M.J.: Simulation of self-assembly in the abstract tile assembly model with ISU TAS. In: 6th Annual Conference on Foundations of Nanoscience: Self-Assembled Architectures and Devices, Snowbird, Utah, USA, April 20-24 (to appear, 2009)
Reif, J.H., Sahu, S., Yin, P.: Complexity of graph self-assembly in accretive systems and self-destructible systems. In: Carbone, A., Pierce, N.A. (eds.) DNA 2005. LNCS, vol. 3892, pp. 257–274. Springer, Heidelberg (2006)
Rothemund, P.W.K., Winfree, E.: The program-size complexity of self-assembled squares (extended abstract). In: STOC 2000: Proceedings of the thirty-second annual ACM Symposium on Theory of Computing, pp. 459–468. ACM, New York (2000)
Seeman, N.C.: Nucleic-acid junctions and lattices. Journal of Theoretical Biology 99, 237–247 (1982)
Soloveichik, D., Winfree, E.: Complexity of compact proofreading for self-assembled patterns. In: Carbone, A., Pierce, N.A. (eds.) DNA 2005. LNCS, vol. 3892, pp. 305–324. Springer, Heidelberg (2006)
Soloveichik, D., Winfree, E.: Complexity of self-assembled shapes. SIAM Journal on Computing 36(6), 1544–1569 (2007)
Spicher, A., Michel, O., Giavitto, J.-L.: Algorithmic self-assembly by accretion and by carving in MGS. In: Talbi, E.-G., Liardet, P., Collet, P., Lutton, E., Schoenauer, M. (eds.) EA 2005. LNCS, vol. 3871, pp. 189–200. Springer, Heidelberg (2006)
Winfree, E.: Simulations of computing by self-assembly. Tech. Report CaltechCSTR:1998.22. California Institute of Technology
Winfree, E.: Algorithmic self-assembly of DNA. Ph.D. thesis, California Institute of Technology (June 1998)
Winfree, E., Bekbolatov, R.: Proofreading tile sets: Error correction for algorithmic self-assembly. In: Chen, J., Reif, J.H. (eds.) DNA 2003. LNCS, vol. 2943, pp. 126–144. Springer, Heidelberg (2004)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Doty, D., Patitz, M.J. (2009). A Domain-Specific Language for Programming in the Tile Assembly Model. In: Deaton, R., Suyama, A. (eds) DNA Computing and Molecular Programming. DNA 2009. Lecture Notes in Computer Science, vol 5877. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-10604-0_3
Download citation
DOI: https://doi.org/10.1007/978-3-642-10604-0_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-10603-3
Online ISBN: 978-3-642-10604-0
eBook Packages: Computer ScienceComputer Science (R0)