GithubHelp home page GithubHelp logo

cagdasulas / miss_hit Goto Github PK

View Code? Open in Web Editor NEW

This project forked from florianschanda/miss_hit

0.0 1.0 0.0 1.58 MB

MATLAB Independent, Small & Safe, High Integrity Tools

License: GNU General Public License v3.0

Python 68.40% MATLAB 11.32% M 0.10% Makefile 0.06% Mathematica 0.02% HTML 20.11%

miss_hit's Introduction

MATLAB Independent, Small & Safe, High Integrity Tools

MATLAB is a popular programming language in many engineering disciplines, intended for the fast development of prototypes. But as we all know, prototypes make it into production all the time, so now you're stuck. Unfortunately, there are no style checkers or "good" static analysis tools for MATLAB. This project attempts to fill this gap.

If you have MATLAB in your production code and want to improve code quality then this tool-suite is for you.

Tools & Documentation

All tools and language features are documented here: https://florianschanda.github.io/miss_hit/

We intend to provide more tools later, please refer to the roadmap for more information.

Please refer to the release notes for a summary of recent changes and known issues.

Installing and using MISS_HIT

Just check out the repository and put it on your path. That's it. MISS_HIT does not require any python packages or libraries.

To use MISS_HIT you just give it a set of files to process.

$ mh_style.py my_file.m

Configuration is described in the user manual(s).

The version of Python I am using is 3.6.9 but any earlier or later version should also work. I am not using any overly fancy language features.

If you want to help develop, you will also need Pylint (at least version 2.4.2).

Challenges

There are serious issues present in the MATLAB and Octave languages on all levels (lexical structure, parsing, and semantics) that make it very difficult to create any tool processing them. In fact github is littered with incomplete attempts and buggy parsers. The usual question is "but what about Octave?"; it is a similar language, but it is not compatible with MATLAB. If your problem is parsing MATLAB then the Octave parser will not help you. Even very simple statements such as x = [1++2] mean different things (3 in MATLAB, syntax error in Octave).

We've documented the key issues we've faced and how we've resolved them.

Copyright

MISS_HIT is licensed under the GNU GPL version 3 as described in LICENSE.

The vast majority of this work is (C) Florian Schanda. Contributions from the following people and entities are under their copyright, with the same license:

  • Zenuity AB
  • Alina Boboc

Copyright of octave tests

This project includes modified/adapted parts of the GNU Octave testsuite under tests/parser/octave_*. These are (c) their original authors. Each file there describes from which file they derive.

Note on parser tests

Some of the parser tests include code samples and documentation snippets from the publically available MathWorks website. An attribution (in comment form) is always included in these cases.

Note on the documentation assets

The documentation uses feather icons which are licensed under the MIT License.

miss_hit's People

Contributors

florianschanda avatar 17as avatar

Watchers

James Cloos avatar

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.