|
Языки программирования включают много списков имен переменных, причем порядок расположения имен в списке определяется самим программистом. Рассмотрим два типа списков: списки имен переменных при объявлении типа переменных и списки параметров процедуры.
1} В некоторых трансляторах ошибка указывается стрелкой под строкой,— шм. ред.
Упорядочивание имен в списке облегчает поиск имени. Приведем в качестве примера два списка: ФОРТРАН:
1) INTEGER BETA, Z, КЕР, COST, PRICE, DOBT 2) REAL I, AMOUNT, SIZE, K, BETS
Предположим, вы хотите выяснить тип переменной BETS (целая или действительная). Тогда вам придется просмотреть оба списка полностью. Если списки очень длинные, как это обычно бывает в больших программах, то процесс поиска может оказаться затруднительным и отнимет много времени. Если же имена в списках упорядочены по алфавиту, то задача становится относительно простой. " -~.
INTEGER BETA, COST, DOBT, КЕР, PRICE, Z
REAL AMOUNT, BETS, I, K, SIZE
Необязательно упорядочивать имена всех переменных одного типа в одном операторе объявления типа. Часто бывает удобнее объединять логически связанные переменные.
INTEGER BUFFI, BUFF2, CHAR, TERMTR INTEGER COST, PRICE, TAX
Нижеследующая таблица показывает, что можно упорядочить по алфавиту: , ?>арсэ*
|
ФОРТРАН
|
Списки имен в операторах описания Списки параметров
|
|
ПЛ/1
|
Списки имен в операторах описания Списки параметров
|
|
КОБОЛ
|
Имена файлов
Переменные рабочей области Списки параметров
|
|
АЛГОЛ W
|
Списки имен в операторах описания Списки параметров
|
Упорядочение по алфавиту можно провести и в списках аргументов операторов вызова процедур. Например,
CALL SUBI (А, В, СТАХ, X, Z)
Но так как аргументы оператора вызова должны соответствовать списку параметров процедуры или подпрограммы, то не всегда возможно полное упорядочение имен в списке. Кроме того, не* которые программисты предпочитают функциональное уйорядочение, например располагать сначала выходные аргументы, потом входные.
Упорядочением по алфавиту можно воспользоваться и при перечислении подпрограмм или процедур. Упорядочив подпрограммы или процедуры, можно быстрее найти нужное имя. Подпрограммы на ФОРТРАНе— это отдельные программы, и упорядочить их довольно просто. Нетрудно расположить в алфавитном порядке и процедуры на языке ПЛ/1.
' Упорядочивайте списки по алфавиту.
ФОРТРАН
Когда в большой программе, написанной на ФОРТРАНе, операторы не пронумерованы последовательно, трудно найти нужный номер. Так как нумерация операторов произвольна, то после отладки программы можно перенумеровать все операторы, чтобы упорядочить их номера. Это может сделать программа. Программа перенумерации должна уметь нумеровать с любого желаемого номера и обеспечивать любое приращение. (См. разд. "Проекты" в конце главы.)
В языках ФОРТРАН й БЕЙСИК для меток используются числа. Если программа или подпрограмма, написанная на этих языках, состоит из двух отдельных логических блоков, тб желательно зарезервировать первые одну или две цифры метки для идентификации блока, а остальные — для нумерации операторов внутри блока. Например, пусть имеются три различных блока, тогда для первого блока можно использовать метки, начиная с 1000-й, для второго — начиная с 2000-й, для третьего — с 3000-й.
КОБОЛ
В КОБОЛе упорядочить по алфавиту имена параграфов нелегко, так как порядок следования параграфов влияет на логику программы. Чтобы иметь возможность независимого выбора имени, добавляйте к мнемоническим именам параграфов номера их порядка следования. Например, если параграфам присвоены такие имена
TEST-LOOP
RUN-ERROR
REPORT-OUT то для указания относительного расположения параграфа в программе замените эти имена на следующие:
TEST-LOOP-600
RUN-ERROR-610
REPORT-OUT-620
Используемые номера должны предусматривать включение новых параграфов.
ПЛ/1
В процедурно-ориентированных языках, подобных ПЛ/1, могут быть вложенные процедуры. В таком случае упорядочение по ал-^ фавиту ограничивается порядком вложения. Одно из предложений, облегчающих нахождение вложенных процедур, — это использование имен внешних процедур как префикса или > суффикса имен вложенных процедур. Например,
ПЛ/1:
SCAN: PROCEDURE
SCANXHECK: PROCEDURE
SCANXHECK. TRACE: PROCEDURE
END SCANXHECK TRACE; SCANXHECK-TRAP: PROCEDURE
END SCANXHECK-TRAP; . END SCANXHECK; SCAN.DEBIT: PROCEDURE
END SCAN;
Здесь SCAN — имя внешней процедуры — используется как префикс для имен внутренних процедур.,
Другой способ упорядочивания, обеспечивающий, однако, меньше информации, — нумерация меток. Например, если имя процедуры— SCAN, то меткам в этой же процедуре присвоены значения SCAN010, SCAN020 и SCAN030. При использовании для нумерации лексикографических меток всегда оставляйте интервалы для внесения изменений, чтобы это не нарушило всей нумерации.
Упорядочение по алфавиту — одна из предпосылок- легкой читаемости программы, второй является аккуратность. Так, списки должны быть организованы в столбцы. Обратите внимание, насколько труднее читать список
OCOMMON ALPHA,BETA,CHI,DELTA,EPSIL,ETA,GAMMA,
1I0TA,KAPPA,LAMBDA,MU,NU,0MEGA,0MICR,PHI,PI,
2PSI,RHO,SIGMA,TAU по сравнению со следующим:
OCOMMON ALPHA, BETA, CHI, DELTA, EPSIL, ETAr
1 GAMMA, IOTA, KAPPA, LAMBDA, MU, NU,
2 OMEGA, OMICR, PHI, PI, PSI, RHO,
3 SIGMA, TAU
Чтобы расположить информацию в виде столбцов, программист должен отвести под каждое имя место, соответствующее максимальному числу символов в именах переменных списка. Подобное расположение должно использоваться во всех списках данных, включая списки ввода-вывода.
⇐1.10. Размещение операторов || Оглавление || 1.12. Скобки⇒
|