Главная » Просмотр файлов » Р.У. Себеста - Основные копцепции языков программирования (2001)

Р.У. Себеста - Основные копцепции языков программирования (2001) (1160794), страница 48

Файл №1160794 Р.У. Себеста - Основные копцепции языков программирования (2001) (Р.У. Себеста - Основные копцепции языков программирования (2001)) 48 страницаР.У. Себеста - Основные копцепции языков программирования (2001) (1160794) страница 482019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 48)

Момент времени, когда переменная связывается с адресом, очень важен для понимания языков программирования. Подробнее этот вопрос рассмотрен в разделе 4.4.3. 17В Глава 4. Имена, связывание, проверка типов и области видимости 4.3.3. Тип Тип (зуре) переменной опрелеляет диапазон значений, которые может иметь переменная, и набор операций, предусмотренных лля переменных этого типа.

Например, для типа 1БТЕСЕй в некоторых реализациях языка гОЯТЯА)ч устанавлен диапазон значений от -32 768 до 32 767 и определены арифметические операции сложения, вычитания, умножения, деления н возведения в степень, а также некоторые библиотечные функции для выполнения других операций, например, вычисления абсолютной величины числа. 4.3.4. 3 е Значение переменной — это содержимое ячейки или ячеек памяти, связанных с данной переменной. Память компьютера улобно представлять себе в терминах абстрактных ячеек, а не физических. Ячейки, или отдельно адресуемые единицы, большинства современных компьютеров имеют размер, равныЯ байту, как правило, солержашему восемь битов. Этот размер слишком мал для большинства программных переменных. Мы будем считать, что абстрактная ячейка памяти имеет размер, достаточный для хранения связанной с неЯ переменной.

Несмотря на то что числа с плаваюшей точкой в отлельной реализации конкретного языка могут занимать четыре физических байта, мы считаем, что число с плаваюшей точкой занимает одну абстрактную ячейку памяти. Мы полагаем, что величина любого элементарного неструктурированного типа занимает отдельную абстрактную ячейку. С этого момента под ячейкой памяти мы будем подразумевать абстрактную ячеЯку памяти. Значение переменной иногда называется ее правым значением (г-ча!це).

