Значение уровня языка

В течение последних десятилетий значительная доля усилий специалистов в области языков программирования была направлена на разработку и реализацию новых языков и часто при этом выполнялось усовершенствование ранее существовавших языков. Но из-за отсутствия количественного измерения вывод о реальном улучшении языка был весьма субъективным. Без принятия гипотезы, соотносящей конкретный язык с мысленной работой по его использованию, нельзя с уверенностью сказать, положительно или отрицательно его введение. Объединяя уравнение (4.7) с уравнением работы, получаем, что число элементарных мысленных различений, требуемых для написания некоторой программы, должно подчиняться ²закону обратных квадратов² относительно уровня языка, или

Е = V*3/l2 (4.8)

Из соотношений Е = V2/V* и V = V*/L следует, что Е = V*/L2, откуда при помощи равенства L = l/V* выводим (4.8). Для небольшой выборки программ, написанных на двух языках, можно определить средние значения l и с их помощью найти сравнительную трудоемкость. Так выигрыш во времени программирования при переходе от языка низкого уровня l1 к языку высокого уровня l2 определяется соотношением

ΔT/T = (T1 - T2) / T1 = 1 - T2 / T1 = 1 - (l1)2 / (l2)2 (4.9)

Тогда по данным табл.6 при переходе от Ассемблера к Фортрану выигрыш во времени составит 40%, от Ассемблера к ПЛ-1 - 67%.

Важность понятия уровня языка подтверждается также из уравнения (4.8) следующими обстоятельствами. Поскольку потенциальный объем V* и среднее значение l должны быть известны или вычислимы сразу после определения программистского проекта и выбора языка, это дает рациональную основу для планирования времени программирования.

С другой стороны, подставляя в (4.7) выражение для L из (3.2), получим

l = (V*)2 / V (4.10)

Из этого выражения видно, что для постоянства l увеличение объема программы должно квадратично зависеть от увеличения количества информации по внешним связям. Поэтому алгоритмически сложные программы вычисления малого числа переменных будут давать значительно более низкое значение l, чем программы вычисления большого числа

переменных по элементарным выражениям. Поэтому применение метрики l для сравнения языков программирования следует делать только для конкретной предметной области и близких типов задач.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: