Семь языков за семь недель. Практическое руководство по изучению языков программирования
Практическое руководство по изучению языков программирования
Покупка
Тематика:
Программирование и алгоритмизация
Издательство:
ДМК Пресс
Автор:
Тейт Брюс А.
Перевод:
Киселев Артём Николаевич
Год издания: 2023
Кол-во страниц: 385
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Профессиональное образование
ISBN: 978-5-89818-315-8
Артикул: 484359.03.99
Вместе с семью языками программирования вы исследуете наиболее важные из современных моделей программирования. Вы познакомитесь с динамической типизацией, которая делает языки Ruby, Python и Perl такими гибкими. Постигнете систему прототипов, лежащую в основе языка JavaScript. Увидите, как сопоставление с образцом в языке Prolog сказалось на формировании языков Scala и Erlang. Узнаете, чем функциональное программирование на языке Haskell отличается от программирования на языках семейства Lisp, включая Clojure. Издание предназначено для программистов разной квалификации, в том числе выбирающих для изучения новый язык программирования.
- Полная коллекция по информатике и вычислительной технике
- ДМК Пресс. Информационные системы и технологии
- ДМК Пресс. ИТ-технологии для обучающихся
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для обучающихся (сводная)
- Программирование
- Программирование и алгоритмизация
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 02.03.01: Математика и компьютерные науки
- 02.03.02: Фундаментальная информатика и информационные технологии
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Отзывы читателей книги «Семь языков за семь недель» Знание множества парадигм оказывает существенное влияние на наши подходы к проектированию, поэтому я всегда нахожусь в поиске хороших книг, которые помогали бы мне в изучении этих парадигм. Данная книга объединяет в себе описание основных парадигм программирования. Брюс имеет богатый опыт изучения и использования множества языков. Теперь и вы сможете воспользоваться его опытом благодаря этой книге. Я настоятельно рекомендую прочитать ее. – Доктор Венкат Субраманиам (Dr. Venkat Subramaniam) Титулованный автор и основатель Agile Developer, Inc. Важность изучения новых языков, парадигм и технологий программирования для программиста невозможно преувеличить. Эта книга решает задачу знакомства с семью языками программирования поразительно кратким и необычным способом, показывая сильные их стороны и обосновывая необходимость их изучения. Эта книга послужит отличным введением для всех программистов, желающих расширить свои горизонты или оценить новые для них языки программирования, прежде чем приступать к детальному изучению. – Антонио Каньяно (Antonio Cangiano) Программист и технический популяризатор, IBM Пристегните ремни, потому что поездка будет очень быстрой. Эта книга наполнена быстрыми переходами от одного языка программирования к другому. Брюсу удалось выстроить все в один ряд и в результате получить интереснейшую книгу, которая доставит немало удовольствий увлеченным программистам. Если вы любите осваивать новые языки или любите блеснуть своей эрудицией, если вы хотите подняться на новый уровень – эта книга для вас. Она не разочарует вас. – Фредерик Дауд (Frederic Daoud) Автор книг «Stripes ...and Java Web Development Is Fun Again» и «Getting Started with Apache Click» Хотите выбрать свой «язык года» из великолепной семерки? Хотите упорядочить свои представления о программировании в целом? Тогда вы уже нашли то, что вам нужно! Лично я на время чтения этой книги вернулся в свои студенческие годы, когда предпринимал первые попытки проложить курс через свои языки программирования и посто
янно натыкался на мели. Разница лишь в том, что Брюс не даст вам сбиться с верного курса! Эта книга не предполагает неторопливого чтения – вы вынуждены будете активно работать с ней. Я уверен, что вы найдете ее чрезвычайно увлекательной и весьма практичной. – Мэтт Стайн (Matt Stine) Руководитель отдела разработки программного обеспечения в детской больнице святого апостола Иуды Фаддея (St. Jude Children’s Research Hospital), США На протяжении почти своей учебы в университете по направлению информатики я не хотел быть программистом, но так или иначе стал им. Книга «Семь языков за семь недель» изменила мои взгляды на многие проблемы и напомнила мне, что я все-таки люблю программировать. – Трэвис Каспар (Travis Kaspar) Программист в Northrop Grumman Вот уже более 25 лет я занимаюсь созданием программ для разных аппаратных и программных платформ. После прочтения книги «Семь языков за семь недель» я начал понимать принципы оценки достоинств и недостатков языков программирования. Но самое важное, что я почувствовал, по каким критериям выбирать языки для решения разных задач. – Крис Капплер (Chris Kappler) Старший научный сотрудник, Raytheon BBN Technologies
Семь языков за семь недель Практическое руководство по изучению языков программирования Брюс Тейт
Edited by Jacquelyn Carter The Pragmatic Bookshelf Raleigh, North Carolina Dallas, Texas Seven Languages in Seven Weeks A Pragmatic Guide to Learning Programming Languages Bruce A. Tate
Под редакцией Жаклин Картер Семь языков за семь недель Практическое руководство по изучению языков программирования Москва, 2023 Брюс Тейт 2-е издание, электронное
УДК 004.6 ББК 32.973.26 Т30 Т30 Тейт, Брюс. Семь языков за семь недель. Практическое руководство по изучению языков программирования / Б. А. Тейт ; пер. с англ. А. Н. Киселева. — 2-е изд., эл. — 1 файл pdf : 386 с. — Москва : ДМК Пресс, 2023. — Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный. ISBN 978-5-89818-315-8 Вместе с семью языками программирования вы исследуете наиболее важные из современных моделей программирования. Вы познакомитесь с динамической типизацией, которая делает языки Ruby, Python и Perl такими гибкими. Постигнете систему прототипов, лежащую в основе языка JavaScript. Увидите, как сопоставление с образцом в языке Prolog сказалось на формировании языков Scala и Erlang. Узнаете, чем функциональное программирование на языке Haskell отличается от программирования на языках семейства Lisp, включая Clojure. Издание предназначено для программистов разной квалификации, в том числе выбирающих для изучения новый язык программирования. УДК 004.6 ББК 32.973.26 Электронное издание на основе печатного издания: Семь языков за семь недель. Практическое руководство по изучению языков программирования / Б. А. Тейт ; пер. с англ. А. Н. Киселева. — Москва : ДМК Пресс, 2014. — 384 с. — ISBN 978-5-94074-539-6. — Текст : непосредственный. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации. ISBN 978-5-89818-315-8 © 2010 Pragmatic Programmers, LLC. © Оформление, перевод, ДМК Пресс, 2014
Содержание Посвящение .................................................... 16 Благодарности ................................................. 18 Предисловие ................................................... 22 Глава 1. Введение ............................................ 25 1.1. Логика описания ..........................................................................................25 1.2. Языки ...............................................................................................................27 1.3. Купите эту книгу .........................................................................................29 Учитесь учиться ...........................................................................................29 Где получить помощь в трудный момент ............................................30 1.4. Не покупайте эту книгу .............................................................................31 Здесь рассказывается не только о синтаксисе, но и о многом другом ..............................................................................................................31 Здесь не описывается порядок установки ..........................................32 Это не справочник по программированию .........................................32 Я буду постоянно подталкивать вас ....................................................33 1.5. Заключительное замечание .....................................................................34 Глава 2. Ruby ................................................... 35 2.1. Краткая история ..........................................................................................36 Интервью с Юкихиро Мацумото (Мац) .............................................36 2.2. День 1: Поиск няни .....................................................................................38 Молниеносный тур .....................................................................................38 Использование Ruby в консоли .............................................................39 Модель программирования......................................................................39 Условные конструкции ..............................................................................40 «Утиная» типизация ...................................................................................44 Что мы узнали в первый день..................................................................46 День 1: задания для самостоятельного решения ..............................46 2.3. День 2: Спускаемся с небес ......................................................................47 Определение функций ...............................................................................47 Массивы ..........................................................................................................47 Хэши .................................................................................................................49 Блоки кода и инструкция yield ...............................................................51 Запуск файлов сценариев на Ruby .......................................................53
Содержание Определение классов .................................................................................53 Подмешивание ..............................................................................................56 Модули, перечисления и множества ....................................................58 Что мы узнали во второй день ................................................................60 День 2: задания для самостоятельного решения ..............................60 2.4. День 3: Большие перемены ......................................................................61 Открытые классы ........................................................................................62 Применение метода method_missing ....................................................64 Модули ............................................................................................................65 Что мы узнали в третий день ...................................................................69 День 3: задания для самостоятельного решения ..............................69 2.5. В заключение о Ruby ..................................................................................70 Сильные стороны ........................................................................................70 Недостатки .....................................................................................................72 Заключительные замечания ....................................................................73 Io ................................................................... 75 3.1. Введение в Io .................................................................................................75 3.2. День 1: Пропустим школу и повеселимся ..........................................76 Ломаем лед .....................................................................................................77 Объекты, прототипы и наследование ...................................................79 Методы ............................................................................................................81 Списки и отображения ..............................................................................83 true, false, nil и одиночные объекты .......................................................85 Интервью со Стивом Декортом .............................................................87 Что мы узнали в первый день..................................................................89 День 1: задания для самостоятельного решения ..............................89 3.3. День 2: Сосисочный король .....................................................................90 Условные конструкции и циклы ............................................................90 Операторы ......................................................................................................92 Сообщения .....................................................................................................94 Рефлексия ......................................................................................................97 Что мы узнали во второй день ................................................................99 День 2: задания для самостоятельного решения ..............................99 3.4. День 3: На параде и в других неожиданных местах ..................... 100 Предметно-ориентированные языки ................................................. 100 Аналог метода method_missing в языке Io ....................................... 103 Параллельные вычисления ................................................................... 105 Что мы узнали в третий день ................................................................ 109 День 3: задания для самостоятельного решения ........................... 109
Содержание 9 3.5. В заключение об Io ................................................................................... 110 Сильные стороны ..................................................................................... 110 Недостатки .................................................................................................. 111 Заключительные замечания ................................................................. 113 Prolog ........................................................... 114 4.1. О языке Prolog ........................................................................................... 115 4.2. День 1: Отличный водитель .................................................................. 116 Факты ........................................................................................................... 116 Простые выводы и переменные ........................................................... 118 Восполнение неполноты ........................................................................ 119 Раскрашивание карты ............................................................................. 121 А где сама программа? ............................................................................ 122 Унификация, часть 1 ................................................................................ 123 Практическое применение языка Prolog .......................................... 125 Что мы узнали в первый день............................................................... 129 День 1: задания для самостоятельного решения ........................... 129 4.3. День 2: Пятнадцать минут до «Народного суда» .......................... 130 Рекурсия ...................................................................................................... 130 Списки и кортежи .................................................................................... 132 Унификация, часть 2 ................................................................................ 132 Списки и математические операции .................................................. 135 Использование правил в обоих направлениях............................... 138 Что мы узнали во второй день ............................................................. 142 День 2: задания для самостоятельного решения ........................... 142 4.4. День 3: Взорвем Лас-Вегас .................................................................... 143 Решение судоку ......................................................................................... 143 Восемь ферзей ............................................................................................ 148 Что мы узнали в третий день ................................................................ 154 День 3: задания для самостоятельного решения ................................... 154 4.5. В заключение о Prolog ............................................................................ 155 Сильные стороны ..................................................................................... 156 Недостатки .................................................................................................. 157 Заключительные замечания ................................................................. 158 Scala ............................................................ 159 5.1. О языке Scala.............................................................................................. 159 Близость с Java... ....................................................................................... 160 Но без рабской преданности ................................................................. 160 Интервью с создателем Scala, Мартином Одерски....................... 161
Содержание Функциональное программирование и параллельные вычисления ................................................................................................. 163 5.2. День 1: Дом на холме ............................................................................... 164 Типы данных в Scala ............................................................................... 164 Выражения и условные конструкции ............................................... 166 Циклы ........................................................................................................... 168 Диапазоны и кортежи ............................................................................. 171 Классы в Scala ............................................................................................ 173 Вспомогательные конструкторы ......................................................... 176 Расширение классов ................................................................................ 177 Что мы узнали в первый день............................................................... 179 День 1: задания для самостоятельного решения ........................... 181 5.3. День 2: Обрезка кустарников и другие новые хитрости ............. 181 var и val ......................................................................................................... 182 Коллекции ................................................................................................... 184 Типы Any и Nothing ................................................................................. 188 Коллекции и функции ............................................................................ 189 Что мы узнали во второй день ............................................................. 195 День 2: задания для самостоятельного решения ........................... 196 5.4. День 3: Художественная стрижка ...................................................... 196 XML ............................................................................................................... 197 Сопоставление с образцом .................................................................... 198 Ограничители ............................................................................................ 199 Регулярные выражения .......................................................................... 199 Обработка XML и сопоставление с образцом ................................ 200 Параллельные вычисления ................................................................... 201 Параллельные вычисления в действии ............................................ 203 Что мы узнали в третий день ................................................................ 206 День 3: задания для самостоятельного решения ........................... 207 5.5. В заключение о Scala ............................................................................... 207 Основные сильные стороны ................................................................. 208 Недостатки .................................................................................................. 210 Заключительные замечания ................................................................. 212 Erlang ........................................................... 213 6.1. Введение в Erlang ..................................................................................... 213 Поддержка параллельных вычислений ............................................ 214 Интервью с доктором Джо Армстронгом ........................................ 216 6.2. День 1: Появление человека ................................................................. 218 Введение ...................................................................................................... 219