{"id":20149236,"url":"https://github.com/petrenko-alex/array-range-analyzer","last_synced_at":"2026-05-17T03:46:54.603Z","repository":{"id":110602068,"uuid":"291443933","full_name":"petrenko-alex/array-range-analyzer","owner":"petrenko-alex","description":"[Архив 2015] Анализ выхода за пределы массива / Array index out of bounds analyzer","archived":false,"fork":false,"pushed_at":"2020-09-08T18:53:41.000Z","size":21897,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-14T03:13:52.944Z","etag":null,"topics":["array","array-analysis","cpp","out-of-bounds","qt5","visualstudio"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/petrenko-alex.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-08-30T09:57:53.000Z","updated_at":"2020-09-21T17:22:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"712e7375-2bb7-4fab-9bd4-1e7eecd1face","html_url":"https://github.com/petrenko-alex/array-range-analyzer","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/petrenko-alex/array-range-analyzer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petrenko-alex%2Farray-range-analyzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petrenko-alex%2Farray-range-analyzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petrenko-alex%2Farray-range-analyzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petrenko-alex%2Farray-range-analyzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/petrenko-alex","download_url":"https://codeload.github.com/petrenko-alex/array-range-analyzer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petrenko-alex%2Farray-range-analyzer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33127002,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T18:38:32.183Z","status":"online","status_checked_at":"2026-05-17T02:00:05.366Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["array","array-analysis","cpp","out-of-bounds","qt5","visualstudio"],"created_at":"2024-11-13T22:42:31.647Z","updated_at":"2026-05-17T03:46:54.587Z","avatar_url":"https://github.com/petrenko-alex.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Array Range Analyzer #\n\nКонсольная утилита для анализа переменной массива на языке С/С++.   \nПозволяет отследить выход за пределы массива и обращение к несуществующему элементу при составлении циклов с заданным диапазонном изменения переменной массива.   \nПригодится при разработке других программ, содержащих большое количество повторяющихся действий и сложное выражение изменения переменных цикла внутри тела цикла.\n\n## Ограничения ##\n\n1. Поддерживаемые операции в выражении:\n* +, -, *, /, -1, %  \n* ++, -- (как постфиксная, так и префиксная)  \n* =, +=, -=, *=, /=  \n* []  \n* (int)   \n* abs(), ceil(), floor(), pow()  \n\n2. Выражение в формате обратной польской записи\n3. Не допускается использование вложенных квадратных скобок\n4. Поддерживается не более 3 переменных цикла.\n\n## Примечания ##\n\n1. При использовании нескольких переменных, циклы считаются вложенными.\n2. Левые и правые границы переменных считаются вложенными.\n3. Предоставляется информация только о первом выходе массива, но для каждого массива и измерения(если не возникает критическая ошибка).\n4. Если задается положительный шаг переменной цикла, то цикл будет считаться возрастающим; если отрицательный – цикл убывающий.\n5. Для обнаружения зацикливания переменных массива (когда их значение повторяется от шага к шагу), можно задать счетчик зацикливания. Счетчик определяет максимальное количество повторных значений переменной.\n\n## Использование ##\n**Вход:**\n1. Однострочное выражение на языке C или С++\n2. Информация об использующихся в выражении переменных\n3. Информация об использующихся в выражении массивах\n\n**Выход:**\n1. Файл с результатами проверки\n2. Файл свозникшими ошибками(если они есть)\n\nArrayRangeAnalyzer.exe \u003cexpression.txt\u003e \u003carrs.xml\u003e \u003cvars.xml\u003e \u003cloop-counter-value\u003e\n- expression.txt - файл с выражением\n- arrs.xml - файл с информацией о массивах\n- vars.xml - файл с информацией о переменных\n- loop-counter-value - счетчик зацикливания  \n    \n[Примеры использования](FunctionalTests/)  \n[Документация](Docs/)  \n    \n    \n  Проект написан на языке C++ в учебных целях. Скомпилирован в Visual Studio 2013. Platform Toolset v120. Дополнительно используется Qt 5.1.1\n  \n  ![Пример 1 - запуск](Img/example-1-run.png)\n  ![Пример 1 - результаты](Img/example-1-result.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetrenko-alex%2Farray-range-analyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpetrenko-alex%2Farray-range-analyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetrenko-alex%2Farray-range-analyzer/lists"}