О разработке стандартов анализа исходных кодов программного обеспечения на материалах свободного ПО (Алексей Пустыгин, OSEDUCONF-2020) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) |
StasFomin (обсуждение | вклад) |
||
(не показаны 4 промежуточные версии этого же участника) | |||
;{{SpeakerInfo}}: {{Speaker|Алексей Пустыгин}} <blockquote> Феномен программного обеспечения с открытым исходным текстом открывает исследователю широкие перспективы изучения алгоритмов и использования данных в большом объёме доступных проектов. </blockquote> {{VideoSection}} {{vimeoembed|408662767|800|450}} {{youtubelink|}} |3ph4UxHO8qc}} {{SlidesSection}} [[File:О разработке стандартов анализа исходных кодов на материалах свободного ПО (Алексей Пустыгин, OSEDUCONF-2020).pdf|left|page=-|300px]] {{----}} == Thesis == |} На основании прототипов инструментов анализа исходных текстов открытого ПО в опытных работах построения эквивалентных представлений созданы спецификации стандартов, расширяющих существующую методическую базу программной документации. {{----}} [[File:{{#setmainimage:О разработке стандартов анализа исходных кодов на материалах свободного ПО (Алексей Пустыгин, OSEDUCONF-2020)!.jpg}}|center|640px]] {{LinksSection}} <!-- <blockquote>[©]</blockquote> --> {{fblink|2644647135788291}} {{vklink|170866}} <references/> [[Категория:OSEDUCONF-2020]] [[Категория:Статический анализ кода]] {{stats|disqus_comments=0|refresh_time=2020-07-18T23:30:272021-08-31T17:36:31.605389735031|vimeo_plays=316|youtube_comments=0|youtube_plays=0}}31}} |
Текущая версия на 12:01, 1 ноября 2021
- Докладчик
- Алексей Пустыгин
Феномен программного обеспечения с открытым исходным текстом открывает исследователю широкие перспективы изучения алгоритмов и использования данных в большом объёме доступных проектов.
Содержание
Видео
Презентация
Thesis
Текст программного модуля на исходном языке построен неформально и является синтаксически правильной нотацией алгоритма на языке программирования. Согласно действующим стандартам ЕСПД, исходный текст должен снабжаться пакетом программной документации, это увеличивает трудоемкость изготовления программного продукта, однако обеспечивает сопровождение в течении жизненного цикла.
Количество языков программирования растет, возникают модификации. Сведения о числе естественных языков и языков программирования приблизительны: число естественных языков составляет от 6000 до 7000[1], число языков программирования с вариантами по разным источникам — от 2500 до 3000[2],[3],[4], 8512![5],[6].
Существует мнение, что количества естественных языков и языков программирования уже сравнимы, и если количество живых естественных языков имеет тенденцию к сокращению[1], то тенденция развития языков программирования пока состоит в устойчивом росте. По материалам[7] эта зависимость похожа на линейную, хотя критерии отбора языков программирования при анализе явно не названы.
Тенденция «раздувания программного обеспечения»[8],[9] может считаться одной из проблем прикладной информатики. Увеличение размера ПО и как следствие памяти выгодно и разработчикам массового ПО и изготовителям вычислительной техники массового применения.
На основании ряда источников в одной системе координат приближённо отражены в логарифмическом масштабе кривые роста примерно до 2012 года:
- числа слов в википедии[10],
- число оригинальных сигнатур вредоносных программ по данным Лаборатории Касперского[11],
- число оригинальных сигнатур вирусов по данным компании Semantec[12],
- объём потребляемой оперативной памяти Microsoft Windows[13],
- объём информации в internet[14],
- число строк ядра linux & freebsd[15],[16].
Помимо общих выводов о похожих скоростях роста некоторых из зависимостей при экстраполяции в диапазонах, дополняющих до интервала 1995—2012 г.г. (тонкие линии на рисунке), можно заключить, что темп рост объема ПО на модели сигнатур вирусов (по двум независимым источникам) совпадает и хорошо согласуется с ростом содержания википедии. Главным выводом из представленных зависимостей является общая тенденция экспоненциального роста объёмов информации как на естественных языках, так и на языках программирования. Это обстоятельство не оставляет никаких сомнений в необходимости автоматизации процесса извлечения знаний из исходных текстов для противодействия порабощению человечества информацией, которую не представляется возможным воспринимать.
Если принять за базу объём трудозатрат для изучения исходного текста Windows95, то объём трудозатрат по решению аналогичной задачи для NT2000 увеличивается в 8 раз, а для Windows 7 — в 125 раз, что делает такую задачу практически не решаемой без инструментальных средств исследования исходных текстов. Если предположить, что характер рассматриваемых зависимостей не претерпит качественных изменений, можно спрогнозировать контрольные цифры для каждой из величин к 2020 году, и эти величины весьма велики.
Построение эквивалентных представлений (ЭП) исходных текстов позволяет подвести единую методическую базу для процесса анализа, в этом случае ЭП могут принимать форму технических комментариев[17]. Построение ЭП выгодно выполнять в два этапа, на первом их которых формируется промежуточное представление в виде сериализованного дерева разбора, являющееся текстом на языке разметки[18]. Если это представление стандартизовано, то дальнейший анализ может выполняться универсальными инструментами построения ЭП.
Таблица. Предварительный состав подлежащих разработке стандартов анализа исходных текстов программного обеспечения(первой очереди)
Наименование проекта стандарта | Назначение стандарта |
---|---|
1.ГОСТ Р «Информационные технологии. Общие требования к программным средствам формирования технических комментариев исходных кодов программ» | Определяет состав требований к программным средствам формирования технических комментариев, касающихся назначения средства, состава программных конструкций, подлежащих комментированию, порядка формирования промежуточных эквивалентных представлений, объема комментария и др. |
2. ГОСТ Р «Информационные технологии. Основные этапы формирования машинных комментариев исходных кодов программ, формы машинных комментариев, способы получения» |
Определяет состав требований к процессу последовательного формирования технических комментариев, касающихся этапов преобразования исходного текста, наборов эквивалентных представлений исходного текста, подлежащих комментированию, обеспечения навигации как между эквивалентными представлениями, так и между эквивалентными представлениями и исходным текстом и др. |
3. ГОСТ Р «Информационные технологии. Форматы представления машинных комментариев исходных кодов программ» | Регламентирует форматы промежуточных и конечных эквивалентных представлений технических комментариев, обеспечивая единство эквивалентного представления независимо от языка исходного текста |
4. ГОСТ Р «Информационные технологии. Общие требования к мультиязыковой поддержке средств формирования технических комментариев исходных кодов программ» |
Определяет состав требований к языковой среде формирования технических комментариев, состав словарей национальных языков, которые мо гут подключаться к автоматическому комментатору, требования к интерфейсам |
На основании прототипов инструментов анализа исходных текстов открытого ПО в опытных работах построения эквивалентных представлений созданы спецификации стандартов, расширяющих существующую методическую базу программной документации.
Примечания и ссылки
- ↑ 1,0 1,1 А. Е. Кибрик База естественного человеческого языка и ее основные параметры http://www.dialog-21.ru/dialog2011/materials/html/3.htm — 2011
- ↑ Antula: студия вэб-дизайна http://www.antula.ru/power-language.htm — 2011
- ↑ B. Kinnersley Collected Information On About 2500 Computer Languages, Past and Present. http://people.ku.edu/nkinners/LangList/Extras/langlist.htm — 2011
- ↑ Языки программирования http://www.ikiznanie.ru/ru-wz/index.php/ — 2011
- ↑ http://ru.wikipedia.org/wiki/Язык_программирования
- ↑ И. Н. Бекман Компьютерные науки. Курс лекций. Лекция 8. Языки программирования -- profbeckman.narod.ru/Komp.files/Lec8.pdf — 2011
- ↑ Хронология языков программирования http://ru.wikipedia.org/wiki/Хронология_языков_программирования — 2011.
- ↑ E. Perratore et al., «Fighting Fatware>>, Byte, Vol. 18 No. 4 Apr. 1993, pp. 98-108.
- ↑ Никлаус Вирт Долой <<жирные» программы Открытые системы № 06, 1996. http://www.osp.ru/os/1996/06/179017/
- ↑ Антивирусный прогноз погоды: облачно http://www.infosecurity.ru/cgi-bin/mart/arts.pl?a=101001 — 2011
- ↑ Полноценные хранилища свободных знаний — Википедия и Проект Гутенберг http://rus-linux.net/lib.php?name=/MyLDP/freesoft/impossible-2.html
- ↑ «Лаборатория Касперского»: экскурсия и взгляд изнутри http://www.thg.ru/business/kaspersky_tour/print.html
- ↑ https://ru.wikipedia.org/wiki/Раздутое_программное_обеспечение
- ↑ Антивирусные вендоры ищут выход из технологического тупика http://www.anti-malware.ru/antivirus_trends
- ↑ Семенов Ю. А. (ГНЦ ИТЭФ) Направления и тенденции развития ИТ-технологий http://book.itep.ru/4/7/resources.htm
- ↑ Количество строк кода http://ru.wikipedia.org/wiki/Количество_строк_кода
- ↑ Энциклопедия «SEO: Поисковая Оптимизация от А до Я» Бесплатный учебник по поисковой оптимизации и раскрутке сайтов. Комментарии (программирование) http://www.seobuilding.ru/wiki/Комментарии_(программирование) — 2010
- ↑ Расширяемый язык разметки XML. http://ru.wikipedia.org/wiki/XML — 2011
Plays:47 Comments:0