Newer
Older
=====================================
The Algorithms library toolkit (ALT) is a collection of implementations
of various types of automata, grammars, and other common structires along
with mathematical implementation of algorithms over these structures.
Originaly developed at Faculty of Information Technology of Czech Technical
University in Prague. It supposed to be a reference implementation of formal
algorithms as-are in papers. It's interface allows practical reuse of existing
algorithms in form of by pipe comunicating, partially using a query language in command
line, and partially using a GUI interface.
Details of the latest version can be found visiting our [gitlab project page][1].
You can also take look at our [prebuilt Docker images][5].
Project is pure C++ builded by `cmake`. Some tests are handled by
* `g++ >= 6.3` or `clang++ >= 5.0` (compilation in C++17)
Libraries:
* `tclap`
* `libxml2`
* `readline`
For GUI, you will need also the following libraries:
* `jsoncpp`
* `graphviz`
Optional dependencies:
* `doxygen` (for documentation generation)
* `graphviz` (for documentation generation and automata visualizations)
Installation
------------
1. Clone the repo: `git clone` or download sources of [stable release][3]
and extract it.
2. Change directory and create a build folder: `cd algorithms-library && mkdir build`.
3. Generate `CMakeLists`:
- `../CMake/generate.py -wm` if you want to build whole project
- or `../CMake/generate.py -wm -g cli` if you want to build cli only
- or `../CMake/generate.py -wm -p alib2str` if you want to build only `alib2str` and its dependencies
4. Run `cmake` and build: `cmake .. && make`
5. Install: `make install` or `make DESTDIR=./install install` for local install.
6. Run :)
* *Optional step:* Generate documentation by executing `make doc`.
Developer documentation can be generated using `make doc` command (requires
Feel free to [fork][4] this project and send your merge requests there.
Developers
----------
The formatting of the code in ALT is defined by *uncrustify* configuration file
and *clang-format* configuration file in cooperation (both had some
side-effects). Every developer contributing to the project shall format the
code before making the commit. Pre-commit hook and both configuration
files are present in the repository.
Please install `uncrustify` and `clang-format`. Then move/copy `.pre-commit`
file to `.git/hooks/pre-commit`.
Editor configuration for this project is provided by [editorconfig][6].
* If you want to be informed about new code releases, bug fixes,
security fixes, general news and information about the ALT
subscribe to the ?? mailing list as described under ??
* If you want freely available support for running ALT please see the
* If you have a concrete bug report for ALT please see the instructions
subscribe to the ?? mailing list as described at ??
* Ing. Jan Trávníček,
* Ing. Tomáš Pecka,
* Ing. Štěpán Plachý,
* et. al.
[1]: https://gitlab.fit.cvut.cz/algorithms-library-toolkit/automata-library
[3]: https://gitlab.fit.cvut.cz/algorithms-library-toolkit/automata-library/tags
[4]: https://gitlab.fit.cvut.cz/algorithms-library-toolkit/automata-library/forks/new
[5]: https://gitlab.fit.cvut.cz/algorithms-library-toolkit/automata-library/container_registry