Skip to main content

Spiking neural P systems and their semantics in Haskell


We use the functional programming language Haskell to design semantic interpreters for the spiking neural P systems. Haskell provides an appropriate support for implementing the denotational semantics of a concurrent language inspired by the spiking neural P systems. This language and its semantics describe properly the structure and behaviour of the spiking neural P systems. The semantic interpreters capture accurately the nondeterministic behaviour, the time delays between firings and spikings, and the synchronization specific to spiking neural P systems.

This is a preview of subscription content, access via your institution.


  1. These components could be defined in BNF as pure syntactic entities, e.g., as lists.

  2. The language \({\mathcal {L}}_{snp}\) is similar to that in Ciobanu and Todoran (2019, 2022). The set of statements \((s\in ) S\) is similar to the set of statements employed in Ciobanu and Todoran (2019), but there are also differences. The construct \(\,{\mathsf {init}}\,\pi \,\) is lacking from Ciobanu and Todoran (2019). A version of the construct \(\,{\mathsf {send}}\,\pi \,a\,\) is provided in Ciobanu and Todoran (2019), but it has no initialization effect.

  3. The empty synchronous continuation Ce is used to handle steps where no spikes are emitted, e.g., because all neurons are closed and no neuron can move to the open status in the current step.

  4. In the original SN P systems (Ionescu et al. 2006), this role is played by the environment; this notion should not be confused with the notion of a semantic environment employed in this paper, which is specific to the denotational semantics (de Bakker and de Vink 1996).

  5. In the Haskell implementation available at, this program \(\rho _1\) is stored in variable    rho1::Prog   (in all files semSNP.hs, semSNP-rnd.hs and semSNP-fin.hs).

  6. The result coincides with the output obtained in Example 1 if we remove a pair of enclosing parentheses ’[’ and ’]’; the output obtained in Example 1 is a set (implemented as a Haskell list) of traces, rather than a single execution trace.

  7. An element of a powerdomain is a tree-like structure, or a collection of “traces” essentially equivalent to an unfolding of such a tree.

  8. Notice that executing (den rho3 7) of the nondeterministic program \(\rho _3\) by using the interpreter semSNP-fin.hs requires around 120 seconds on a processor Intel(R) Core(TM) i5-7200U with CPU @ 2.50 GHz, while executing the deterministic program \(\rho _1\) produces its output almost instantly.


  • Cabarle FG, Adorna HN, Martínez-del-Amor MA (2011) Simulating spiking neural P systems without delays using GPUs. Int J Nat Comput Res 2(2):19–31

    Article  Google Scholar 

  • Cabarle FG, Adorna HN, Péerez-Jiménez MJ, Song T (2015) Spiking neural P systems with structural plasticity. Neural Comput Appl 26(8):1905–1917

    Article  Google Scholar 

  • Ciobanu G, Todoran EN (2014) Continuation semantics for asynchronous concurrency. Fundam Inform 131(3–4):373–388

    MathSciNet  Article  Google Scholar 

  • Ciobanu G, Todoran EN (2017) Denotational semantics of membrane systems by using complete metric spaces. Theor Comput Sci 701:85–108

    MathSciNet  Article  Google Scholar 

  • Ciobanu G, Todoran EN (2019) A semantic investigation of spiking neural P systems. Lect Notes Comput Sci 11399:108–130

    MathSciNet  Article  Google Scholar 

  • Ciobanu G, Todoran EN (2021) Spiking neural P systems and their semantics in Haskell. Presented at the International Conference on Membrane Computing, ICMC

  • Ciobanu G, Todoran EN (2022) A process calculus for spiking neural P systems. Inform Sci. 604:298–319.

  • de Bakker JW, de Vink EP (1996) Control flow semantics. MIT Press, Cambridge

    MATH  Google Scholar 

  • Gheorghe M, Lefticaru R, Konur S, Niculescu IM, Adorna HN (2021) Spiking neural P systems: matrix representation and formal verification. J Membr Comput 3:133–148

    MathSciNet  Article  Google Scholar 

  • Gierz G, Hofmann KH, Keimel K, Lawson JD, Mislove M, Scott DS (2003) Continuous lattices and domains. Cambridge University Press, Cambridge

    Book  Google Scholar 

  • Ionescu M, Păun G, Yokomori T (2006) Spiking neural P systems. Fundam Inform 71:279–308

  • Ionescu M, Păun G, Pérez-Jiménez MJ, Rodriguez-Patón A (2011) Spiking neural P systems with several types of spikes. Int J of Comput Commun Control 6:647–655

    Article  Google Scholar 

  • Păun Gh (2002) Membrane computing. An introduction. Springer, Berlin, Heidelberg

  • Păun Gh, Rozenberg G, Salomaa A (eds) (2010) Handbook of Membrane Computing. Oxford University Press, Oxford

    MATH  Google Scholar 

  • Pan L, Păun Gh, Zhang G, Neri F (2017) Spiking neural P systems with communication on request. Int J Neural Syst 27(8):1750042

    Article  Google Scholar 

  • Peng H, Li B, Wang J, Song X, Wang T, Valencia-Cabrera L, Pérez-Hurtado I, Riscos-Núñez A, Pérez-Jiméenez MJ (2020) Spiking neural P systems with inhibitory rules. Knowl Based Syst 188:105064

    Article  Google Scholar 

  • Pérez-Hurtado I, Orellana-Martín D, Martínez-del-Amor MA, Valencia-Cabrera L, Riscos-Núñez A (2022) A new P-Lingua toolkit for agile development in membrane computing. Inform Sci 587:1–22

    Article  Google Scholar 

  • Rabhi F, Lapalme G (1999) Algorithms: a functional programming approach. Addison-Wesley, Boston

    Google Scholar 

  • Rozenberg G, Salomaa A (eds) (1998) Handbook of formal languages, vol 3. Springer, Berlin

    Google Scholar 

  • Schmidt DA (1986) Denotational semantics: a methodology for language development. Allyn & Bacon, Bacon

    Google Scholar 

  • Scott DS (1980) What is denotational semantics? MIT laboratory for computer science distinguished lecture series, MIT Cambridge

  • Song X, Valencia-Cabrera L, Peng H, Wang J, Pérez-Jiménez MJ (2021) Spiking neural P systems with delay on synapses. Int J Neural Syst 31(1):2050042

    Article  Google Scholar 

  • Todoran EN (2000) Metric semantics for synchronous and asynchronous communication: a continuation-based approach. Electron Notes Theor Comput Sci 28:101–127

    Article  Google Scholar 

  • Verlan S, Freund R, Alhazov A, Ivanov S, Pan L (2020) A formal framework for spiking neural P systems. J Membr Comput 2(4):355–368

    MathSciNet  Article  Google Scholar 

Download references

Author information

Authors and Affiliations


Corresponding author

Correspondence to Eneia Nicolae Todoran.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Ciobanu, G., Todoran, E.N. Spiking neural P systems and their semantics in Haskell. Nat Comput (2022).

Download citation

  • Accepted:

  • Published:

  • DOI:


  • Spiking neural P systems
  • Semantic interpreter
  • Denotational semantics
  • Functional language Haskell