Neural Processing Letters

, Volume 40, Issue 1, pp 1–23 | Cite as

ENAMeL: A Language for Binary Correlation Matrix Memories

Reducing the Memory Constraints of Matrix Memories
  • Nathan Burles
  • Simon O’Keefe
  • James Austin
  • Stephen Hobson


Despite their relative simplicity, correlation matrix memories (CMMs) are an active area of research, as they are able to be integrated into more complex architectures such as the Associative Rule Chaining Architecture (ARCA) “Austin et al. (International conference on artificial neural networks, pp 49–56, 2012)”. In this architecture, CMMs are used effectively in order to reduce the time complexity of a tree search from \(O(b^d)\) to \(O(d)\)—where \(b\) is the branching factor and \(d\) is the depth of the tree. This paper introduces the Extended Neural Associative Memory Language (ENAMeL)—a domain specific language developed to ease development of applications using CMMs. We discuss various considerations required while developing the language, and techniques used to reduce the memory requirements of CMM-based applications. Finally we show that the memory requirements of ARCA when using the ENAMeL interpreter compare favourably to our original results “Austin et al. (International conference on artificial neural networks, pp 49–56, 2012)” run in MATLAB.


Correlation matrix memory Associative memory Compact representation Domain specific language Rule chaining 



Our thanks to Ken Lees for his initial work on developing the syntax of ENAMeL. Financial support from the Engineering and Physical Sciences Research Council is gratefully acknowledged.

Supplementary material


  1. 1.
    Van Deursen A, Klint P, Visser J (2000) Domain-specific languages: an annotated bibliography. ACM Sigplan Notices 35(6):26–36. doi: 10.1145/352029.352035 CrossRefGoogle Scholar
  2. 2.
    Brewer G (2008) Spiking cellular associative neural networks for pattern recognition. Ph.D. Thesis, University of YorkGoogle Scholar
  3. 3.
    Shanker KPS, Turner A, Sherly E, Austin J (2010) Sequential data mining using correlation matrix memory. In: International conference on network information technology, pp 470–472. doi: 10.1109/ICNIT.2010.5508469
  4. 4.
    Spinellis D (2001) Notable design patterns for domain-specific languages. J Syst Softw 56:91–99. doi: 10.1016/S0164-1212(00)00089-3 CrossRefGoogle Scholar
  5. 5.
    Mernik M, Heering J, Sloane AM (2005) When and how to develop domain-specific languages. ACM Comput Surv (CSUR) 37:316–344. doi: 10.1145/1118890.1118892 CrossRefGoogle Scholar
  6. 6.
    Kosar T, Lopez PEM, Barrientos PA, Mernik M (2008) A preliminary study on various implementation approaches of domain-specific language. Inf Softw Technol 50:390–405. doi: 10.1016/j.infsof.2007.04.002 CrossRefGoogle Scholar
  7. 7.
    Ladd DA, Ramming JC (1994) Two application languages in software production. In: USENIX very high level languages symposium proceeding 1994, pp 169–178Google Scholar
  8. 8.
    Van Deursan A, Klint P (1998) Little languages: little maintenance? J Softw Maintenance 10:75–92. doi: 10.1002/(SICI)1096-908X(199803/04)10:2<75:AID-SMR168>3.0.CO;2-5 Google Scholar
  9. 9.
    Kieburtz RB, McKinney L, Bell JM, Hook J, Kotov A, Lewis J, Oliva DP, Sheard T, Smith I, Walton L (1996) A software engineering experiment in software component generation. In: 18th International conference on software engineering, pp 542–552Google Scholar
  10. 10.
    Basu A (1997) A language-based approach to protocol construction. Ph.D. Thesis, Cornell UniversityGoogle Scholar
  11. 11.
    Bruce D (1997) What makes a good domain-specific language? APOSTLE, and its approach to parallel discrete event simulation. ACM SIGPLAN Workshop on Domain-Specific Languages, pp 17–35Google Scholar
  12. 12.
    Menon V, Keshav P (2000) A case for source-level transformations in MATLAB. ACM SIGPLAN Notices 35:53–65. doi: 10.1145/331960.331972 CrossRefGoogle Scholar
  13. 13.
    Krueger CW (1992) Software reuse. ACM Comput Surv (CSUR) 24:131–183. doi: 10.1145/130844.130856 CrossRefGoogle Scholar
  14. 14.
    Willshaw DJ, Buneman OP, Longuet-Higgins HC (1969) Non-holographic associative memory. Nature 222:960–962. doi: 10.1038/222960a0 CrossRefGoogle Scholar
  15. 15.
    Ritter H, Martinetz T, Schulten K, Barsky D, Tesch M, Kates R (1992) Neural computation and self-organizing maps: an introduction. Addison Wesley, Redwood CityzbMATHGoogle Scholar
  16. 16.
    Austin J, Stonham TJ (1987) Distributed associative memory for use in scene analysis. Image Vis Comput 5:251–260. doi: 10.1016/0262-8856(87)90001-1 CrossRefGoogle Scholar
  17. 17.
    Hobson S, Austin J (2009) Improved storage capacity in correlation matrix memories storing fixed weight codes. In: International conference on artificial neural networks, pp 728–736. doi: 10.1007/978-3-642-04274-4_75
  18. 18.
    Baum EB, Moody J, Wilczek F (1988) Internal representations for associative memory. Biol Cybern 59:217–228. doi: 10.1007/BF00332910 CrossRefzbMATHGoogle Scholar
  19. 19.
    Orovas C, Austin J (1997) Cellular associative neural networks for image interpretation. In: Sixth international conference on image processing and its applications, pp 665–669. doi: 10.1049/cp:19970978
  20. 20.
    Austin J, Hobson S, Burles N, O’Keefe S (2012) A rule chaining architecture using a correlation matrix memory. In: International conference on artificial neural networks, pp 49–56. doi: 10.1007/978-3-642-33269-2_7
  21. 21.
    Eisenstat SC, Gursky MC, Schultz MH, Sherman AH (1982) Yale sparse matrix package I: the symmetric codes. Int J Numer Methods Eng 18:1145–1151. doi: 10.1002/nme.1620180804 CrossRefzbMATHGoogle Scholar
  22. 22.
    Russell SJ, Norvig P, Canny JF, Malik JM, Edwards DD (1995) Artificial intelligence: a modern approach. Prentice Hall, Englewood CliffszbMATHGoogle Scholar
  23. 23.
    Austin J (1992) Parallel distributed computation. In: International conference on artificial neural networks, 1992Google Scholar

Copyright information

© Springer Science+Business Media New York 2013

Authors and Affiliations

  • Nathan Burles
    • 1
  • Simon O’Keefe
    • 1
  • James Austin
    • 1
  • Stephen Hobson
    • 1
  1. 1.Advanced Computer Architectures Group, Department of Computer ScienceUniversity of YorkYorkUK

Personalised recommendations