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

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

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

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

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

Однако прежде, чем их использовать, лучше ознакомиться с руководством по используемой версии 1 1БР. Функции работы со списками: + (саг ) ) возвратцаетпервьтйэлементсписка).. (сааг Ь) = (саг(саг ц)),ит.д. + (сцг (.) возвращаетсписок).безпервогоэлемента. (с(Ыг (.) - (сог(сог (.)),и т.д. Функции саг и сйг могут использоваться совместно в произвольном порядке, наприлтер, (сапог (.) =(саг(сйг(сйг (.))). + (сопз х у) возвращает список 6 такой, что (саг (.) = х, а (с()г (.) = у, + (1тзт х у т) возвращает список (х у г).

+ (()цосе х)(ог 'х) не вычисляет х. Предикаты; + (аеоа х) возвращает истину, если х — атом. + (пцеоегр х) возвращает истину, если х — число. + (йгеатегр х у) возвращает истину, если х > у. + (1еезр х у) возвращает истину, если х < у. + (пц)1 х) возвращает истину, если х — пустой атом пт1. + (апО х у) возвращает х А у. + (ог х у) возвращает х м у. + (па1 х) возвращает- х. + (е() х у) возвращает истину, если х и у — одинаковые атомы или списки. + (ецца! х у) возвращаетистину,если хну — спискисодинаковымиалементами. Арифметические функции: + (+ х у) возвращает х + удля атомов хну.

Аналогично работают*,! и -. + (геп х у) возврап(ает остаток от деления х/у. Функции ввода и вывода. Многие из этих функций различаются в различных реализациях 116Р. 624 Приложение, Обзоры языков + (1оас иия файла) считывает файл с указанным именем как последовательность определений языка 1.18Р. Это основное срелство загрузки программ из файлов. + (рш пт х) печатает элемент х. В $сЬеше эта функция называется также О т яр) ау.

+ (орел иия файла) открывает файл с указанным именем и возвращает указатель на этот файл. Обычный способ использования этой функции — сохранение указателя на данный файл с помощью функции зеьт): 1ветл тптт)е Опрея 'иия файла)) и использование переменной ) пт'т1е в операторе геао. + (геао) считывает с терминала следующий атомарный символ (число, символ или строку), (геат) указатель файла) считывает из файла, заданного своим указателем, слелующий атомарный символ, если ланный файл был предварительно открыл. + (пе)р) нлп (ле) р 'сояжапд) может нрелоставить полезную информацию.

+ (1гасе пи я функции) осуществляет трассировку выполнения указанной функции, используется лля облегчения выявления ошибок программы. + ())уе) осуществляет выход из 1 18Р. Абстракции и инкапсуляция Базовый Ь13Р не прслусматривает возможности абстракции данных. Однако Сотпюп 118Р солержнт объекютую систему Сощтоп 118Р ОЬ)ест 8узгегл (СЕОВ). С)08 стал результатом слияния четырех объектно-ориентированных расширений 1.18 Р в середине 80- ггл )ч)етч Е! ачогв, Сопппоп(соря, ОЬ) есг Ы БР и Сопл пюп ОЬ)есГ 1106).

С1.08 прелоставляет следующие возможности: 1. Множественное наслелование, которое обеспечивается наследованием я)) х) и (раздел 7.2.3). 2. Общие функции. 3. Метаклассы и метаобъекты. 4, Способ создания и инициализации объектов, который попускает пользовательское управление процессом. П.7. М1. Пример с пояснениями В листинге П.9 представлен пример суммирования элементов массива. Язык МЕ работает как интерпретатор, в этол) примере используется Бсапйагй М1., разработанный в Пыо-Джерси, Листинг П.я. Суммирование элементов массива на языке М1 1 вептгог ргоч вю! 2 йю О)От'Ыс.втгтпч) тпв = огптс)-огот"О"): 3 О* Значения сохраняются в виве списка сииволов *) 4 гоп 5пвкехыч) = 1т ч-( 1 впеп 1рюпм"'тп 5ою-"); О) П.7.

