Giter Club home page Giter Club logo

mpw-modeling-framework's People

Contributors

fumapps avatar

Stargazers

 avatar

Watchers

 avatar  avatar

mpw-modeling-framework's Issues

Implement a Version-Updater Tool

Motivation

For updating versions in the MPW Framework or MPW Simulators, currently it is some effort to update all versions correctly.
To save time and avoid mistakes when manually updating the versions for a release/snapshot, a tool would help a lot.

Note

See the releng/release-checklist.md of the framework/simulator repos.

Slow Simulation of big Stages (>= 50x50)

Reproduce

  • Use the Java hamster-simulator
  • Save the attached territory on the file system
  • Execute a hamster-program, which loads this territory
        loadTerritoryFromResourceFile("de.unistuttgart.hamster.territories/territory50x50.ter");

Symptom: The initialization of the territory is slow, it takes a few seconds.

Assumption: With bigger territories, the time increases quadratically.

Reason

The editor commands like addWallToTile are generated with a graph pattern matching, which makes no used of efficient Tile search.
In the sample territory, nearly for each tile one wall is placed. This leads to a quadratic algorithm, since for each tile, each other tile has to be searched in the worst case, until the tile with a given location is found.

Solution Proposal

For the two-dimensional tile collection, an indexed access in the generated code should fix the performance issue. An idea could be to determine that a Tile object shall be matched by a x and y coordinate in the QVTo logic.

Then a special ReferenceCondition will be inserted, which is generated as a special getter call on the underlying Stage.
Also, the Stage class itself has to be extended with a special indexed-based getter for obtaining Tile objects.

Generate Kotlin

Motivation

Kotlin is a modern language, which has interesting features like multi-language support. With Kotlin, the generated simulators could also be used for a browser-based execution.

Since Kotlin covers several concepts of Java, the adaption from the Java generator to a Kotlin generator is expected to be relatively easy.

Refactor C++ Simulators: Extract Common UI Code into MPW Framework

Motivation

Currently, the SDL based UI rendering code is duplicated in the Hamster and Kara simulator. This is bad, hence the common code shall be extracted into the C++ MPW Simulator Framework.

Note

This will introduce a dependency in the C++ MPW Simulator Framework to the SDL2/Nanogui libraries.

Support JML Constraints

Motivation

Currently, for Java the Query-DSL constraints are generated as simple comments.
Since the abstract syntax is provided with enough details about the constraints, these comments could also be generated in valid JML syntax.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.