Анализ демонстрационный программы TCalc "Borland Inc."
Программа TCalc 1993 (Turbo Pascal 6.0) состоит из следующих файлов:
tcalc.pas — файл основной программы;
tcell.pas — файл работы с клетками;
tcellsp.pas — файл дополнений работы с клетками (изменение значений);
tchash.pas — файл дополнений работы с клетками (значения в клетках);
tcinput.pas — файл подпрограмм ввода данных с клавиатуры;
tclstr.pas — файл подпрограмм работы со строками;
tcmenu.pas — файл подпрограмм, обслуживающих систему меню;
tcparser.pas — файл интерпретатора арифметических выражений формул клеток;
tcrun.pas — файл инициализации и запуска основных объектов;
tcscreen.pas — файл подпрограмм работы с дисплеем;
tcsheet.pas — файл подпрограмм, обслуживающих действия, выбранных посредством меню;
tcutil.pas — файл вспомогательных подпрограмм;
mcmvsmem.asm — ассемблерный файл подпрограмм запоминания в оперативной памяти информации экрана, а также восстановления ранее сохраненной информации экрана.
Все файлы закодированы с соблюдением стандартов оформления.
Хотя фирма "Borland Inc." занимается разработкой компиляторов, файл mcparser.pas также является заимствованным из UNIX YACC utility и лишь частично модифицирован. Остальные файлы являются оригинальными.
Ассемблерный файл mcmvsmem.asm является искусственно добавленным. Цель его добавления — демонстрация возможности использования ассемблерных вставок. Результаты арифметического анализа текста программы представлены в табл. 8.2.
Таблица 8.2
Результаты анализа текста программы TCalc
Имя файла | Всего строк | Количество описательных операторов | Комментарии | Пустых строк | Количество процедур | Количество описательных операторов процедур | Код | |
Всего | Строк | |||||||
Tcalc | 21 | 2 | 9 | 3 | 5 | 1 | 3 | 8 |
Tcell | 1962 | 490 | 206 | 20 | 153 | 46 | 152 | 1147 |
Tcellsp | 228 | 39 | 24 | 5 | 18 | 6 | 25 | 141 |
Tchash | 262 | 50 | 47 | 23 | 23 | 14 | 43 | 123 |
Tcinput | 334 | 63 | 39 | 15 | 22 | 9 | 32 | 202 |
Tclstr | 243 | 45 | 120 | 20 | 12 | 15 | 52 | 114 |
Tcmenu | 234 | 48 | 40 | 20 | 21 | 22 | 66 | 79 |
Tcparser | 677 | 73 | 29 | 5 | 17 | 9 | 64 | 518 |
Tcrun | 1367 | 146 | 128 | 59 | 57 | 47 | 163 | 942 |
Tcscreen | 523 | 215 | 92 | 37 | 16 | 8 | 96 | 159 |
Tcsheet | 1722 | 240 | 170 | 40 | 44 | 32 | 101 | 1297 |
Tcutil | 379 | 114 | 55 | 38 | 70 | 29 | 115 | 42 |
Итого: | 7952 | 1525 | 959 | 285 | 458 | 238 | 912 | 4772 |
20,3% | 3,8% | 12,2% | 63,7% |