русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Соображения о переносимости


Дата добавления: 2015-01-16; просмотров: 407; Нарушение авторских прав


Некоторые части языка "C" по своей сути машинно-зависи-мы. Следующие ниже перечисление потенциальных трудностей хо-тя и не являются всеобъемлющими, но выделяет основные изних. Как показала практика, вопросы, целиком связанные с ап-паратным оборудованием, такие как размер слова, свойстваплавающей арифметики и целого деления, не представляют осо-бенных затруднений. Другие аспекты аппаратных средств нахо-дят свое отражение в различных реализациях. Некоторые изних, в частности, знаковое расширение (преобразующее отрица-тельный символ в отрицательное целое) и порядок, в которомпомещаются байты в слове, представляют собой неприятность,которая должна тщательно отслеживаться. Большинство из ос-тальных проблем этого типа не вызывает сколько-нибудь значи-тельных затруднений. Число переменных типа REGISTER, которое фактически можетбыть помещено в регистры, меняется от машины к машине, такжекак и набор допустимых для них типов. Тем не менее все ком-пиляторы на своих машинах работают надлежащим образом; лиш-ние или недопустимые регистровые описания игнорируются. Некоторые трудности возникают только при использованиисомнительной практики программирования. Писать программы,которые зависят от каких- либо этих свойств, является чрез-вычайно неразумным. Языком не указывается порядок вычисления аргументов фун-кций; они вычисляются справа налево на PDP-11 и VAX-11 ислева направо на остальных машинах. порядок, в котором про-исходят побочные эффекты, также не специфицируется. Так как символьные константы в действительности являютсяобъектами типа INT, допускается использование символьныхконстант, состоящих из нескольких символов. Однако, посколь-ку порядок, в котором символы приписываются к слову, меняет-ся от машины к машине, конкретная реализация оказываетсявесьма машинно-зависимой. Присваивание полей к словам и символов к целым осуществ-ляется справо налево на PDP-11 и VAX-11 и слева направо надругих машинах. эти различия незаметны для изолированныхпрограмм, в которых не разрешено смешивать типы (преобразуя,например, указатель на INT в указатель на CHAR и затем про-веряя указываемую память), но должны учитываться при согла-совании с накладываемыми извне схемами памяти. Язык, принятый на различных компиляторах, отличаетсятолько незначительными деталями. Самое заметное отличие сос-тоит в том, что используемый в настоящее время компилятор наPDP-11 не инициализирует структуры, которые содержат полябитов, и не допускает некоторые операции присваивания в оп-ределенных контекстах, связанных с использованием значенияприсваивания.


<== предыдущая лекция | следующая лекция ==>
Явные преобразования указателей | Выражения


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.