Файл: Практикум Под редакцией Б. В. Черникова Рекомендовано умо в области.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 07.11.2023

Просмотров: 274

Скачиваний: 46

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Лексический анализ программ
21
где L – уровень реализации программы, V
*
– ее потенциальный объем.
Для любого алгоритма, который программируется с использова- нием разных языков, с увеличением объема уровень реализации уменьшается в той же пропорции. В результате произведение уровня
L на объем V равняется потенциальному объему V
*
данного алгорит- ма. С другой стороны, если язык реализации остается одним и тем же, а разрешено менять сам алгоритм, имеется другое, но похожее соот- ношение. В этом случае с увеличением потенциального объема V
*
уро- вень программы L уменьшится в том же отношении. Следовательно, произведение L на V
*
остается неизменным для любого языка.
Определим работу программирования при использовании потен- циального языка. В записи на потенциальном языке программа имеет минимально возможную длину, и так как слова (операнды и операто- ры) в ней не повторяются, то она совпадает с объемом:
(
) (
)
2 2
2 2 log
2
V
η
η



=
+
+ . (1.1.19)
Работа программирования в потенциальном языке сводится к вы- бору из конечного, но огромного по масштабам числа имен функций и процедур:
2 1
+ 2 2
+ 2 3
+ … + 2
V–1
+ 2
V
≈ 2
V+1
. (1.1.20) где V – объем программы.
Существует закон Хика, в соответствии с которым время реакции при выборе из некоего числа альтернативных сигналов зависит от их количества. Тогда по закону Хика работа выбора из библиотеки функций составит log 2
V+1
V, и полная работа программирования при использовании потенциального языка будет определяться сле- дующим образом:
E
пот
= V

· V. (1.1.21)
В таком случае мы получим следующее соотношение:
2 2
пот
:
E
V
V
V V
E
V
V



λ =
=

=
. (1.1.22)
Полученное значение λ как раз можно считать количественной мерой уровня любого алгоритмического языка.
Из выражения (1.1.22) видно, что для постоянства
λ увеличение объема программы должно квадратично зависеть от увеличения объ-

Практическое занятие 1
22
ема информации по внешним связям. Поэтому алгоритмически сложные программы вычисления малого числа переменных будут давать значительно более низкое значение
λ, чем программы вычис- ления большого числа переменных по элементарным выражениям.
В связи с этим метрику уровня языка программирования
λ для сравнения языков следует применять только для конкретной пред- метной области и близких типов задач. Ниже приведены данные об уровнях некоторых известных языков программирования (табл. 1.1).
Т а бл и ца 1.1. Уровни языков программирования
Язык
λ
Отклонения
Естественный язык 2,16 0,74
PL/1 1,53 0,92
Алгол 1,21 0,74
Паскаль 1,25 0,76
Бейсик 1,22 0,72
Фортран 1,14 0,81
Ассемблер 0,88 0,42
Поскольку известны соотношения для работы программирования
Е и уровня языка λ

=
V
V
E
2
и
2
V
V

λ =
, (1.1.23) то, исключая из выражений величину V, получим:
3 2
V
E

=
λ
. (1.1.24)
Тогда квалификационное время программирования будет опреде- ляться следующим образом:
3 2
E
V
T
S
S

=
=
λ
, (1.1.25) где S – число Страуда (5
S ≤ 20, среднее его значение принято счи- тать равным 18).