% 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”.
@TECHREPORT{Perun:859744,
author = {Perun, Konstantin and Rumpe, Bernhard and Plotnikov,
Dimitri and Trensch, Guido and Eppler, Jochen Martin and
Blundell, Inga and Morrison, Abigail},
title = {{R}eengineering {N}est{ML} {W}ith {P}ython {A}nd
{M}onticore},
number = {},
publisher = {Zenodo},
reportid = {FZJ-2019-00581,},
pages = {110 p.},
year = {2018},
abstract = {The NEST Modeling Language (NestML) is a domain-specific
modeling lan- guage developed with the aim to provide an
easy to use framework for the specification of executable
NEST simulator models. Since its introduction in the year
2012, many concepts and requirements were integrated into
the existing toolchain, while the programming language Java
as the underlying platform remained almost untouched, making
maintenance and extension of the framework by
neuroscientists a disproportionately complex and costly
process. This circumstance contradicts the basic principle
of NestML, namely to provide a modular and easy to extend
modeling language for the neuroscientific domain.More than
$90\%$ of the overall costs arising during the development
and usage of soft- ware systems originate in the maintenance
phase, a circumstance which makes foresighted planning and
design of software systems a crucial part of a software's
life-cycle. While the effects of errors and bad design in
programming in the small can be mostly mitigated by using
appropriate concepts, e.g., data abstraction and
modularization, wrongheaded decisions concerning the overall
architecture or platform make the software's operation
costly in the long term and affect the development over its
whole life cycle. Here, reengineering and especially the
changing of the environment or platform of the existing
systems is the approach of choice given the fact, that
systems often use no longer supported components, contain
errors in the overall foundation or simply do not correspond
to the existing requirements.This report deals with the
reengineering of the NestML tools collection and its
migration to Python as a new target platform. Given Python's
popularity in the neuroscientific domain, a migration
benefits the usability as well as integration into existing
systems, facilitates extensions by neuroscientists and makes
usage of bridge technologies unnecessary. In order to
accelerate the development and ensure modularity as well as
maintain- ability of the reengineered software, the
MontiCore Language Workbench will be used and extended by
Python as a new target platform for code generation.},
cin = {JSC / INM-6 / JARA-HPC},
cid = {I:(DE-Juel1)JSC-20090406 / I:(DE-Juel1)INM-6-20090406 /
$I:(DE-82)080012_20140620$},
pnm = {511 - Computational Science and Mathematical Methods
(POF3-511) / NESTML - A modelling language for spiking
neuron and synapse models for NEST (NESTML-20141210) / HBP
SGA1 - Human Brain Project Specific Grant Agreement 1
(720270) / HBP SGA2 - Human Brain Project Specific Grant
Agreement 2 (785907) / SLNS - SimLab Neuroscience
(Helmholtz-SLNS)},
pid = {G:(DE-HGF)POF3-511 / G:(DE-Juel1)NESTML-20141210 /
G:(EU-Grant)720270 / G:(EU-Grant)785907 /
G:(DE-Juel1)Helmholtz-SLNS},
typ = {PUB:(DE-HGF)29},
doi = {10.5281/ZENODO.1319653},
url = {https://juser.fz-juelich.de/record/859744},
}