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

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

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

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

Имена корректных программ. Она представляет собой разновидность нетерпимости части разработчиков языка, навязываемой компилятором. В версиях языка ГОКТКАН вплоть до версии ГОКТКАН 90 в именах могли использоваться только прописные буквы, что было излишним ограничением. Многие реализации языка ГОКТКАН 77 (подобно языку ГОКТКАН 90) позволяют использовать строчные буквы — просто они переводятся в прописные лля внутреннего использования во время компиляции.

4.2.3. Специальные слова В языках программирования специальные слова улучшают читабельность программ, называя выполняемые действия. Они также используются для обособления синтаксических сушностей программ. В большинстве языков программирования эти слова классифицируются как зарезервированные, но в некоторых они являются всего лишь ключевыми. Ключевое елово ()геутгогб) имеет особое значение только в опрелеленном контексте. Примером языка, в котором специальные слова являются ключевыми, служит язык ГОКТКАН. Если слово КЕАЬ языка ГОКТКАН встречается в начале предложения, а за ним следует имя, то это слово рассматривается как ключевое, указывающее на то, что данное выражение является оператором объявления переменной.

В.то же время, если зв словом АЕАЬ следует оператор присваивания, то это слово рассматривается как имя переменной. Ниже проиллюстрированы эти варианты использования слова АЕАТл АЕАЬ АРРЬЕ АЕАЬ = 3.4 Компиляторы языка ГОКТКАХ и читатели его программ должны различать имена и специальные слова по контексту. Зарезервированное елово (гезегтед вой) не может использоваться в качестве имени. При разработке языка лучше использовать зарезервированные слова, поскольку возможность переопределения ключевых слов может ухудшить читабельность. Например, в языке ГОКТКАН могут встретиться следуюшие операторы: 1НТЕСЕА КЕАЬ АЕАЬ 114ТЕСЕА Эти операторы объявляют, что переменная программы АЕАЬ имеет тип 114ТЕСЕК, а переменная 1БТЕСЕА — тип АЕАЬ. Помимо странного вида этих операторов обаявления переменных, появление слов АЕАЬ и 1МТЕСЕА в качестве имен переменных может ввести читателя такой программы в заблуждение.

В данной книге в примерах фрагментов программ зарезервированные слова выделяются жирным шрифтом. Многие языки содержат прелопределенные имена, которые в некотором смысле являются чем-то средним между зарезервированными словами и именами, определяемыми пользователем. Они имеют предопределенный смысл, но могут переопределяться пользователем. Например, такие встроенные в язык Аба имена типов данных, как 114ТЕСЕК и РЬОАТ, предопределены.

Эти имена не зарезервироваиы: они могут переопределяться любой программой на языке Ада. В языке Разса! предопределенные имена иногда называются стандартными идентификаторами. В этом языке обычные имена подпрограмм ввода- вывода, в том числе и названия подпрограмм геао1п и ыгдсе1п, предопределены. 1У6 Глава е. Имена, связывание, проверка типов и области видимости Определения предопределенных имен в языках Рааса! и Аба должны быть видимы компиляторами этих языков, поскольку проверка типов в таких языках производится во время компиляции. В обоих языках приведенные выше примеры прелопрелеленных имен видимы компилятором неявно.

Другие предопределенные имена языка Ада, например, стандартные подпрограммы ввода и вывода СЕТ и РОТ, сделаны видимыми явно с помощью оператора идсзз, указанного пользователем. В языках С и С++ многие имена предопрелелены в библиотеках, используемых пользовательскими программами. Например, имена функций ввода и вывода языка С рг1пс й и а сап й определяются в библиотеке ясозо.

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

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

