% IMPORTANT: The following is UTF-8 encoded.  This means that in the presence
% of non-ASCII characters, it will not work with BibTeX 0.99 or older.
% Instead, you should use an up-to-date BibTeX implementation like “bibtex8” or
% “biber”.

@ARTICLE{Zaytsev:152183,
      author       = {Zaytsev, Yury and Morrison, Abigail},
      title        = {{C}y{NEST}: a maintainable {C}ython-based interface for the
                      {NEST} simulator},
      journal      = {Frontiers in neuroinformatics},
      volume       = {8},
      issn         = {1662-5196},
      address      = {Lausanne},
      publisher    = {Frontiers Research Foundation},
      reportid     = {FZJ-2014-01957},
      pages        = {23},
      year         = {2014},
      abstract     = {NEST is a simulator for large-scale networks of spiking
                      point neuron models (Gewaltig and Diesmann, 2007).
                      Originally, simulations were controlled via the Simulation
                      Language Interpreter (SLI), a built-in scripting facility
                      implementing a language derived from PostScript (Adobe
                      Systems, Inc., 1999). The introduction of PyNEST (Eppler et
                      al., 2008), the Python interface for NEST, enabled users to
                      control simulations using Python. As the majority of NEST
                      users found PyNEST easier to use and to combine with other
                      applications, it immediately displaced SLI as the default
                      NEST interface. However, developing and maintaining PyNEST
                      has become increasingly difficult over time. This is partly
                      because adding new features requires writing low-level C++
                      code intermixed with calls to the Python/C API, which is
                      unrewarding. Moreover, the Python/C API evolves with each
                      new version of Python, which results in a proliferation of
                      version-dependent code branches. In this contribution we
                      present the re-implementation of PyNEST in the Cython
                      language, a superset of Python that additionally supports
                      the declaration of C/C++ types for variables and class
                      attributes, and provides a convenient foreign function
                      interface (FFI) for invoking C/C++ routines (Behnel et al.,
                      2011). Code generation via Cython allows the production of
                      smaller and more maintainable bindings, including increased
                      compatibility with all supported Python releases without
                      additional burden for NEST developers. Furthermore, this
                      novel approach opens up the possibility to support
                      alternative implementations of the Python language at no
                      cost given a functional Cython back-end for the
                      corresponding implementation, and also enables
                      cross-compilation of Python bindings for embedded systems
                      and supercomputers alike.},
      cin          = {JSC / IAS-6 / INM-6 / JARA-HPC},
      ddc          = {610},
      cid          = {I:(DE-Juel1)JSC-20090406 / I:(DE-Juel1)IAS-6-20130828 /
                      I:(DE-Juel1)INM-6-20090406 / $I:(DE-82)080012_20140620$},
      pnm          = {411 - Computational Science and Mathematical Methods
                      (POF2-411) / SMHB - Supercomputing and Modelling for the
                      Human Brain (HGF-SMHB-2013-2017) / HASB - Helmholtz Alliance
                      on Systems Biology (HGF-SystemsBiology) / W2Morrison - W2/W3
                      Professorinnen Programm der Helmholtzgemeinschaft
                      (B1175.01.12) / SLNS - SimLab Neuroscience (Helmholtz-SLNS)},
      pid          = {G:(DE-HGF)POF2-411 / G:(DE-Juel1)HGF-SMHB-2013-2017 /
                      G:(DE-Juel1)HGF-SystemsBiology / G:(DE-HGF)B1175.01.12 /
                      G:(DE-Juel1)Helmholtz-SLNS},
      typ          = {PUB:(DE-HGF)16},
      UT           = {WOS:000348106800001},
      doi          = {10.3389/fninf.2014.00023},
      url          = {https://juser.fz-juelich.de/record/152183},
}