поскольку именно оно необходимо при использовании переменной, указанной в правой части оператора присваивания. Для того чтобы получить доступ к правому значению переменной, вначале следует опрелелить ее левое значение. Значительно усложнить этот процесс могут, например, правила обзора данных, как это показано в разделе 4.8. 4.4. Концепция связывания В общем смысле, связывание (Ъ|пб(п8) представляет собой процесс установления связи, аналогичной сушествуюшей между атрибутом и объектом или между операцией и символом.

Момент времени, когда эта связь устанавливается, называется временем связывании (Ь(п41пй типе). Связывание и время связывания — важные понятия семантики языков программирования. Связывание может происходить во время разработки или реализации языка; при компиляции, загрузке или выполнении программы. Звезлочка (*), например, обычно связывается с операцнеЯ умножения во время разработки языка. Тип данных, например тип 1ИТЕ6Ей в языке ГОЯТ)(АН, связывается с диапазоном возможных значениЯ во время реализации языка.

В языках С и Разов! переменная связывается с конкретным типом данных во время компиляции программы. Вызов библиотечной подпрограммы связывается с командами подпрограммы при компиляции. Переменная может связываться с ячейкой памяти при загрузке программьг в память. Аналогичное связывание в некоторых случаях не происходит вплоть до времени выполнения программы, например, лля переменных, объявленных в подпрограммах языка Разса), или функций языка С (если объявления не содержат спецификатор з С а к 1 с). 1У9 4.4. Концепция связывания Рассмотрим следующий оператор присваивания языка С с указанным определенпсч переменной соцпс: дпа соцпсг ссопс = ссцпс + 5; Ниже приведены некоторые виды связывания и времен связывания для частей оператора присваивания. ° Множество возможных типов переменной соцпс: связывание во время разработки языка. ° Тип переменной соцпс: связывание во время компиляции.

° Множество возможных значений переменной соцпс: связывание при разработке компилятора. ° Значение переменной соцпс:связывание во время выполнения указанногооператора. ° Множество возможных значений функционального символа +: связывание во время разработки языка. ° Смысл функционального символа + в данном операторе: связывание во время компиляции. ° Внутреннее представление константы 5: связывание во время разработки компилятора. Для того чтобы разобраться в семантике языка программирования, необходимо понять, что такое время связывания арибутов с сущностями программы. Например, необходимо знагь. как при вызове подпрограммы фактические параметры связываются с формальными параметрами в ее определении. Для того чтобы определить текущее значение переменной.

нужно узнать, когла данная переменная была связана с ячейкой памяти. 4.4.1. Связывание атрибутов с переменными Связывание называется статическим (згайс), если оно выполняется до выполнения программы и не меняется во время ее выполнения. Если связывание происходит во вречя выполнения программы или может меняться в ходе ее выполнения, то оно называется динамическим (дупапйс). Физическое связывание переменной с ячейкой в среде виртуальной памяти — сложный процесс, поскольку страница или сегмент адресного пространства, в котором находится ячейка, во время выполнения программы может мною- кратно загружаться и выгружаться из памяти. В некотором смысле такие переменные чногократно связываются и открепляются.

Такие связи, однако, поддерживаются аппаратным обеспечением компьютера, а программе и пользователю эти изменения не вилны. Поскольку это не представляет интереса для обсуждения, мы не фокусируем внимание на аппаратном связывании. Главным моментом для нас являются различия между статическим н динамическим связываниями. 4.4.2. Связывание типов Прежле чем к переменной программы можно будет обращаться, она должна быть связана с типом ланных. При этом необходимо рассмотреть два важных аспекта этого связывания: каким образом указывается этот тип и когда происходит связывание. Типы могут определяться статически с помощью некоторой формы явного или неявного объявления.

1ВО Глава 4. Имена, связывание, проверка типов и области видимости 4.4.2.1. Объввпение переменных Явное объявление (ехрйсй бес(агайоп) — это оператор программы, перечисляющий имена переменных и устанавливаюший. что они имеют определенный тип. Неявное объявление(ипрссй бес(агайоп) — это средство связывания переменных с типамн посредством принятых по умолчанию соглашений. а не операторов объявления. В этом случае первое появление имени переменной в программе является ее неявным объявлением. И явное.

и неявное объявления создают статические связи с типами. Большинство языков программирования, созданных с середины )960-х годов. требуют явного объявления всех переменных (двумя исключениями являются языки Рег! и МЕ). Некоторые широко используемые языки, первоначальные работы по созданию которых были проведены в конце )960-х голов, допускают неявные объявления переменных, особенно это касается языков РОКТКАН. Р1Л и ВАЯС.

Например, в программах иа языке РОКТКАХ идентификатор, для которого не было выполнено явного объявления, объявляется неявно в соответствии со следующим соглашением: если идентификатор начинается с одной из букв 1, 1. К, Е. И или (Ч, то неявно объявлено, что он имеет тип 1(ДТЕ0ЕК; в противном случае неявно объявлено, что он имеет тип КЕАЬ.

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

требуя, чтобы имена отдельных типов начинались с конкретных специальных символов. Например, в языке Рег! все имена, начинаюшиеся с символа 5, являются скалярными величинами, которые могут быть строкой или числом. Если имя начинается с символа С. то именуемая им сушность является массивом; если имя начинается с символа Ъ. то оно обозначает хешированную структуру ()зазй игцсшге). Подобный полход создает различные пространства имен для различных типов переменных. При таком сценарии имена барр1е и (арр1в не связаны между собой.

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

Объявление указывает компилятору тип переменной и то, что она гле-то была опрелелена. Эта идея переносится на функции языков С и С++, в которых прототипы объявляют имена и интерфейсы, но не команды функций. С другой стороны, определения функций являются полными. 4.4.2.2. Динамическое сввдывание типов При динамическом связывании в операторе объявления тип не указывается.

Характеристики

Тип файла
DJVU-файл
Размер
9,5 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6384
Авторов
на СтудИзбе
308
Средний доход
с одного платного файла
Обучение Подробнее