(Ч(( 625 5 е1ае (Рг!РСШЙ Ч)). б 5оаяемС(С1(Ч)>»бмуС(ьб(Ч>)); 7 оп 5оана1иеа(х:атг!пд>:!РС- 5иаиех((емр1обе(м)), 8 1пп Ргосеазоага(>- 9 (1еС на1 ап!а1е = преп зп("баСа.ап!"). 10 на1 спппС = йд!С(мпрчС(!и(!1е.1>) 11 !и 12 рг~пС(5чпна1иеа(!прчС(!п171е.спьпС))> !3 епб: 14 Рг!РС( Цп")>. 15 теШСпг бага,ая! 16 41234 17 Жаэ) 18 — Чае "Ргпд ап!": 19 (препапд Ргод.ап11 20 на1 ШдпС = Гп : >Сгапд -> )пС 21 на1 5ипвемС " (и .

!Спад 1!!С -> зпС 22 на1 5пвна1иеа - 1п . ССг!пд -> апС 23 на! Ргесеазоа(а = 1п : чшС -> ппаС 24 на1 мс - () : ипмС 25 — Ргосеааоага(): 26 1234 27 5чаи10 28 на! аС - (): ипзС Строки 1-14. Для создания программы вызывается редактор, Текст програм- мы может быть напечатан прямо в сеансе работы с МЕ, а не подключаться с помо- щью команды озе, как в строке 18. Строка 2. Функции перед их использованием необходимо объявлять. Функ- ция б101 С получает в качестве аргумента один символ и возврашает целое значе- ние, преобразуя полученный символ в целое число, как и в вышеописанном при- мере на языке С из раздела П.2. Символ «1» на единицу больше, чем символ «0», «2» больше, чем «0», на 2 и т.

д. Функция огб возвращает целое значение первого символа своего строкового аргумента, Строка 3. Так выглядят комментарии на языке М1. Строки 4 — 6. Здесь определяется функция, которая рекурсивно выбирает оче- редную начальную цифру из массива и добавляет ее значение к сумме, Строка 5. Если список не пустой, то должно вычисляться следующее значение. Печатается заголовок списка. Строки 5-6 формируют последовательность из двух выражений, которые нужно вычислять как часть выражения 0150. Строка 7. Здесь инициализируется сумма элементов списка.

Входная строка преобразуется в список символов с помощью встроенной функции ехр1 обе, затем функция 5паЧ(ехС вычисляет значение каждого символа из списка. Строка 9. Прежде чем вычислять выражение в строке ! 2, вычисляются выра- жения 1ес в строках 9 и 1О. (п1!1е инициализируется как указатель на файл дан- ных. Побочныл( эффектом вычисления этого выражения является открытие фай- ла данных. Строка 12. Переменная соопС содержит количество символов, которые следует прочитать. Это количество символов считывается, и результирующая строка пе- редается для обработки в функцию 5оа!Ча! оез. Получившееся значение выводится на печать.

626 Приложение, Обзоры языков Строка 14. Печатается символ конца строки. Строки 15-16. Для создания файла данных вызывается редактор. Строки 17 — 18. Загружается ЗСапс)агс) М1, и считывается файл ргали.зш(, содержащий последовательность определений функций. Строки 19-24. Вывод интерпретатора М1., указывающий, что он обрабатывал определения функций из входного файла. Печатаются сигнатуры функций Вар С, 5иеиехС, 5япНа) оез и Ргосеззбата.

Строка 25. Вызывается функция РгосезаВата(). Строки 26-2К Приведенные данные (в том числе вычисленная сумма) — результат работы программы. Выход из М1. осуществляется с помощью индикатора конца файла — обычно это сочетание клавиш <ССг) +В>, введенное с клавиатуры, П.7.1. Объекты данных Элементарные типы данных Переменные и константы.

В языке М1. существуют целые (1лС) константы (например, 1, 2, 3, 4), вещественные числа (геа) ) (например, 1.2, 3.4, 1(СЕЗ) с записью в общепринятой нотации, булевая значения (Ьоо) ) (то есть истина или ложь) и строки (ССг1лц) (например, "1", "аЬс" ), Как для вещественных, так и для целых отрицательных чисел используется символ «-» (тильда), В языке М1. регистры различаются, так что Тгое и АВС вЂ” нето же самое, что Сгое и аЬс. Только Сгце и 1а) зе являются булевыми литеральными константами. В М 1 используются соглашения языка С для представления управляющих символов.

Чтобы встроить управляющий символ в строку, следует использовать последовательность символов )л для символа новой строки, )" — для кавычек (без экранирующего символа обратной наклонной черты кавычки в строке воспринимались бы как признак ее завершения), СС для символа табуляции и ) ЬЬЬ, где ЬЬЬ— трехзначный восьмеричный код символа. Идентификаторы — зто последовательности символов, начинающиеся с буквы или символа апострофа (') и содержащие буквы, цифры и символ подчеркивания ( ).

Идентификаторы, начинающиеся с апострофа, рассматриваются как идентификаторы типов. Структурированные типы данных В языке М1 существую~ следующие структурированные объекты: кортежи, списки и записи. Кортеж(Сор)е) представляетсобой последовательностьобъектов,разделенных запятыми и заключенных в скобки. 112 "аЬс". 3) — это кортеж типа1лС*зСг1по*1лС. Кортеж может иметь неограниченное количество уровней вложенности. Кортеж )2, "а".

(3, 4 3), "хуг". Мгве. 7)) имеет тып О лС*згг!лп*()лС* еа))*зтг!лВ*(Ьоо)*!лС)). К 1-му злементу кортежа можно обратиться с помощью конструкпии ФС например, второй злемепт кортежа определяется как 1)2, например(12(2. 4. 6) = 4. Список () )зС) является кортежем объектов одного типа. Четыре строки в списке можно было бы задать как ("а", "Ь", "с". "Ь"), а результирующий тип обозна- чается как зтг)п0 11зт. Аналогично, ((1.21, (3,4Ц будет типа1пт 1те1 1тз1 или список списков целых величин.

Функция й1 обозначает пустой список. Для задания записи (гесогб) в языке М). используется синтаксис (1аЬе1, = значение, 1аЬе1, = значение....), где компоненты записивыбираются операциейЮаЬе1. На самом деле кортежи являются специфической разновидностью записи. Кортеж (10, 23.

"а") является вкземпляром записи (1=10, 2=23. 3="а"). Инициализация. Чисто аппликатнвные языки не имеют концепции присваивания значения области памяти. Однако в языке М1 значение может быть связано с идентификатором с помощью конструкции ча1. Так, чд1 идентификатор - внрввение связывает значение выражения с именем идентификатора, Например, ча1 Х - 7 выведет на печать строку ча) Х - 7 ; тпт означающую, что Х имеет значение 7 типа 1пт. В языке М1. также существует ссылочный тип, который более тесно связан с хранением данных.

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

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

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