Время жизни и область видимости атрибутов описаны в разделах 4.4.3 и 4.8, соответственно. 4.3.1. Имя Имена переменных — самые распространенные имена в программах. Онн детально рассматривались в разделе 4.2 в общем контексте имен сущностей, из которых состоят программы. Большинство переменных имеют имена. Переменные, у которых нет имен, рассматриваются в разделе4.4.3.3. Часто вместо слова "имя" используется слово "идентификатор". 4.3.2. Адрес Адрес (аддгезз) переменной — зто ячейка памяти, с которой связана данная переменная.

Эта связь не так проста, как может показаться на первый взгляд. Во многих языках одно и то же имя можно связать с разными адресами в разных местах программы и в разное время. Например, программа может иметь лве подпрограммы зцЬ1 н вцЬ2, в каждой из которых определяется переменная с одним и тем же именем, скажем, переменная ацв. Поскольку эти переменные не зависят друг от друга, то обращение к пере- 1УУ 4.3. Переменные менной эцж в подпрограмме вцЬ1 не связано с обращением к переменной вам подпрограммы вцЬ2. Подобным образом большинство языков позволяют связать одно имя с разными адресами в разные моменты времени выполнения программы. Например, рекурсивно вызываемая подпрограмма содержит многочисленные версии каждой локально объявленной переменной, по одной на каждую активацию подпрограммы. Связывание переменных с адресами будет обсуждаться в разделе 4.4.3.

Молель реализации подпрограмм и их активаций для языков, подобных языку АЕОО!, рассматривается в главе 9. Адрес переменной иногда называется ее левым значением (!-та!це), поскольку именно он нужен, если в левой части оператора присваивания указана переменная. 4.3.2. 1. Альтернативные имено Иногла несколько илентифнкаторов одновременно ссылаются на один и тот же адрес. Если для доступа к отлельной ячейке памяти можно использовать несколько имен переменных, то эти имена называются альтернативнымн (а!!азез). Совмещение имен ухудшает читабельность программы, поскольку оно позволяет переменным изменять свои значения при присвоении их другим переменным.

Например, если имена переменных А и Е являются альтернативными, то любое изменение переменной А приводит к изменению переменной й, и наоборот. Человек, читающий программу, всегда должен помнить, что д и й — разные названия одной и той же ячейки памяти. Поскольку в программе может быть любое количество альтернативных имен, то на практике это создает серьезные трудности. Кроме того, совмещение имен затрудняет верификацию программы. Альтернативные имена могут создаваться в программе несколькими различными способами. В языке РОКТКАХ для этого используется оператор ЕЯУТНАЕЕНСЕ. Они также могут создаваться с помощью вариантных записей в таких языках, как Рааса! и Аба, или с помощью объединений в языках С и С++. Альтернативные имена, создаваемые этими типами данных, экономят память, позволяя переменным разного типа использовать в разное время одни и те же ячейки памяти.

Они также могут применяться лля нарушения правил работы с типами в некоторых языках, допускающих эту возможность. Подробно вариантные записи и объединения рассмотрены в главе 5. Две переменные указателя являются альтернативными, если они указывают на одну и ту же ячейку памяти. Это справелливо и для ссылок. Такая разновидность совмещения имен не экономит место, а просто является побочным эффектом природы указателей н ссылок. Если указатель в языке С++ адресует именованную переменную, то при разыменовании указатель и имя переменной являются альтернативными именами. Эти и другие свойства указателей и ссылок рассмотрены в главе 5.

Во многих языках программирования имена можно совмещать, используя параметры полпрограмм. Эта разновидность альтернативных имен рассмотрена в главе 8. Некоторых причин, оправдывавших использование альтернативных имен, уже не существует. Когла языковая конструкция создает альтернативные имена для повторного использования памяти, их можно заменить схемой управления динамической памятью, позволяющей повторное использование памяти, но не обязательно создающей при этом альтернативные имена. Более того, современная память компьютера значительно больше, чем была в те времена, когда разрабатывались языки, подобные языку РОКТВАН, так что сейчас память — уже не такой дефицитный товар.

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

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

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

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