Лекция 01. Тема Общая характеристика языков программирования высокого уровня
Лекция 03. 1.5. Критерии оценки языков программирования
Download 4.1 Mb. Pdf ko'rish
|
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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling