Лекция 01. Тема Общая характеристика языков программирования высокого уровня


Лекция 03. 1.5. Критерии оценки языков программирования


Download 4.1 Mb.
Pdf ko'rish
bet5/57
Sana12.11.2023
Hajmi4.1 Mb.
#1767546
TuriЛекция
1   2   3   4   5   6   7   8   9   ...   57
Bog'liq
Lektsii po YaP Lukinova 2 sem

Лекция 03.
1.5. Критерии оценки языков программирования. 
С точки зрения влияния на разработку программного обеспечения и его 
дальнейшей эксплуатации наиболее характерными являются такие качества 
ЯПВУ, как читабельность программ, написанных на данном языке, легкость 
их создания, надежность языка, стоимостные характеристики. В таблице 1 
приводится перечень критериев и их характеристик, а ниже – их описание.
Таблица 1.
Характеристики
Критерии оценки
Читабель-
ность
Легкость
создания
Надежность
1. Ортогональность/простота



2. Управляющие структуры



3. Типы и структуры данных



4. Синтаксическая структура



5. Поддержка абстракции


6. Проверка типов

7. Обработка исключительных
ситуаций

8. Ограниченное совмещение 
имен переменных

Простота языка предполагает:

разумное количество элементарных конструкций;

разумное количество описаний одних и тех же средств в реализации 
языка. Например, С позволяет описать оператор a=a+1 еще 
несколькими способами (но насколько это разумно?):
a+=1;
a++;
++a.



разумная перегрузка операторов.
Ортогональность – возможность конструирования каких-либо 
конструкций языка из элементарных (например, возможность объявить 
новый пользовательский тип данных для описания предметной области 
реализуемой задачи).
Управляющие структуры. Язык должен обладать достаточным 
многообразием управляющих структур.
Разнообразие типов и структур данных должно быть таким, чтобы 
давать возможность адекватного описания предметной области задач.
Продуманная синтаксическая структура программы предполагает:

длину имен объектов в программе такую, чтобы иметь возможность 
отображать смысл объектов задачи;

наличие зарезервированных специальных слов, отображающих 
смысл конструкций языка;

наличие 
семантически 
оправданных 
символов 
составных 
операторов (например, слова begin…end вместо {….});

отсутствие 
множественного 
смысла 
одних 
и 
тех 
же 
зарезервированных слов и операторов и т.п.
Поддержка абстракции. Абстракция – возможность определять 
сложные объекты, игнорируя детали. Абстракция в ЯПВУ представляется 
двумя понятиями: абстракция данных и абстракция процесса. 
Под абстракцией процесса в ЯПВУ понимается подпрограмма 
(процедура или функция), поскольку она определяет способ, с помощью 
которого программа может выполнить некоторый процесс, без уточнения 
деталей того, как именно это следует сделать (по крайней мере, в 
вызывающей программе).
Среди идей, возникших в области методологии программирования и 
разработки языков программирования, поддержка абстракции данных 
является одной из самых значительных.
Абстракцию данных следует начать рассматривать с понятия 


переменной, которая представляет собой абстракцию ячейки ОП. При этом 
одной переменной определенного типа ставится в соответствие одна ячейка 
соответствующего типа. Однако оператор EQUIVALENCE в FORTRANе или 
Union в С, С++ позволяет в разные моменты времени в течение работы 
программы загружать в одну и ту же ячейку несколько переменных 
различного типа. Далее появилось понятие массива, который абстрагирует 
область однотипных ячеек памяти. Затем возникла необходимость описания 
разнотипных объектов одной структурой (например, таблица данных разного 
типа), так в ЯП появился тип запись или структура. 
В языках объектно-ориентированного программирования произошел 
синтез абстракции данных и абстракции процесса. Появился абстрактный тип 
данных, который объединил данные одного определенного типа и код 
обработки этих данных в единую синтаксическую единицу. Условно говоря, 
переменные этого типа стали называться объектами.
Проверка типов является одним из основных механизмов надежности 
языка, которая предполагает наличие средств обнаружения в программе 
всевозможных ошибок. При этом эти средства могут функционировать как 
при компиляции, так и при выполнении программы и осуществляют:

проверку типов (статическую, динамическую);

проверку диапазона изменения индексов массивов;

обработку исключительных ситуаций.
Средства 
обработки 
исключительных 
ситуаций 
позволяют 
перехватывать ошибки и другие нештатные ситуации во время выполнения 
программы, принимать меры и затем продолжать работу. Этот механизм 
значительно повышает надежность программ. Языки, как правило, обладают 
в большей (Ada, Java, C++) или меньшей (C, FORTRAN) степени средствами 
такой обработки, встроенными или пользовательскими.
Совмещение имен предполагает использование одной и той же ячейки 
памяти под разными именами. Этот механизм является источником 
ненадежности в программе, хотя и оправдывал себя в условиях дефицита 


оперативной памяти. Примерами совмещений имен могут служить оператор 
EQUIVALENCE в языке FORTRAN или тип данных объединение Union в языке 
С.
Стоимость языка складывается из следующих величин:
1. Затраты на обучение программиста, что зависит от простоты и 
ортогональности.
2. Стоимость создания программ на данном языке, зависит от легкости 
его использования. Появление языков высокого уровня связано с 
увеличением объема и сложности программ и естественного желания 
уменьшить стоимость их разработки.
3. Затраты на разработку компиляторов языка.
4. Затраты на распространение ЯПВУ и компиляторов для него: язык 
Java начинал распространяться бесплатно и это явилось одним из факторов 
его популярности.
5. Стоимость 
обеспечения 
надежности 
– 
недопущения 
сбоя 
программного обеспечения, эксплуатирующегося на критически важных 
объектах.
6. Стоимость сопровождения программного обеспечения (ПО).
Однако язык программирования можно оценивать и с точки зрения 
других классификаторов.
Мощность языка. Определяется тем разнообразием задач, которые 
программируются на данном языке. Наиболее мощным языком является 
машинный язык.
 Уровень языка. Языки программирования делятся на:

языки низкого уровня (машинные языки);

ассемблеры, включающие мнемонические обозначения команд;

языки высокого уровня.
Мобильность языка. Определяется независимостью от аппаратных 
средств.
Эффективность языка. Обеспечивает эффективную реализацию языка 


(включая эффективную реализацию компилятора и эффективные программы, 
генерируемые компилятором).

Download 4.1 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   57




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling