Преимущества
Преимущества
Причины применения статической типизации в объектной технологии мы перечислили в начале лекции. Это надежность, простота понимания и эффективность.
Надежность обусловлена обнаружением ошибок, которые иначе могли проявить себя лишь во время работы, и только в некоторых случаях. Первое из правил, заставляющее объявлять сущности, как, впрочем, и функции, вносит в программный текст избыточность, что позволяет компилятору, используя два других правила, обнаруживать несоответствия между задуманным и реальным применением сущностей, компонентов и выражений.
Раннее выявление ошибок важно еще и потому, что чем дольше мы будем откладывать их поиск, тем сильнее вырастут издержки на исправление. Это свойство, интуитивно понятное всем программистам-профессионалам, количественно подтверждают широко известные работы Бема (Boehm). Зависимость издержек на исправление от времени отыскания ошибок приведена на графике, построенном по данным ряда больших промышленных проектов и проведенных экспериментов с небольшим управляемым проектом:
Рис. 17.1. Сравнительные издержки на исправление ошибок ([Boehm 1981], публикуется с разрешения)
Читабельность или Простота понимания (readability) имеет свои преимущества. Во всех примерах этой книги появление типа у сущности дает читателю информацию о ее назначении. Читабельность крайне важна на этапе сопровождения.
Исключив читабельность из круга приоритетов, можно было бы получить другие преимущества, не вводя явных объявлений. В самом деле, возможна неявная форма типизации, когда компилятор, не требуя явного указания типа, пытается автоматически определить его из контекста применения сущности. Эта стратегия известна как выведение типов (type inference). Но в программной инженерии явные объявления типов это помощь, а не наказание, - тип должен быть ясен не только машине, но и читающему текст человеку.Наконец, эффективность может определять успех или отказ от объектной технологии на практике. В отсутствие статической типизации на выполнение x.f (arg) может уйти сколько угодно времени. Причина этого в том, что на этапе выполнения, не найдя f в базовом классе цели x, поиск будет продолжен у ее потомков, а это верная дорога к неэффективности. Снять остроту проблемы можно, улучшив поиск компонента по иерархии. Авторы языка Self провели большую работу, стремясь генерировать лучший код для языка с динамической типизацией. Но именно статическая типизация позволила такому ОО-продукту приблизиться или сравняться по эффективности с традиционным ПО.
Ключом к статической типизации является уже высказанная идея о том, что компилятор, генерирующий код для конструкции x.f (arg), знает тип x. Из-за полиморфизма нет возможности однозначно определить подходящую версию компонента f. Но объявление сужает множество возможных типов, позволяя компилятору построить таблицу, обеспечивающую доступ к правильному f с минимальными издержками, - с ограниченной константой сложностью доступа. Дополнительно выполняемые оптимизации статического связывания (static binding) и подстановки (inlining) - также облегчаются благодаря статической типизации, полностью устраняя издержки в тех случаях, когда они применимы.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Преимущества невидимого Интернета
Преимущества невидимого Интернета Поисковые системы удобны, поскольку позволяют проводить поиск по ключевым словам. Однако все популярные поисковики такого плана – вроде Яндекса, Гугла и Рамблера, – рассчитаны на широкую, а не целевую аудиторию.В то время как
Преимущества CIL
Преимущества CIL Вы можете спросить, зачем компилировать исходный код в CIL, а не прямо в набор специальных системных команд. Одним из преимуществ этого является интеграция языков, поскольку вы уже убедились, что все компиляторы .NET выдают приблизительно одинаковые наборы
Главные преимущества ASP.NET 1.х
Главные преимущества ASP.NET 1.х Уже первая главная реализация ASP.NET (версии 1.x) предложила фантастические возможности преодоления ограничений, присущих классической технологии ASP. По сути, платформа .NET дала начало использованию следующих подходов.• ASP.NET 1.x предлагает модель,
Главные преимущества ASP.NET 2.0
Главные преимущества ASP.NET 2.0 ASP.NET 2.0 предлагает ряд новых пространств имен, типов, утилит и подходов в разработке Web-приложений .NET. Вот их неполный список.• В ASP.NET 2.0 для разрабатываемого и тестируемого Web-узла уже не требуется хостинг в IIS. Теперь вы можете разместить свой
Преимущества Web-сервисов XML
Преимущества Web-сервисов XML На первый взгляд, Web-сервисы XML могут показаться просто очередной новой технологией удаленного взаимодействия. Это, конечно, так и есть, но давайте рассмотрим эту технологию чуть подробнее. Исторически для доступа к удаленным объектам всегда
Преимущества электронных документов
Преимущества электронных документов Потоки документов отображают деятельность любой организации. От их правильного обращения напрямую зависит успех бизнеса, поэтому во все времена правильной организации документооборота уделялось достаточно внимания. С появлением
2.3.5. Преимущества и недостатки библиотек
2.3.5. Преимущества и недостатки библиотек Познакомившись со статическими архивами и совместно используемыми библиотеками. читатели, очевидно, задумались: какие же из них лучше использовать? Есть несколько важных моментов, о которых следует помнить.Большим преимуществом
Преимущества и недостатки связывания
Преимущества и недостатки связывания Преимущества связывания достаточно очевидны. Во-первых, в таблице, использующей связывание, никогда не возникнет ситуация нехватки места. Мы сколько угодно можем продолжать добавлять элементы в хеш-таблицу, и при этом будет
Преимущества использования триггеров
Преимущества использования триггеров Перечислим преимущества использования триггеров.* Автоматическое применение ограничения данных, чтобы убедиться, что пользователи вводят только допустимые значения в столбцы.* Сокращение объема поддержки приложений, поскольку
26 Преимущества видимости
26 Преимущества видимости Помню, как я писал свою первую программу. Это было упражнение по Фортрану в рамках курса, известного под названием 6.41. В те дни в Мас-сачусетском технологическом институте все шло под своими номерами, в том числе и моя программа. Написать ее не
Преимущества PascalABC.NET
Преимущества PascalABC.NET Современный язык программирования Object PascalЯзык PascalABC.NET включает в себя практически весь стандартный язык Паскаль, а также большинство языковых расширений языка Delphi. Однако, этих средств недостаточно для современного программирования. Именно
Преимущества неочевIDны
Преимущества неочевIDны Министр внутренних дел Великобритании Чарльз Кларк (Charles Clarke) в интервью BBC честно признал, что пластиковые идентификационные чип-карты с биометрией, за повсеместное внедрение которых ратует английское правительство, не смогли бы предотвратить
Преимущества ASAP
Преимущества ASAP Использование методологии ASAP и предусмотренных в ней стандартных списков контрольных вопросов, опросных листов, шаблонов документов, руководств и рекомендаций дает следующие преимущества:• Быстрота внедрения• Оптимальное использование средств и
14.2.2. Преимущества и недостатки DVD
14.2.2. Преимущества и недостатки DVD У всего есть свои преимущества и недостатки. Есть они и у DVD. Начнем с преимуществ.? Большая емкость диска — лишнего места не бывает! Но, с другой стороны, 4,7 Гбайт хорошо для записи фильма в цифровом качестве (или коллекции фильмов в MPEG-4). Для
Ожидаемые преимущества
Ожидаемые преимущества Повторное использование может обеспечить прогресс на следующих направлениях:[x]. Своевременность (timeliness) (в том смысле, который определен при обсуждении показателей качества: быстрота доведения проектов до завершения и продукции до рынка). При
Преимущества
Преимущества Причины применения статической типизации в объектной технологии мы перечислили в начале лекции. Это надежность, простота понимания и эффективность.Надежность обусловлена обнаружением ошибок, которые иначе могли проявить себя лишь во время работы, и