Главная страница

Учебное пособие по дисциплине Разработка языков программирования высокого уровня


Скачать 1.74 Mb.
НазваниеУчебное пособие по дисциплине Разработка языков программирования высокого уровня
Дата05.03.2023
Размер1.74 Mb.
Формат файлаdocx
Имя файлаLektsii_YaPVU_Lukinova_2_semestr.docx
ТипУчебное пособие
#970477
страница4 из 20
1   2   3   4   5   6   7   8   9   ...   20

1.4 Критерии оценки языков программирования


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



Таблица 1

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

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

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

a+=1;

a++;

++a.

  • Разумная перегрузка операторов;

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

Управляющие структуры. Язык должен обладать достаточным многообразием управляющих структур.

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

Продуманная синтаксическая структура программы предполагает:

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

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

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

  • Отсутствие множественного смысла одних и тех же зарезервированных слов и операторов и т.п.

Поддержка абстракции. Абстракция – возможность определять сложные объекты, игнорируя детали. Абстракция в ЯПВУ представляется двумя понятиями: абстракция данных и абстракция процесса.

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

Среди идей, возникших в области методологии программирования и разработки языков программирования, поддержка абстракции является одной из самых значительных.

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

В языках объектно-ориентированного программирования произошёл синтез абстракции данных и абстракции процесса. Появился абстрактный тип данных, который объединил данные одного определённого типа и код обработки этих данных в единую синтаксическую единицу. Условно говоря, переменные этого типа стали называться объектами.

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

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

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

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

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

Совмещение имён предполагает использование одной и той же ячейки памяти под разными именами. Этот механизм является источником ненадёжности в программе, хотя и оправдывал себя в условиях дефицита оперативной памяти. Примерами совмещения имён может служить оператор EQUIVALENCE в языке FORTRAN или тип данных объединение Union в языке C.

Стоимость языка складывается из следующих величин:

  1. Затраты на обучение программиста, что зависит от простоты и ортогональности.

  2. Стоимость создания программ на данном языке, зависит от лёгкости его использования. Появление языков высокого уровня связано с увеличением объёма и сложности программ и естественного желания уменьшить стоимость их разработки.

  3. Затраты на разработку компиляторов языка.

  4. Затраты на распространение ЯПВУ и компиляторов для него: язык Java начинал распространяться бесплатно, и это явилось одним из факторов его популярности.

  5. Стоимость обеспечения надёжности – недопущения сбоя программного обеспечения, эксплуатирующегося на критически важных объектах.

  6. Стоимость сопровождения программного обеспечения (ПО).

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

Мощность языка. Определяется тем разнообразием задач, которые программируются на данном языке. Наиболее мощным языком является машинный язык.

Уровень языка. Языки программирования делятся на:

Мобильность языка. Определяется независимостью от аппаратных средств.

Эффективность языка. Обеспечивает эффективную реализацию языка (включая эффективную реализацию компилятора и эффективные программы генерируемые компилятором).
1   2   3   4   5   6   7   8   9   ...   20


написать администратору сайта