|
|
|
ОФФ:Интересно, а вот есть ли на свете анализаторы кода? | ☑ | ||
|---|---|---|---|---|
|
0
Shadow
02.10.04
✎
10:52
|
Вот например, чтоб быстрее разобраться в программах (конфигурациях), написанных другими.
Типа чтоб структура программы(конфигурации), после обработки таким анализатором была наглядна (графически что-ли...) Или их нет - и я фантазирую? |
|||
|
1
mszsuz
02.10.04
✎
10:55
|
Приведи пример?
|
|||
|
2
Shadow
02.10.04
✎
10:56
|
ну чтоб на входе - код- на выходе - блок-схема
|
|||
|
3
Волшебник
02.10.04
✎
10:56
|
http://www.mista.ru/download1c/module_structure.zip</a>
Отчет, который показывает структуру программного модуля на языке 1С. Разбираются все синтаксические конструкции Если...КонецЕсли, циклы, Попытка...Исключение. Выделяются процедуры и функции. Результат выводится в хорошо структурированном виде. Данный отчет пригодится для анализа сложных модулей в несколько тысяч строк. Автор: Волшебник Станислав, stasmit@mail.ru, www.mista.ru</a>. После скачивания распакуйте zip-файл и откройте ert-файл из программы 1С:Предприятие 7.7 |
|||
|
7
Shadow
02.10.04
✎
11:04
|
(3)Ясно...
Эта тема имеет перспективы. (если развивать вашу програмку и дальше) ---------------------------------------- маленькими шажками продумывать, как визуализировать связи между переменными, например и т.д. |
|||
|
9
mszsuz
02.10.04
✎
11:10
|
(3) Это последняя версия?
|
|||
|
10
Волшебник
02.10.04
✎
11:11
|
(9) Первая и последняя. Другой и не было. Отчет не воспринимает конструкции Перейти, а также иногда затрудняется разобрать несколько операторов в одной строке.
|
|||
|
19
Юрий28
02.10.04
✎
18:00
|
(0)А не мог бы ты более поподробнее пофантазировать...
Дело в том, что для меня эта тема очень интересна (на предмет убыстрения кодирования). Тем более, что в техническом плане проблем для создания такого анализатора нет. Т.е. нужны только идеи |
|||
|
20
Волшебник
02.10.04
✎
18:01
|
(19) На чем ты собираешься его писать?
|
|||
|
21
Юрий28
02.10.04
✎
18:06
|
VC++
Собственно синтаксический анализатор уже написан - нужны идеи его применения... (ссылку могу дать только в привате - например по почте, т.к. здесь меня интересует развитие идей а не реклама моего проекта) |
|||
|
22
Волшебник
02.10.04
✎
18:32
|
(21) Твой проект коммерческий или собирается им стать? Что уже написано? Какого рода идеи интересуют? Насколько твой анализатор применим к встроенному языку 1С:Предприятия 7.7 или 8.0?
|
|||
|
23
Юрий28
02.10.04
✎
18:39
|
Меня здесь интересует не проект :) а интересуют идеи анализатора, поэтому давай перейдем к (0). Т.е. для начала хотелось бы обсудить что хочется (в идеале) получить от анализатора кода.
|
|||
|
24
Волшебник
02.10.04
✎
18:49
|
А что уже есть? Перечисли функциональность. А мы добавим..
|
|||
|
25
Shadow
02.10.04
✎
18:50
|
)))
фантазирую дальше: - анализ переменных (частота использования, а значит- коэффициент участия в алгоритме - значимость чтоли...) - слежение за вложенностью алгоритма... хм... |
|||
|
26
Shadow
02.10.04
✎
18:51
|
(+25)т.е. не вложенность конструкций языка,. а именно вызов одной функции из другой - визуализация как у Волшебника в обработке(3)
|
|||
|
27
Волшебник
02.10.04
✎
18:51
|
||||
|
28
Shadow
02.10.04
✎
18:53
|
+25 Чтоб при взгляде на результат работы алгоритма можно было понять
количество и "качество" переменных и основные вложенности... нафантазирую в понедельник - мало не покажется |
|||
|
29
F427
02.10.04
✎
19:00
|
Да, такие анализаторы существуют... и я даже юзал такой ... только не для 1С...
Он много что выдавал... Блок-схему... Куски кода, на которые никогда не будет передано управление Анализ оптимальности Анализ возможных зацикливаний и условий выхода из циклов Куски идентичного кода, которые можно формить одной процедурой Анализ работы с файлами... и много чего еще... Работа была опубликована в материалах ДСП... и продолжение было закрыто в печати... Анализируемый язык PL/1... Написание - на PL/1... |
|||
|
30
F427
02.10.04
✎
19:03
|
в принципе что то и для 1С попадалось... только уровень дилетантский...
|
|||
|
31
F427
02.10.04
✎
19:32
|
(0) и глянь еще Акцесс
связи таблиц в графическом виде анализ производительности |
|||
|
32
F427
02.10.04
✎
19:33
|
хотя для себя я делал связи таблиц, но только в виде таблицы - визуализация в виде схемы не доделывалась....
|
|||
|
35
Юрий28
02.10.04
✎
20:02
|
"- анализ переменных (частота использования, а значит- коэффициент участия в алгоритме - значимость чтоли...)
- слежение за вложенностью алгоритма... Чтоб при взгляде на результат работы алгоритма можно было понять количество и "качество" переменных и основные вложенности... нафантазирую в понедельник - мало не покажется" Честно говоря непонятен практический смысл от таких возможностей. По своей сути эффект от таких идей должен быть сокращение издержек на кодирование. Т.е. раз разрешено пофантазировть :) то лично я бы смотрел в сторону ИИ (т.е. не разума, а как бы интеллекта). Пример "Интелли-сенс" - он облегчает кодирование. Его можно наворотить различными контекстно-зависимыми подсказками (например как у Орефкова для 7.7 он работет с операторм ЕСЛИ). Пользуясь этой темой можно помочь Орефкову с его хорошим начинанием (и кстати ничего плохого нет, в том чтое частично его проект будет коммерческий, ИМХО). Но мне хотелось бы пойти дальше... не просто быстро водить код, а сокращать кодирование. По мотивам F427 можно было бы пожелать, чтобы процедуры "сами" создавались после анализа повторяемых участков кода (или наоборот сами разворачивались), если вызов осуществляется только один раз... У кого есть еще идеи?? |
|||
|
36
GrayT
02.10.04
✎
20:04
|
Интересная тема. Сам мечтаю написать нечто подобное, точнее даже пишу, когда время есть. Обработка Волшебник не устроила в свое время.
Начинал свою обработку с того, что она выводила список Переменных модуля и Процедур/Функций и таблицы вызовов (Что откуда вызывается). Сейчас есть желание научить ее рисовать блок схему. Пофантазировать? Мечта в следующем - запускаю обработку, показывает все процедуры в модкле. Указываю точку входа и она пошла шерстить - что -откуда вызывается и далее ркурсивно. Строится блок схема переходов по модулям и логических конструкций. При желании можно отключить "несущественные" конструкции (из которых нет перехода на др. процедуры) К каждому боку лекго прилепить пояснительную записку с удобным просмотром - аля большой хинт. Любой блок можно свернуть в один квадрат Запоминает полученные схемы с привязкой к конфе с возможностью отслеживание последующих изменений (Пойти хохланд что-ли поесть :)) Реализоввывать думал (думаю) так. Обработка шерстит модуль и выгружает это дело в файл, который обрабатывает другая программа. ЗЫ Сегодня ковырялся с НУ в стандарте и очень жалел, что нет такого инструмента |
|||
|
37
Волшебник
02.10.04
✎
20:07
|
(35) Очень актуальная задача для 8.0 - это правильная расстановка директив препроцессора:
#Если Клиент Тогда #Если Сервер Тогда #Если ВнешнееСоединение Тогда Например, все конструкции типа Сообщить, Предупреждение, Вопрос, а также весь интерактив типа ДиалогВыбораФайла, ПолучитьФорму, ТабличныйДокумент и др. нужно оформлять в директивы #Если Клиент Тогда, потому что они недоступны во внешнем соединении. Это нужно делать обязательно для общих модулей с установленным флажком "Внешнее соединение" и для модулей объектов (справочников, документов и т.д.). |
|||
|
38
GrayT
02.10.04
✎
20:11
|
(35) У меня потребность в таком инструменте возникает только в двух случаях
1. Ковыряние в чужом алгоритме, дабы понять как это все работает 2. Редко, но приходится писать хитроумные алгоритмы самому, хотелось бы документировать их получше, а то через пол-года сам не помнишь, что же я тут написал. Косвенно это ведет к сокращение времени на дальнейшую разработку. +36 - Список передаваемых параметров желательно чтоб был под рукой. |
|||
|
39
Юрий28
02.10.04
✎
20:37
|
Есть идея, есть... но эта мебельная фирма уже не причем :)
Я кажется знаю что позволит несколько упростить жизнь программиста в плане кодинга. Нужно идти по пути шаблонов автоматической генерации шаблонов. Анализатор проверяет конфигурацию и находит частовстречающиеся куски кода, которые он оформляет в виде шаблонов. Причем куски - это не просто блок в коде, а это может быть набор процедур и функций, которые вставляются в каждую форму 1С. В результате работы анализатора создается список таких шаблонов, которые можно по "образцу" вставить во все требуемые модули/формы. |
|||
|
40
Юрий28
02.10.04
✎
20:38
|
(39)Масло масляное получилось :)
|
|||
|
41
F427
02.10.04
✎
20:44
|
(39) Генерация шаблонов кода даже уже была частично сделана Бертышем...
И даже выкладывалась в Инет... |
|||
|
42
Юрий28
02.10.04
✎
20:55
|
для 1С?
|
|||
|
43
trdm
02.10.04
✎
21:05
|
Писал типа такой (3) такую, гдето год назад.
а тема интерасная. Если прохляет такая идея: на выходе создание типа результата в (3) но в формате htm и переходами на функции, буду пользоваться. Хорошо бы тебе подключиться к "Групповой разработке" (GCorp), извините не помню названия. |
|||
|
44
MMF
03.10.04
✎
22:44
|
Все попытки написать для 1С что-то хоть отдаленно похожее на анализатор кода - будут безуспешны. Хотя я буду рад ошибиться в своем высказывании. Хотелось бы что-нить похожее на http://www.peganza.com</a>/ для 1С.
|
|||
|
45
Не думаю
03.10.04
✎
23:09
|
что все так мрачно как в (44). Хотя как в (36) тоже вряд ли получится /разбор конструкции Шаблон("ФункцияКотораяЧтотоВозвращаетИМеняетТучуПеременных(СписокЗначений,ТаблицаЗначений,Контекст)") может обойтись дороже написания собственного интерпритатора, хотя может я неправильно понял, и там описывается самостоятельный программный комплекс? / Анализ в (39) вещь заманчивая, но по моему бесцельная, т.к. при правильной разработке структуры данных и алгоритмов эти шаблоны сами выползают. Плюс ко всему есть еще реквизиты неопределенного типа. И работа с SQL минуя 1С, внешние компоненты /которые тоже могут натворить много чего ненужного/.
Хотя глобальный плюс у 1С то что все же это не С++. И наворотить template с хитрой конкретизацией не получиться. Если уж и мечтать, то наверное в сторону стандартизации используемых приемов програмирования. Выделение шаблонов програмирования, бизнес процессов описываемых в конфигурациях. |
|||
|
46
GrayT
04.10.04
✎
00:30
|
(45)Идея написания программы описанной мной возникла в тот момент, когда я разбирался со стандартными конфигурациями. Там редко используются ВК и извороты с шаблонами. Цель была только одна пройдясь отлачиком и головой по модулю (цепочке) один раз составить алгоритм в графическом виде (мне так проще запоминать/понимать), с тем что бы дальше было проще аналзировать код
|
|||
|
47
F427
04.10.04
✎
06:50
|
(44) - была бы заинтересованность - сделали бы...
Только надо ли это? ИМХО - Как тогда содержать армия фра? P.S. в принципе при достаточном финансировании - сделали бы и вольные художники... Но кто даст деньги? |
|||
|
48
Дык
04.10.04
✎
09:39
|
Посмотри SourceCode to Flowchart V2.51 здесь: http://www.fatesoft.com/s2f/buy.htm</a>
|
|||
|
49
Wasya
04.10.04
✎
10:52
|
Любой инструмент должен вписываться в некоторую технологию проектирования. Куда можно встроить этот анализатор? Может лучше так проектировать программы, чтобы необходимость в анализаторе вообще отпала?
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |