И.Г. Головин, И.А. Волкова - Языки и методы программирования
Описание файла
PDF-файл из архива "И.Г. Головин, И.А. Волкова - Языки и методы программирования", который расположен в категории "". Всё это находится в предмете "языки программирования" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Высшее профессиональное образованиеБАКАЛАВРИАТИ.Г.ГОЛОВИН, И.А.ВОЛКОВАЯЗЫКИ И МЕТОДЫПРОГРАММИРОВАНИЯУЧЕБНИКДопущеноУчебно-методическим объединениемпо классическому университетскому образованиюв качестве учебника для студентов высших учебных заведений,обучающихся по направлениям 010400 «Прикладная математикаи информатика» и 010300 «Фундаментальная информатикаи информационные технологии»academ'aМоскваИздательский центр «Академия»2012УДК 004.43(075.8)ББК 32.973-018.1я73Г611Р с ц с п ie in 1.1:доктор физико-математических наук, п р оф ессор Л. II. Гладкий',доктор физико-математических наук, п р оф ессор ll.li, СеменовГ611Головин И. Г .Языки и методы программировании : учебник для студ.учреждений высш. проф.
образования / И. I I олоиип, И.А.Волкова. — М. : Издательский центр «Академия», 2012, — 304 с. —(Сер. Бакалавриат).ISBN 978-5-7695-7973-8У чебник создан в соответстви и с Ф едеральны м государственны м о б р а зовательны м стандартом н о н апр авлен и ю подготовки 010400 «П рикладнаяматематика и информатика» (квалификации «бакалавр»),Рассмотрены основны е парадигмы программирования: процедурная,объектно-ориентированная, функциональная.
О собое внимание уделено семантике и прагматике языковых понятий, их связи с методами и технологиейпрограммирования. Материал представлен на примере современных языковиндустриального программирования: (ч -+ , С #, Java. Отражены теоретическиеи практические вопросы реализации языков программирования.Для студентов учреждений высшею профессионального образования.УДК 004.43(075.8)ББК 32.973-018.1я73Учебное изданиеГоловин Игорь Геннадьевич, Волкова Ирина АнатольевнаЯ ш к и и м етоды п рограм м ировани яУчебиикР едактор Н. / / .
Махона. Тсчип'кч кпп ргдпкю р О. //. К райноваК омпью терная неречка: / ’ К). Никитина. К орректор А. П. СизоваИзд. № 101115871. П одп исано н печам. 28.10.2011. Ф орма! ы> • 90/16. Гарнитур» '-Ньютон». Бумагаоф сетная № I. П ечать оф сетная. Уел. м е ч и . 19,0. Т ираж НИМ) ж i. {акал N<> 30О О О «.'Издательский центр «Академии», www.acaileinia mnscow.ni125252, М осква, ул. Зорге, д.
15, корп. 1,пом.26(>.А дрес для кор р есп о н ден ц и и : 129085, М оскна. мр г М ира, 101 И, п р . 1, а/я 48.Т ел./ф акс: (495) 648-0507, 616-00-29.С ан и тарн о -эп и дем и о ло ги ч еско е чаключсиис N<> Р ()(’( К1). АГ51. II 14964 от 21.12.2010.О тпечатано с эл ек тр о н н ы х носителей ичдатсльстна.ОАО «Тверской п о ли гр аф и ческий комбинат», 170024, i. Titepi., up г Л енина, 5.Телефон: (4822) 4 4 -5 2 -0 3 , 44-50-34. Т елеф оп/ф акс: (4822) 44 '12 15.H om e page — w w w .tverpk.ru Электронная почта (Г-mail)salos«"lvcrpk.niОригинал-макет данного издании наляетсн собственностьюИздательского центра «Академии », и его носирои шедепие любым способом без согласияправообладатели шпрещаетсиIS B N 9 7 8 -5 -7 6 9 5 -7 9 7 3 -8© Головин И.
Г., Волкона И. Д ., 2012© Обраюнателыю-и здательский цен'гр «Академия», 2012© Оформление. И щательский центр «Академия», 2012ПРЕДИСЛОВИЕНеоднократные попытки создания универсального языка программирования не привели к успеху: люди не только продолжаютиспользовать старые языки, но и постоянно придумывают новые.Поэтому изучать приходится несколько языков программирования.При этом набор постоянно используемых языков со временем изменяется: сначала нельзя было обойтись без знания Фортрана, затемнеобходим был ТурбоПаскаль, сейчас трудно обойтись без знанияC++.
Что будет завтра? Авторы затрудняются ответить на этот вопрос,но уверены в том, что «фаворит» снова поменяется.Перед вами учебник, который, как надеятся авторы, поможетвойти в сложный, но необычайно интересный мир языков программирования.Данный учебник основан на курсах «Языки программирования» и«Системы программирования», читаемых студентам факультета ВМКМГУ им. М. В. Ломоносова. Цель учебника — объяснить основныепонятия, конструкции, принципы разработки и реализации современных языков индустриального программирования.В учебнике представлен сравнительный анализ основных понятийи возможностей современных языков.
Понимание фундаментальныхконцепций поможет вам не только лучше использовать знакомыйязык программирования, но и быстрее и легче освоить новый (что,по мнению авторов, рано или поздно будет необходимо).Первые две части учебника посвящены введению в основныеконцепции современных языков программирования. В качестве примеров рассмотрены языки C++, Java и С#. Такой выбор обусловлен,во-первых, популярностью этих языков, во-вторых, доступностьюреализаций на популярных платформах, а в-третьих, тем, что онидемонстрируют основные направления развития современных языковпрограммирования.Третья часть учебника посвящена основному механизму описанияформальных языков — формальным грамматикам, а также основнымприемам, методам и алгоритмам создания программ — анализаторовформальных языков.
Формальные языки — это не только языкипрограммирования, но и любые искусственные языки, имеющиекакую-либо внутреннюю структуру (например, язык алгебры). Зна3ние теории и практики реализации формальных языков должнобыть неотъемлемой частью фундаментального образования любогопрофессионального программиста. Сведения, представленные вучебнике, помогут грамотно и эффективно решать разнообразныезадачи, связанные с обработкой любых формальных языков.Авторы глубоко признательны Вылитку Алексею Александровичуза ряд ценных замечаний по третьей части учебника.ЧАСТЬIОСНОВЫ ЯЗЫКОВ ПРОГРАММИРОВАНИЯГлава 1ПОНЯТИЕ ЯЗЫКА ПРОГРАММИРОВАНИЯ1.1. Определение языка программированияОдно из наиболее общих определений языка программированиядано в [18]: язык программирования — это инструмент для планирования поведения некоторого устройства-исполнителя.
Под такоеочень общее (хотя и полезное) определение подходят, например, каксредства составления программ для жаккардовых ткацких станков(XVIII в.) и калькулятора Ч. Бэббиджа (XIX в.), так и системы программирования современных компьютеров. Исходя из целей курсаограничим это определение: в качестве управляемого устройствабудем рассматривать только компьютеры (вычислительные системы). Планы, управляющие поведением компьютеров, называютсякомпьютерными программами. Тогда уточненное определение будетвыглядеть так: язык программирования — это нотация для записикомпьютерных программ [6].Однако области применения современных компьютеров настолько обширны и разнообразны, что существует большое числоспециализированных языков, подпадающих под наше определение.Например, это язык программирования баз данных SQL [12].
Исполнителем для этого языка является система управления базамиданных (СУБД). Данный язык позволяет описывать и создаватьструктуры баз данных, манипулировать данными (добавлять, модифицировать и удалять данные из базы), составлять запросы навыборку данных.Другой пример специализированного языка — язык разметкигипертекста HTML [19].
Тексты на HTML управляют отображениемгипертекста на экране компьютера. В данном случае исполнителемявляется программа-обозреватель (веб-браузер). Вообще можно сказать, что любая прикладная программа с нетривиальным форматом5обрабатываемых ею данных определяет некоторый узкоспециализированный язык.Конечно, мы не будем рассматривать весь спектр специализированных языков, а ограничимся универсальными языками программирования. Отличие универсальных языков — алгоритмическаяполнота, т.е. возможность описания на таком языке любого вычисления (алгоритма).
Кроме того, на универсальных языках можнопрограммировать широкий класс прикладных задач (теоретически —все возможные), решаемых на компьютере. Ни SQL, ни HTML неявляются универсальными, тогда как на универсальном языке программирования (например, Java или C++) можно реализовать какпрограмму просмотра гипертекста, так и СУБД.Отметим, что многие понятия и концепции, рассматриваемые вкурсе, применимы при анализе и изучении любых языков программирования: и универсальных, и специализированных.