A Domain-Specific Language for Programming in the Tile Assembly Model

  • David Doty
  • Matthew J. Patitz
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5877)


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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Becker, F.: Pictures worth a thousand tiles, a geometrical programming language for self-assembly. Theoretical Computer Science (to appear)Google Scholar
  2. 2.
    Blum, M.: On the size of machines. Information and Control 11(3), 257–265 (1967)MATHCrossRefMathSciNetGoogle Scholar
  3. 3.
    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)MATHCrossRefGoogle Scholar
  4. 4.
    Fowler, M.: Language workbenches: The killer-app for domain specific languages? (June 2005), http://martinfowler.com/articles/languageWorkbench.html
  5. 5.
    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)Google Scholar
  6. 6.
    Lathrop, J.I., Lutz, J.H., Summers, S.M.: Strict self-assembly of discrete Sierpinski triangles. Theoretical Computer Science 410, 384–405 (2009)MATHCrossRefMathSciNetGoogle Scholar
  7. 7.
    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)Google Scholar
  8. 8.
    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)CrossRefGoogle Scholar
  9. 9.
    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)CrossRefGoogle Scholar
  10. 10.
    Seeman, N.C.: Nucleic-acid junctions and lattices. Journal of Theoretical Biology 99, 237–247 (1982)CrossRefGoogle Scholar
  11. 11.
    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)CrossRefGoogle Scholar
  12. 12.
    Soloveichik, D., Winfree, E.: Complexity of self-assembled shapes. SIAM Journal on Computing 36(6), 1544–1569 (2007)MATHCrossRefMathSciNetGoogle Scholar
  13. 13.
    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)CrossRefGoogle Scholar
  14. 14.
    Winfree, E.: Simulations of computing by self-assembly. Tech. Report CaltechCSTR:1998.22. California Institute of TechnologyGoogle Scholar
  15. 15.
    Winfree, E.: Algorithmic self-assembly of DNA. Ph.D. thesis, California Institute of Technology (June 1998)Google Scholar
  16. 16.
    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)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • David Doty
    • 1
  • Matthew J. Patitz
    • 1
  1. 1.Department of Computer ScienceIowa State UniversityAmesUSA

Personalised recommendations