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

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

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

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

Таким образом зародилась идея операционной системы 1)Ы1Х. Система Мп!г!сз программировалась па языке Р 1/1, и хотя он достаточно громоздок, было желанно написать новую систему, ()г!1Х, именно на языке высокого уровня. Поскольку Томпсон имел некоторый опыт работы с системным языком ВСРП (языком низкого уровня, не имеющим никаких средств динамической поддержки), он разработал новый язык под названием В, который реализовывал минимальное подмножество возможностей языка ВСРП для системного программирования (~ВСР1 помещался в 8-килобайтнучо намять компьютера (Р()Р-7!» !92!). В настоящее время трудно представить, насколько существенным сдерживающим фактором было ограничение объема памяти всего 30 лет назад.

В 1970 г, для проекта 11К1Х был приобретен компьютер !'1) Р-11 с его огромной памятью в 24 Кбайт. В ато время небольшое, но растущее сообщество ()Ы1Х почувствовало ограничения языка В. Поэтому в В были добавлены такис понятия, как типы, определения структур н некоторые дополнитсльныс операторы, и новый язык стал известен под именем С. 1.5. Обзор языка С 59 Хотя С вЂ” универсальный язык программирования, он тесно связан с системным программированием. Этот язык впервые был использован для написания ядра операционной системы ()гч! Х и с тех пор оыл тесно связан с реализациями ())ч1Х. В настоящее время реализации языка С существуют в большинстве компьютерных систем. В 70-е гг.

интерес к языку С проявлялся в основном со стороны университетских кругов, отдававших предпочтение операционной системе (Л~ПХ. Когда в 80-х гг, начали появляться коммерческие версии этой системы, их популярность постоянно росла благодаря языку С. В 1982 г. рабочая группа института стандартов АК81 начала работать над стандартом языка С, который увидел свет в 1989 г. 110~ и был принят и в качестве международного стандарта (180/1Е8 9899) в 1990 г. В настоящее время программисты, использующие язык С, — наиболее быстро растущая популяция в программистском мире.

Вместе с языками Сч"ь и )ага, которые разрабатывались на его основе, он оказывает наибольшее влияние на программирование. Синтаксис исемантнкабольшинствановыхязыкон(такпхкак)ага я Рог!) частично основаны на концепциях, характерных для языка С. Краткий обзор языка. Когда речь идет о языке С, как правило, рассматривается не столько собственно сам язык, определяемый специальной грамматикой, а среда этого языка. Составные части среды программирования языка С таковы.

+ Язык С. Это относительно небольшой язык с ограниченным набором структур управления и возможностей. (Нс забывайте, что он развился из минимального компилятора, который работал на РРР-7, а позже на Р()Р-11.) + 77репроцессор С. Поскольку почти каждый компилятор С включает в себя операторы препроцессора, начинающиеся с символа №, то оольшинство пользователей даже яс подозревают, что они нс являются составной частью собственно языка С, + Лопуп1сиия ияшерфейса С. В результате использования возможностей языка С возник ряд соглашений. Например, принято, что определения интерфейсов между модулями должны храниться в соответствующем заголовочном файле с расширением .и.

В операторе Фпс1пде "яугспщ" прп определении интерфейса к модулю пуггп используется как С-прспроцессор, так н указанное соглашение. + Библиоглвхи С. Многие функции, такие как рщптй дегсПзг, пзН ос, 1ог1 и ехес, были написаны с помощью интерфейсов С, хотя опи не входят в официальное определение языка С. Однако в стандарте АМ81 языка С эти функции включены в язык в качестве обязательных библиотечных функций для согласующихся со стандартом компиляторов. Подключение большой библиотеки позволяет расширять с помощью ее функций относительно небольшое ядро языка. Модуль на языке С состоит из глобальных объявлений н последовательности вызовов функций. Для формирования одной выполняемой программы одновременно загружается несколько модулей. Каждая функция может вызывать другие функции и имеет доступ как к локальным, так и к глобальным данным, 60 Глава 1.

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

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

В языке С имеется большой набор арифметических операций, которые позволяют писать очень эффективные, а иногда и очень лаконичные программы. Также имеется полный набор структур управлешш с очень гибкой ссмантикой, иногда допускаюгдсй довольно необычное использование. Кроме того, в С предусмотрена возможность гибкого определения типов. Тем не менее можно утверждать, что С является одновременно и сильно типизированнымм, и не сильно типизированным языком. Такая неоднозначность возникает пзза того, что большинство отдельных элементов данных являются подтипами целого типа. Хотя транслятор и обнаружит оцшбки, связанные с несоответствием типов, но поскольку большинство элементов данных в конечном счете относятся к целочисленному типу, многие ошибки могут остаться незамеченными.

Язык С изначально был тесно связан с функциональными возможностями операционной системы. В операционной системс 1Л~1Х нскоторые фуикции операционной системы (например, функция еа11ос для динамического выделения области памяти) определены как вызовы соответствующих функций языка С. По соглашению все они определяются в системных заголовочных файлах с расширением .й. Так, например, для вызова па11ос из программы на языке С в начале программы должен быть подключен соответствующий файл Фапс1вое <ва11ос ж> а при дальнейшем использовании этой функции в программе следует просто писатыа11ос(5аогаде51гей указывая в качестве параметра требуемый обьсм памяти. При компиляции и запуске такой программы определения соответствующих функций (напримср, па11ос) подключаются из библиотеки С.

Компилятор С сначала запускает прспроцсссор. Такис команды, как (гое1 пе и (г1 пс1опе выполняются в первую очередь, азатом уже транслятором С компилируется вся остальная программа При разработке операторов ввода-вывода в качестве образца была взятка концепция оператора ЕОкпАЕ языка РОКТКЛК, но получившиеся в результате операторы лучше приспособлены для шперактивных программ, чем операторы кЕАО и 'ик1 тЕ языка ГОКТКЛМ Большинство полезных функций определено в системном файле зЫ1о.'и, который должон подключаться к любой программе на языке С. Та- 1.7.

Задачи и упражнения б1 кой подход позволяет легко расширять язык — достаточно написать ряд новых функций для добавления новых функциональных возможностей. В программе можно использовать комментарии (любой текст, ограниченный символами!*...*!), задаваемые в любом месте, где можно использовать пробел. Поскольку формат текста свободный, то символы продолжения строки пе нужны, однако каждый макроопсратор препроцессора обязательно должен определяться в одной строке.

Тем нс менее можно использовать символ (~) для указания, что определение макроопсратора прснроцессора продолжается в следующей строке. 1.6. Рекомендуемая литература Во многих книгах конкретные языки программирования рассматриваются на обзорном уровне. В книгах Дершема и Джигита [35], Лоудсна [74], Ссбссты [99] и Сети [100) предложен альтернативный взгляд на многие аспекты, освещенные в данной книге. Ранний зтап истории развития языков программирования хорошо изложен в книгах Саммета [95],[96] и Розена [93].

Под редакцией Вексельблата (%'схс!Ыас) вышел сборник статей, написанных разработчиками многих основных языков, среди которых Л(.СО(., ЛР(., СОВО[ч РОСТКАХ Р[./! [117]. В 1993 г. прошла Вторая конференция по истории языков программирования [4]. В атом издании приведена более полная информация но истории языков Рго!оя, С, 1!ЯР, Сч-ч-, Лда и Разса1, а также некоторых других, о которых не рассказано в нашей книге. Роль стандартизации языков описана в книге Рада и Берга [90], Все языки, описанные в этой книге, испытывают влияние как среды программирования, так и операционной среды.

Эти факторы особенно сильно повлияли на такие языки, как Лба, С, 1.1ЯР, М1. и Рго!о(ь Описание многих современных вариантов сред программирования приведено в книгах Брауна [23], а также Перри и Кайзера [87). О способах проверки корректности программ и об ограничениях методов верификации можно прочитать у Абрамса и Вслковпца [2]. Статьи на все рассмотренные в атой главе темы можно найти в журналах )ЕЕЕ 7)гагьуастют оп Еоуггеаге епюпееппд, лсл4 тгапхасглокх оп 5о/ггеаге Гпдтеепггд' и 5о/)маге Ргасг(се апг)Ехрепепстс 1.7.

Задачи и упражнения 1, Используя критерии, приведенные в разделе 1.3.1, оцените причины популярности того языка, который наиболее активно используется на вашем локальном компьютере. Нужно ли расширить список критериев? 2. Выберите стандартизованный язык, к компилятору которого у вас есть доступ. Напишите программу, которая, оудучи несовместимой, все же компилируется и выполняется. Перечислите те нестандартныс возможности, которые поддерживает ваш компилятор. 3.

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

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

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