Тишинуша Гамимеря (spamsink) wrote,
Тишинуша Гамимеря
spamsink

Category:

Тезаурус проекта

Какие самые частые слова в языке программирования С++?

Пишем скриптик (комментарии добавлены при публикации):
find Code -name '*.cc' -o -name '*.h' | \ находим все файлы с исходным кодом
 xargs cat | \ собираем вместе
  tee allsource | \ сохраняем чтоб было
   sed s/#/@/g | \ не даем работать препроцессору
    cpp | \ теперь он только комментарии удаляет
     sed '/#/d;/^$/d' | \ удаляем вставленные препроцессором номера строк и пустые строки
      sed "s/'\"'/@/g" | sed 's/\\[\\"]/@/g; s/"[^"]*"/ /g' \ ликвидируем всё в двойных кавычках
> nocomments

wordcnt < nocomments | \ частотный словарь алфавитно-цифровых последовательностей
sort -r -n -k 2 | \ сортируем
grep -v '^ *[0-9]' \ выбрасываем числа
> fullcnts

Перловый скриптик wordcnt таков:
while (<>) {
        @words=split(/[\W\s]+/, $_);
        foreach $word (@words) {
                $wordcnt{$word}++;
        }
}
foreach $word (keys(%wordcnt)) {
        printf "%20s %d\n", $word, $wordcnt{$word};
}


В результате на треть миллиона строк живого кода (nocomments) выходит около 38 тысяч разных умных слов. Частотный словарь начинается так:
                  if 27202
               const 21901
              return 20803
                 int 13856
                void 13070
                char 12530
                bool 10847
                this 8959
                 std 8399
                else 8278
                case 7021
                NULL 6896
                   i 6767
               false 6288
                  it 5855
            unsigned 5396
             include 5287
                true 5158
                Expr 5046
                 mod 4678
              string 4480
                name 4358
               break 4043
                 for 3868
               c_str 3804
               class 3742
                size 3670
              public 3633

(i, it и mod - имена переменных, Expr - имя типа, но не того, которого обычно переменная с именем mod)
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 44 comments