Главная » Просмотр файлов » Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002)

Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (1160801), страница 18

Файл №1160801 Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002)) 18 страницаТ. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (1160801) страница 182019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Когда выходит стандарт языка(обычпо каждые 5 — 10 лет), сильное влияние на составление нового стандарта оказывает требование совместимости бо- 62 Глава 1. Проблемы разработки языка лес старых программ с реализациями новых версий.

Таким образом, прп составлении стандарта имеет место некоторое внешнее давление на разработчиков, вынуждающее их включать предыдущую версию в новый стандарт. Для нескольких стандартных определений языков Аг!а, СОВО! и РОВТВАЕч! сравните языковые конструкции и перечислите наиболее слабые из них (с вашей точки зрения), наличие которых в данной версии языка объясняется только требованием совместимости с предыдущими версиями. 4. Рассмотритс следующий простой язык. Символы а и Ь являются пменамп целых переменных.

Каждый оператор может иметь прсфпксную метку. Определены следующие операции; Присваивает переменной а значение переменной Ь Прибавляет 1 к значению переменной а Вычитает 1 из значения переменной а Если а = О, управление передается оператору с меткой С Если а > О, управление передается оператору с меткой Ь Передает управление оператору с меткой С Завершает выполнение программы в=ач1 в=а-1 Г а =О твен ОС1с Г Г а >С Ььеп Осгс Ь Чсго Ь ьа',т Е!апрнмер, программа, вычисляющая а=а+Ь, может быть записана следующим образом: Ь; а-.а+1 Ь=Ь-1 ~Г 'ьяс 1геп ЧЬ1с Ь Ьмт а) Напишите на этом языке следующие программы: 1) дано а и Ь, вычислить х = а + Ь; 2) дано а н Ь,вычислить х = а х Ь; 3) ланоа, Ь,с иб,вычислитьх = з х Ьиу = с х О, б) Обсудите минимальный набор расширений для того, чтобы этот язык было легко использовать.

Рассмотрите такие концепции, как подпрограммы, новые операторы, объявления и т, л. 5. Возьмите какую-нибудь программу, написанную вами на императивном языке (например, РОДСТВА!ч1, С или Рааса!), и перепишите ее так, чтобы она стала аппликативпой. 6. Возможности языка С позволяют описать некоторое действие несколькими разными способамп. Сколько различных операторов вы можете написать на С, чтобы прибавить 1 к переменной х (эквивалентных оператору х=хя1)? Выясните преимущества и недостатки этого аспекта языка С. 7. Описанный в конце разлела 1.4.1 оператор аззегс может быть реализован или как тест, используемый во время выполнения программы и выполняемый всякий раз, котла в программе доходит очередь Ло этого оператора, илп как некоторое свойство, лля которого следует осуп1сствить проверку на истинность в атой точке программы.

1.7. Задачи и упражнения БЗ а) Обсудите, как можно реализовать каждый из этих подходов. Какие сложности могут возникнуть при реализации каждого из подходов? б) Когда условное выражение оператора азэег~ будет всегда истинно для каждого метода реализации? 8. Первые компьютеры были сконструированы как электронные калькуляторы для решения численных задач. Подумайте, как бы могли выглядеть языки программирования, если бы первые компьютеры создавались для разных конкретных целей (например, для обработки текстов, управления роботами, игр).

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

Массивы символов называются строками (вгпня) и обрабатываются специальным образом. Элементы записей могут быть символьного типа и массивами, но записи не могут быть элементами массивов. Массивы не могут быть элементами массивов, но можно использовать многомерные массивгв для достижения того же результата. Глава 2. Влияние машинной архитектуры Как описано в разделе 1.2, рагпгис языки программирования разрабатывались так, чтобы написанные на них программы могли эффективно работать на дорогостоящих вычислительных машинах.

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

Например, определение пользовательских типов данных в М), объект класса (с1азз) в С++ и спецификация пакета (расйайе) в языке Аг(а упрощают процесс написания корректно работающих программ, но за зто приходится расплачиваться уменьшением скорости выполнения. В этой главе мы постараемся ответить на вопрос, как создаются языки програьчмирования.

При разработке языка программирования учитывается архитектура программного обеспечения, которая, соответственно, оказывает влияние на идеологию создаваемого языка. Это влияние опрелеляется: 1) реальным компьютсром, на котором будут выполняться написанные наланном языке программы; 2) молслью выполнения, пли виртуальным компьютером, который поддерживает этот язык на реальном компьютере. 2.1. Структура и принципы работы компьютера Компьютср представляет собой интегрированный набор алгоритмов и структур данных, способный хранить и выполнять программы.

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

Ре- 2.1. Структура н принципы работы компьютера 65 ализация языка программирования осуществляется путем создания транслятора, который транслирует программы, написанные на данном языке, в программы па машинном языке, которые уже могут непосредственно выполняться на какомлибо компьютере. Этот компьютер может являться как реальным физическим компьютером, так и виртуалычыи компьютером, состоящим частично из аппаратуры и частично из программного обеспечения.

Любой компьютер составляют шесть основных компонентов, функциональность которых тесно взаимосвязана с основными аспектами языка программирования. 1, Данные, Компьютер должен обрабатывать различные типы простейших элементов данных и структур данных. 2. Элевентирные опериции. Компьютер должен иметь набор элементарных операций для работы с данными. 3. Упривление последовательностью действий Компьютер должен обеспечивать управление последовательностью выполнения элементарных операций.

4. Доступ к далнььч. Компьютер должен предоставлять механизмы управления данными, которые необходимы для выполнения любой операции. 5. Управление ламяглью. Компьютер должен предоставлять механизмы управления распределением памяти для программ и данных. 6. Операционная среда. Компьютер должен предоставлять механизмы связи с внешней средой, содержащей программы и данные, подлежащие обработке. Эти задачи определяют особенности разработки языков программирования.

Но прежде, чем рассматривать их в достаточно сложном контексте языков программирования высокого уровня, следует посмотреть на них в более простом контексте реального физического компьютера. 2.1.1. Аппаратные средства компьютера Архитектура компьютеров весьма разнообразна, но рис. 2, 1 иллюстрирует довольно типичную, традиционную организацию большинства компьютеров. Операпшвная память содержит программы и данные, которые подлежат обработке.

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

2.1) изображены три основных компонента, предназначенные для хранения данных; оперативная память, быстрые регистры и внешние файлы. Оперативная память обычно представляет собой линейную последовательность битов, разделенную па слова фиксированной длины (как правило, слово содержит 32 или 64 бита) или байты, состоящие из 8 битов (4 или 8 байтов на одно слово).

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

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

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