Иллюстрированный самоучитель по практике программирования

Переносимость

  • Степень переносимости

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

    Придерживайтесь стандарта. | Первое, что необходимо для создания переносимого кода, – это, конечно, использование языка высокого уровня, причем его стандарта, если таковой определен. Двоичные коды переносятся плохо, исходный код – несколько лучше.
  • Заголовочные файлы и библиотеки

    Заголовочные файлы и библиотеки предоставляют возможности, расширяющие базовый язык. Например, ввод и вывод осуществляются с помощью библиотек stdio в С, lost ream в C + + и Java, io в Java. Строго говоря, эти элементы не являются частью языка, но они определен!
  • Организация программы

    Существуют два основных подхода к переносимости, которые мы назовем объединением и пересечением. Объединение подразумевает использование лучших возможностей каждой конкретной системы; компиляция и установка при этом зависят от условий конкретной среды.
  • Изоляция

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

    Текстовые данные передаются между системами в неизменном виде, так что это самый простой и универсальный способ для передачи произ вольной информации между системами. | Для обмена данными используйте текст. | С текстом легко оперировать посредством множества программ;
  • Порядок байтов

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

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

    Если вы живете в Соединенных Штатах, то вы, может быть, забыли, что английский – не единственный язык на свете, ASCII – не единственный набор символов, $ – не единственный символ валюты, что даты могут записываться с указанием сначала дня, а потом уже месяца, что время может записываться в формате с 24-мя часами и т. п.
  • Заключение. Дополнительная литература.

    Переносимый код – это идеал, к которому надо стремиться, поскольку только он способен сэкономить вам время при переносе программы из системы в систему или при изменении текущего окружения. Однако переносимость достается не бесплатно – вам придется быть особенно внимательными при написании кода, а также представлять себе детали всех потенциально пригодных систем.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.