000859744 001__ 859744 000859744 005__ 20240313094948.0 000859744 0247_ $$2doi$$a10.5281/ZENODO.1319653 000859744 0247_ $$2Handle$$a2128/21328 000859744 037__ $$aFZJ-2019-00581 000859744 041__ $$aen 000859744 088__ $$a 000859744 1001_ $$0P:(DE-HGF)0$$aPerun, Konstantin$$b0 000859744 245__ $$aReengineering NestML With Python And Monticore 000859744 260__ $$bZenodo$$c2018 000859744 300__ $$a110 p. 000859744 3367_ $$2DRIVER$$areport 000859744 3367_ $$2ORCID$$aREPORT 000859744 3367_ $$010$$2EndNote$$aReport 000859744 3367_ $$2DataCite$$aOutput Types/Report 000859744 3367_ $$0PUB:(DE-HGF)29$$2PUB:(DE-HGF)$$aReport$$breport$$mreport$$s1570523696_4590 000859744 3367_ $$2BibTeX$$aTECHREPORT 000859744 520__ $$aThe 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. 000859744 536__ $$0G:(DE-HGF)POF3-511$$a511 - Computational Science and Mathematical Methods (POF3-511)$$cPOF3-511$$fPOF III$$x0 000859744 536__ $$0G:(DE-Juel1)NESTML-20141210$$aNESTML - A modelling language for spiking neuron and synapse models for NEST (NESTML-20141210)$$cNESTML-20141210$$fA modelling language for spiking neuron and synapse models for NEST$$x1 000859744 536__ $$0G:(EU-Grant)720270$$aHBP SGA1 - Human Brain Project Specific Grant Agreement 1 (720270)$$c720270$$fH2020-Adhoc-2014-20$$x2 000859744 536__ $$0G:(EU-Grant)785907$$aHBP SGA2 - Human Brain Project Specific Grant Agreement 2 (785907)$$c785907$$fH2020-SGA-FETFLAG-HBP-2017$$x3 000859744 536__ $$0G:(DE-Juel1)Helmholtz-SLNS$$aSLNS - SimLab Neuroscience (Helmholtz-SLNS)$$cHelmholtz-SLNS$$x4 000859744 588__ $$aDataset connected to DataCite 000859744 7001_ $$0P:(DE-HGF)0$$aRumpe, Bernhard$$b1 000859744 7001_ $$0P:(DE-Juel1)169429$$aPlotnikov, Dimitri$$b2 000859744 7001_ $$0P:(DE-Juel1)168379$$aTrensch, Guido$$b3$$ufzj 000859744 7001_ $$0P:(DE-Juel1)142538$$aEppler, Jochen Martin$$b4$$eCorresponding author 000859744 7001_ $$0P:(DE-Juel1)166002$$aBlundell, Inga$$b5$$ufzj 000859744 7001_ $$0P:(DE-Juel1)151166$$aMorrison, Abigail$$b6$$ufzj 000859744 773__ $$a10.5281/ZENODO.1319653 000859744 8564_ $$uhttps://juser.fz-juelich.de/record/859744/files/18.07.23.NestMLWithMonticoreAndPython.pdf$$yOpenAccess 000859744 8564_ $$uhttps://juser.fz-juelich.de/record/859744/files/18.07.23.NestMLWithMonticoreAndPython.pdf?subformat=pdfa$$xpdfa$$yOpenAccess 000859744 909CO $$ooai:juser.fz-juelich.de:859744$$pdnbdelivery$$pec_fundedresources$$pVDB$$pdriver$$popen_access$$popenaire 000859744 9101_ $$0I:(DE-588b)5008462-8$$6P:(DE-Juel1)169429$$aForschungszentrum Jülich$$b2$$kFZJ 000859744 9101_ $$0I:(DE-588b)5008462-8$$6P:(DE-Juel1)168379$$aForschungszentrum Jülich$$b3$$kFZJ 000859744 9101_ $$0I:(DE-588b)5008462-8$$6P:(DE-Juel1)142538$$aForschungszentrum Jülich$$b4$$kFZJ 000859744 9101_ $$0I:(DE-588b)5008462-8$$6P:(DE-Juel1)166002$$aForschungszentrum Jülich$$b5$$kFZJ 000859744 9101_ $$0I:(DE-588b)5008462-8$$6P:(DE-Juel1)151166$$aForschungszentrum Jülich$$b6$$kFZJ 000859744 9131_ $$0G:(DE-HGF)POF3-511$$1G:(DE-HGF)POF3-510$$2G:(DE-HGF)POF3-500$$3G:(DE-HGF)POF3$$4G:(DE-HGF)POF$$aDE-HGF$$bKey Technologies$$lSupercomputing & Big Data$$vComputational Science and Mathematical Methods$$x0 000859744 9141_ $$y2018 000859744 915__ $$0StatID:(DE-HGF)0510$$2StatID$$aOpenAccess 000859744 920__ $$lyes 000859744 9201_ $$0I:(DE-Juel1)JSC-20090406$$kJSC$$lJülich Supercomputing Center$$x0 000859744 9201_ $$0I:(DE-Juel1)INM-6-20090406$$kINM-6$$lComputational and Systems Neuroscience$$x1 000859744 9201_ $$0I:(DE-82)080012_20140620$$kJARA-HPC$$lJARA - HPC$$x2 000859744 9801_ $$aFullTexts 000859744 980__ $$areport 000859744 980__ $$aVDB 000859744 980__ $$aI:(DE-Juel1)JSC-20090406 000859744 980__ $$aI:(DE-Juel1)INM-6-20090406 000859744 980__ $$aI:(DE-82)080012_20140620 000859744 980__ $$aUNRESTRICTED 000859744 981__ $$aI:(DE-Juel1)IAS-6-20130828