211 / 204 / 15
Регистрация: 29.05.2014
Сообщений: 1,056
1

Статический анализатор кода (не оптимизатор!!!)

08.10.2014, 22:15. Показов 4301. Ответов 36
Метки нет (Все метки)

Для многих языков есть статические анализаторы кода. Для "нежно" любимого мной 1С - нет. В ближайшем будущем буду исправлять этот косяк. В связи с этим вопросы -
Был бы вам нужен?
Что бы хотели видеть в нем? Какую функциональность?
В каком виде лучше оформлять правила?
А вывод как лучше сделать?

Добавлено через 50 секунд
модеры - добавьте букву Л в слово анаизатор в заголовке
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.10.2014, 22:15
Ответы с готовыми решениями:

Статический анализатор кода
Всем доброго времени суток! Мне поставлена задача, написать статический анализатор кода для MPI....

Статический анализатор кода
Всем привет! Сразу извиняюсь за то, что создал тему не в том форуме ( не знал, где ее можно...

Подскажите статический анализатор кода C++
Есть большой и страшный проект на C++, где много повторяемого кода (или почти повторяемого). Есть...

Vim и статический анализатор кода
Здравствуйте товарищи, вопрос следующий - можно ли прикрутить к Vim статический анализатор кода?

36
duk337
08.10.2014, 22:39
  #2

Не по теме:

Цитата Сообщение от wwall Посмотреть сообщение
Какую функциональность?
Вежливость. Например, чтоб после Склады.Выбрать(), Склады выбирали меня :-[

0
286 / 186 / 18
Регистрация: 20.02.2012
Сообщений: 925
09.10.2014, 10:43 3
анализатор не помешал бы...
Цитата Сообщение от wwall Посмотреть сообщение
Какую функциональность?
-оптимизировать код, чтобы из 10 строк получилось 2-3 (по мне так это основная функция)
0
211 / 204 / 15
Регистрация: 29.05.2014
Сообщений: 1,056
09.10.2014, 11:52  [ТС] 4
Цитата Сообщение от SonicQ Посмотреть сообщение
оптимизировать код
Оптимизация это не задача анализатора. Его задача искать типовые ошибки, опираясь на анализ кода. А рефакторинг - это дело человеческое
0
583 / 370 / 63
Регистрация: 22.07.2009
Сообщений: 875
Записей в блоге: 4
09.10.2014, 14:20 5
Цитата Сообщение от wwall Посмотреть сообщение
Что бы хотели видеть в нем? Какую функциональность?
Лично я бы очень хотел чтобы запросы можно было писать Embedded-языком, а не склеивая строки, как сейчас.
Чтобы выглядело это аналогично C# EntityFramework/Linq.

Для каждого Хрень ИЗ Справочники.Номенклатура.Где(( н)=> н.Размер 12 И н.Уцененный).Выбрать((н)=> {Код = н.Код, Наименование = н.Наименование}) Цикл
...... Do somesing
КонецЦикла;

Но это мечта

1. В принципе очень хорошо будет если 1С сделает нормальный intelli-sence редактор запросов.
Конструктор запросов конечно удобен для простеньких запросов. Но ИМХО когда у тебя огромный запрос, начинаешь его ненавидеть, спасают только временные таблицы.
Производительность скорости написания сложных запросов в SqlEditor'ах была значительно выше
2. Выводить план и стоимость запроса, хоть в каких-нибудь относительных величинах. Чтоб можно было понимать, что это хорошо, а это - хуже.

P.S.
Если надумаете писать на C# или Python'е то могу поучавствовать
0
211 / 204 / 15
Регистрация: 29.05.2014
Сообщений: 1,056
09.10.2014, 14:37  [ТС] 6
Цитата Сообщение от sigmov Посмотреть сообщение
Выводить план и стоимость запроса, хоть в каких-нибудь относительных величинах. Чтоб можно было понимать, что это хорошо, а это - хуже.
Модель для этого можешь придумать? на простом примере. Я как раз сейчас на "кошках" хочу потренироваться. Вот с правилами анализа затык.

Добавлено через 25 секунд
исходи из того что AST уже есть

Добавлено через 1 минуту
Цитата Сообщение от sigmov Посмотреть сообщение
Но это мечта
не имеющая отношения к анализатору. Подобные вещи - задача для компилятора.
0
583 / 370 / 63
Регистрация: 22.07.2009
Сообщений: 875
Записей в блоге: 4
09.10.2014, 14:50 7
Цитата Сообщение от wwall Посмотреть сообщение
Модель для этого можешь придумать? на простом примере. Я как раз сейчас на "кошках" хочу потренироваться. Вот с правилами анализа затык.
((( Боюсь что это бессмысленно делать всем людям, кроме тех, кто разрабатывает движек файловой БД . А учитывая что 1С ретранслирует запросы в sql (в не файловом варианте) - вдвойне бессмысленная.

Реально только действительно сделать статический анализатор.
Ток, по хорошему, он должен коннектится к 1С'у и сверять данные запроса с метаданными типов.
А то запрос может быть написан без ошибок, но при этом не согласовываться со структурой данных.

В принципе консоли запросов для анализа кода вполне хватает - выполняешь запрос, где ругнется - там и ошибка.

Более интересен был бы IntelliSence редактор.

А на чем написан AST ? (Если не секрет)
0
211 / 204 / 15
Регистрация: 29.05.2014
Сообщений: 1,056
09.10.2014, 14:52  [ТС] 8
Цитата Сообщение от sigmov Посмотреть сообщение
Более интересен был бы IntelliSence редактор.
Это тебе к орефкову с его снегопатом.
Цитата Сообщение от sigmov Посмотреть сообщение
А на чем написан AST ?
лисп
0
583 / 370 / 63
Регистрация: 22.07.2009
Сообщений: 875
Записей в блоге: 4
09.10.2014, 15:06 9
Цитата Сообщение от wwall Посмотреть сообщение
лисп
Круто!
Единственно что с лиспа к 1С ке за метаданными обращаться - жестоко будет выглядеть.

За то что подсветили Оферкова/Снегопат спасибо. Интересная вещица. Почитаем.
0
211 / 204 / 15
Регистрация: 29.05.2014
Сообщений: 1,056
09.10.2014, 15:10  [ТС] 10
Цитата Сообщение от sigmov Посмотреть сообщение
Единственно что с лиспа к 1С ке за метаданными обращаться - жестоко будет выглядеть.
Это вдруг почему? XML он и в африке XML.
0
583 / 370 / 63
Регистрация: 22.07.2009
Сообщений: 875
Записей в блоге: 4
09.10.2014, 15:14 11
Цитата Сообщение от wwall Посмотреть сообщение
Это вдруг почему? XML он и в африке XML.
Логично. Однако это же нужно структуры выгрузить из 1С, загрузить в прогу на Lisp'е. Данные изменились -> повторить процедуру.
Из С++ или C# можно было бы online метаданные из 1С получать
0
211 / 204 / 15
Регистрация: 29.05.2014
Сообщений: 1,056
09.10.2014, 15:16  [ТС] 12
Цитата Сообщение от sigmov Посмотреть сообщение
Из С++ или C# можно было бы online метаданные из 1С получать
Во первых только под Виндой. И во вторых - при изменении структуры - перечитывать данные все равно придется. А раз так - то какая разница что будет транспортом? XML или СОМ?
0
2954 / 1766 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
09.10.2014, 16:52 13
wwall, у меня есть подозрение, что в 1С у ваятелей конфигураций есть что-то. Типа структуратора. Но, знаешь... ну его в баню с их манерой городить
1C
1
2
3
4
5
6
7
Если А Тогда
               Если В Тогда
                        Если С Тогда
                                      Если Д Тогда
                                                         Если Е Тогда
                                                         Иначе
                                                                     //И ВОТ ТУТ ИДЁТ ТО, ЧТО ДОЛЖНО БЫТЬ ВЫПОЛНЕНО ШТАТНО
Добавлено через 1 минуту
Я использую для исключений не структуру Если, а
1C
1
Перейти метка:
0
211 / 204 / 15
Регистрация: 29.05.2014
Сообщений: 1,056
09.10.2014, 16:58  [ТС] 14
Цитата Сообщение от duk337 Посмотреть сообщение
структуратора
Это называется генератор кода. И да - есть. Конструктор дваижений - как минимум. Да и та же СППР (система проектирования прикладных решений) я так думаю заточена будет именно под генерацию дальше.

Цитата Сообщение от duk337 Посмотреть сообщение
Перейти метка:
А какая разница как по состояниям бегать? что условный, что безусловный переход это только переход
Но на вкус и цвет - все фломастеры разные
Логику и на выполнить/вычислить можно собрать. И поддерживать не так и сложно
0
2954 / 1766 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
09.10.2014, 17:09 15
1C
1
2
3
4
5
6
7
8
Если ПолнаяФигня Тогда Возврат;КонецЕсли;
Если ТакСебеФигня Тогда Перейти А:;КонецЕсли;
Если ВсёПропуститьИЗаписать Тогда Перейти В:;КонецЕсли;
//===== ДЕЛАЕМ ДЕЛО
~A:;
//===== ПОДДЕЛЫВАЕМ
~В:;
//===== СОХРАНЯЕМ
ну я так люблю читать

Добавлено через 1 минуту
и пейсать
0
211 / 204 / 15
Регистрация: 29.05.2014
Сообщений: 1,056
09.10.2014, 17:12  [ТС] 16
Цитата Сообщение от duk337 Посмотреть сообщение
Если ПолнаяФигня Тогда Возврат;КонецЕсли;
Ненавижу когда условие и действие в одной строке. Но это вопрос стиля.
0
2954 / 1766 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
09.10.2014, 17:49 17
Цитата Сообщение от wwall Посмотреть сообщение
Ненавижу когда условие и действие в одной строке.
Пресловутая "Роспечать", когда я ей сделал супер-функционал по ежедневной отгрузке в киоски (Разнарядка) разорвала со мной договор (я шабашил по договору-повремёнке, надеясь, что ещё годик мне будет капать бабло как оплата продукта) и перешла на сопровождение к франчайзи. Первый вопрос, который задал ихний юный прогер был именно такой. Я бы ответил, что Если...КонецЕсли; в одной строке при чтении текста - это сигнал: "Условие исключительной ситуации, а не основняк". Я тебе просто советую воспользоваться. Когда через полгода ты лезешь в свой скрипт, очень помогает снять алгоритм с листа.
А того прогера я послал, поскольку в этот момент пил пиво и мысли мои была анархичны: типа, невруб - значит, судьба такая.
0
211 / 204 / 15
Регистрация: 29.05.2014
Сообщений: 1,056
09.10.2014, 17:53  [ТС] 18

Не по теме:

Цитата Сообщение от duk337 Посмотреть сообщение
Пресловутая "Роспечать",
Так это из-за тебя отправили минус один журнал в киоск? :)


Цитата Сообщение от duk337 Посмотреть сообщение
Я тебе просто советую воспользоваться.
Тут дело такое - если бы кнопки увидел первый раз, то да. Прислушался бы к мнению зубра. Но увы....
Говорю же - это вопрос стиля и предпочтений. Кому то нравиться шашлык, а кому-то стриптизерша.
0
2954 / 1766 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
09.10.2014, 18:06 19

Не по теме:

Цитата Сообщение от wwall Посмотреть сообщение
Так это из-за тебя отправили минус один журнал в киоск?
Хрен там! У меня всё распределялось, а остаток валился на максимальную партию. :p
Но, в принципе, и минус один журнал, и раскосяк с ценами в рознице - ясно дело, из-за меня, как и западающий "Ентер" на клаве :)



Добавлено через 1 минуту

Не по теме:

И долго будет снится мне в кошмарных снах
Регистер ПартииТоваровНаСкладах :D

0
211 / 204 / 15
Регистрация: 29.05.2014
Сообщений: 1,056
09.10.2014, 20:04  [ТС] 20
Вот добрые зубры - киньте сюда самый длинный запрос на ваш взгляд. Корректный - это пока важно
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.10.2014, 20:04
Помогаю со студенческими работами здесь

Статический анализатор Cppcheck: как пользоваться?
Здравствуйте! Если кто пользовался, прошу подсказать: как ей пользоваться? скачал, установил,...

Оптимизатор кода
Есть ли в Adobe Dreamweaver CS 5 функция оптимизировать код? Я искал не нашел.

Оптимизатор кода в релизе
Есть некоторая функция, сравнительно быстрая (сотня другая тактов) Решил всё же измерить её...

Оптимизатор исходного кода
. Оптимизатор исходного кода. Для увеличения/уменьше* ния значения целочисленной переменной на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru