https://github.com/petrenko-alex/array-range-analyzer
[Архив 2015] Анализ выхода за пределы массива / Array index out of bounds analyzer
https://github.com/petrenko-alex/array-range-analyzer
array array-analysis cpp out-of-bounds qt5 visualstudio
Last synced: 3 months ago
JSON representation
[Архив 2015] Анализ выхода за пределы массива / Array index out of bounds analyzer
- Host: GitHub
- URL: https://github.com/petrenko-alex/array-range-analyzer
- Owner: petrenko-alex
- License: bsd-3-clause
- Created: 2020-08-30T09:57:53.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2020-09-08T18:53:41.000Z (almost 5 years ago)
- Last Synced: 2025-01-13T11:30:36.581Z (5 months ago)
- Topics: array, array-analysis, cpp, out-of-bounds, qt5, visualstudio
- Language: C++
- Homepage:
- Size: 20.9 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Array Range Analyzer #
Консольная утилита для анализа переменной массива на языке С/С++.
Позволяет отследить выход за пределы массива и обращение к несуществующему элементу при составлении циклов с заданным диапазонном изменения переменной массива.
Пригодится при разработке других программ, содержащих большое количество повторяющихся действий и сложное выражение изменения переменных цикла внутри тела цикла.## Ограничения ##
1. Поддерживаемые операции в выражении:
* +, -, *, /, -1, %
* ++, -- (как постфиксная, так и префиксная)
* =, +=, -=, *=, /=
* []
* (int)
* abs(), ceil(), floor(), pow()2. Выражение в формате обратной польской записи
3. Не допускается использование вложенных квадратных скобок
4. Поддерживается не более 3 переменных цикла.## Примечания ##
1. При использовании нескольких переменных, циклы считаются вложенными.
2. Левые и правые границы переменных считаются вложенными.
3. Предоставляется информация только о первом выходе массива, но для каждого массива и измерения(если не возникает критическая ошибка).
4. Если задается положительный шаг переменной цикла, то цикл будет считаться возрастающим; если отрицательный – цикл убывающий.
5. Для обнаружения зацикливания переменных массива (когда их значение повторяется от шага к шагу), можно задать счетчик зацикливания. Счетчик определяет максимальное количество повторных значений переменной.## Использование ##
**Вход:**
1. Однострочное выражение на языке C или С++
2. Информация об использующихся в выражении переменных
3. Информация об использующихся в выражении массивах**Выход:**
1. Файл с результатами проверки
2. Файл свозникшими ошибками(если они есть)ArrayRangeAnalyzer.exe
- expression.txt - файл с выражением
- arrs.xml - файл с информацией о массивах
- vars.xml - файл с информацией о переменных
- loop-counter-value - счетчик зацикливания
[Примеры использования](FunctionalTests/)
[Документация](Docs/)
Проект написан на языке C++ в учебных целях. Скомпилирован в Visual Studio 2013. Platform Toolset v120. Дополнительно используется Qt 5.1.1

