Сделай Сам Свою Работу на 5

Критерий читабельности языков программирования





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


 

Общие понятия теории языков программирования

Существует несколько определений понятия «язык программирования».

Исходное определение: язык программирования — это знаковая система для планирования поведения компьютера.

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

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

Программы должны быть:

· надежными (содержать мало ошибок);

· устойчивыми (сохранять работоспособность в неблагоприятных условиях эксплуатации, ограниченности ресурсов, перегрузок, ошибок пользователя, сбоев и отказов аппаратуры);

· заботливыми (должны уметь объяснять свои действия и ошибки пользователя).

Области применения языков программирования



Современное человеческое общество все больше и больше зависит от компьютерных систем, управляемых программами.

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

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

Основные области применения языков программирования:

· Научные вычисления. Задачи из этой области сводятся к решению различных математических уравнений. К ним относятся задачи численного анализа, решения дифференциальных и интегральных уравнений и задачи статистики. Обычно научные программы обрабатывают простые структуры данных и производят большое количество арифметических вычислений, выполняемых над числами с плавающей точкой. Наиболее часто употребляются такие структуры, как массивы и матрицы; из управляющих структур чаще других используются циклы со счетчиком и условные операторы. Самым используемым языком здесь является Fortran.



· Обработка деловой информации. Задачи этой области, называемые бизнес-задачами, ориентированы на учет поступлений заказов, управление ресурсами и персоналом, деловое планирование, анализ риска и оценку возможных вариантов, а также начисление зарплаты. Бизнес-программы должны обеспечивать считывание больших объемов данных, собранных за длительный период времени, и сохранение их на внешних носителях, а также формирование новых данные, обновляемые в результате небольших преобразований. Языки бизнес-программирования нацелены на генерацию отчетов со сложной структурой, точные способы описания и хранения десятичных чисел и символьных данных, а также на арифметические действия с десятичными числами. Для этих задач был разработан язык Cobol, который используется и в настоящее время. Однако эта область применения языков программирования в последнее время сокращается, поскольку создается все большее число специализированных пакетов программ, таких, как электронные таблицы и др.

· Искусственный интеллект - это предметная область, главная цель которой состоит в моделировании мыслительной деятельности человека. Отличительной особенностью таких задач являются символьные, а не числовые вычисления. Основным инструментом производимых вычислений здесь считается функция, а используемые языки программирования называются функциональными языками. Родоначальником языков функционального программирования стал язык LISP. Последователями языка LISP являются языки Scheme, Haskell. В 70-х годах для решения задач искусственного интеллекта начали применять язык логического программирования Prolog.



· Системная область. Все задачи системной области связаны с созданием и развитием операционных систем для компьютеров — системным программным обеспечением. системное ПО широко используется, имеет доступ ко всем функциональным возможностям и ресурсам аппаратуры и должно эффективно функционировать. Как следствие, применяемые языки программирования должны обеспечивать быстрое выполнение программ и взаимодействие с аппаратными средствами. В настоящее время повсеместно применяется язык С и его более новый вариант C++.

· Веб-обработка. Для получения информации пользователи сети интернет подключаются к различным серверам по всему миру, а для ее обработки используют локальные клиентские машины. Чтобы пользователь мог загрузить программу, а поставщик программного обеспечения имел возможность получить плату за ее использование, стал необходим язык программирования, позволяющий вести диалог между клиентским компьютером и сервером. Развитие электронной коммерции находится в полной зависимости от языков с такими возможностями. для развития электронной коммерции информация должна передаваться в обоих направлениях между клиентской машиной и сервером, поэтому веб-страницы должны были стать активными, динамическими. Подобные возможности обеспечиваются такими языками программирования, как Perl, РНР и Java, а также Visual C# и Visual Basic.

Критерии эффективности языков программирования

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

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

Критерий эффективности — это правило, служащее для сравнительной оценки качества различных языков программирования.

В качестве основных критериев эффективности обычно выступают:

· читабельность (легкость чтения и понимания программ);

· легкость создания программ (удобство языка для создания программ в выбранной области);

· надежность (обеспечение минимума ошибок при работе программ);

· стоимость (суммарная стоимость всего жизненного цикла языка);

· переносимость программ (легкость переноса программ из одной операционной среды в другую);

· универсальность (применимость к широкому кругу задач);

· четкость (полнота и точность официального описания языка).

В свою очередь, каждый из критериев эффективности зависит от множества разнообразных характеристик. Рассмотрим важнейшие из этих критериев.

Критерий читабельности языков программирования

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

Читабельность (Readability) языка программирования должна способствовать легкому выделению основных понятий каждой части программы без обращения к документации.

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

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

Желательно обеспечить минимальное количество различных понятий с простыми правилами их комбинирования. Этому мешает наличие в языке нескольких способов описания одного и того же действия. Например, в языке С добавление единицы к целому числу можно записать четырьмя способами. Сильное воздействие на простоту оказывает синтаксис языка: он должен прозрачно отражать семантику конструкций, исключать двусмысленность толкования. Предельно лаконичный синтаксис удобен при написании программы, однако усложняет ее модификацию, поскольку в программе нелегко разобраться. Здесь нужен разумный компромисс — простота не должна быть чрезмерной, не должна приводить к загадкам расшифровки.

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

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

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

Примером недостатка ортогональности на языке С является то, что локальные переменные могут быть определены только в начале блока (составного оператора). В C++ переменные определяются в любом месте блока (конечно, перед использованием), что повышает ортогональность.

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

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

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

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.