Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Calculate LLOC С++  (Прочитано 8378 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Andriy_abc
Интересующийся

ua
Offline Offline

« : 21-08-2015 08:34 » 

Пожалуйста посоветуйте, чтоб не изобретать велосипед.

Задача расчет LLOC (https://en.wikipedia.org/wiki/Source_lines_of_code). Нужен код, готовая реализация не подходит.

Вопрос: возможно, есть код парсера, который реализует похожие задачи. Пож. подскажите ссылку. Если такой реализации нет, подскажите статейку о похожих парсерах, чтоб не начинать решать задачу с нуля.

Заранее большое спасибо за Ваше время.

P.S. К сожалению подсчет ‘;’ или ‘/n’ и т.д. не подходит как упрощенный вариант решения.
Записан
Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 21-08-2015 08:44 » 

Отсюда ничего не подошло?
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Andriy_abc
Интересующийся

ua
Offline Offline

« Ответ #2 : 21-08-2015 09:03 » 

Большое спасибо за оперативную помощь! Думаю что-то должно подойти.
Записан
Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 21-08-2015 09:11 » 

Весь юмор состоит в том, что сам я ничего не искал, ссылку взял из вами же процитированной статьи в Википедии (самый низ страницы).
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Andriy_abc
Интересующийся

ua
Offline Offline

« Ответ #4 : 21-08-2015 09:22 » 

)))) Да понятно, просто я не большой спец, пока бы я все перелопатил прошло бы часа три. Поэтому спасибо)))
Записан
Andriy_abc
Интересующийся

ua
Offline Offline

« Ответ #5 : 21-08-2015 17:58 » 

Dale, подскажите пожалуйста. Вики пишет что:
Измеряя логические строки кода, предпринимается попытка посчитать количество собственно операторов в программе, простейший способ посчитать количество логических строк кода в Си-в подсчёте числа точек с запятой, заканчивающих операторы. При этом

for (i=0; i<100; ++i) printf("привет");
2 логические строки кода (Оператор цикла for и оператор вызова функции printf)

как получить цифру "2 логические строки кода" не перебирая при этом все ключевые слова С++?

В предложенных примерах идет расчет по количеству ';' и по количеству вложений '{}', но цифра 2 из вышеуказанной строки не получается.
Записан
Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 22-08-2015 14:14 » 

Простейший способ - не значит достоверный и в случае с циклом просто не работает. К тому же точки с запятой завершают не только операторы, но и объявления. Если хотите получить более-менее правдоподобную метрику, инструмент следует строить на основе парсера. Хотя LOC - не настолько критичная (и к тому же не слишком вразумительная) метрика, чтобы ошибка в 10-20% была существенной. Простой рефакторинг может запросто изменить ее в этих пределах.

Я бы сделал проще: прогонял бы исходный текст через форматтер и просто считал получившиеся строки (возможно, выкидывая комментарии и пустые строки, хотя правильные комментарии по сути тот же код). Само собой, настройки форматтера должны быть одинаковыми, иначе метрика будет гулять еще сильнее.
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines