Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 636760)
Контекстум
Электро-2024

Семь языков за семь недель. Практическое руководство по изучению языков программирования (3000,00 руб.)

0   0
Первый авторТейт
ИздательствоМ.: ДМК Пресс
Страниц386
ID836819
АннотацияВместе с семью языками программирования вы исследуете наиболее важные из современных моделей программирования. Вы познакомитесь с динамической типизацией, которая делает языки Ruby, Python и Perl такими гибкими. Постигнете систему прототипов, лежащую в основе языка JavaScript. Увидите, как сопоставление с образцом в языке Prolog сказалось на формировании языков Scala и Erlang. Узнаете, чем функциональное программирование на языке Haskell отличается от программирования на языках семейства Lisp, включая Clojure. Издание предназначено для программистов разной квалификации, в том числе выбирающих для изучения новый язык программирования.
ISBN978-5-89818-315-8
Тейт, Б.А. Семь языков за семь недель. Практическое руководство по изучению языков программирования / Б.А. Тейт .— Москва : ДМК Пресс, 2023 .— 386 с. — ISBN 978-5-89818-315-8 .— URL: https://rucont.ru/efd/836819 (дата обращения: 24.05.2024)

Предпросмотр (выдержки из произведения)

Семь_языков_за_семь_недель._Практическое_руководство_по_изучению_языков_программирования.pdf
УДК 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
Стр.7
Содержание Посвящение .................................................... 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
Стр.8
8  Содержание Определение классов .................................................................................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
Содержание  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
Стр.10
10  Содержание Функциональное программирование и параллельные вычисления ................................................................................................. 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
Стр.11
Содержание  11 Комментарии, переменные и выражения ......................................... 219 Атомы, списки и кортежи ...................................................................... 221 Сопоставление с образцом .................................................................... 222 Сопоставление на уровне битов .......................................................... 224 Функции ...................................................................................................... 225 Что мы узнали в первый день............................................................... 228 День 1: задания для самостоятельного решения ........................... 229 6.3. День 2: Изменение формы ..................................................................... 230 Управляющие структуры ....................................................................... 230 Анонимные функции .............................................................................. 233 Списки и функции высшего порядка ................................................ 234 Дополнительные средства для работы со списками .................... 237 Что мы узнали во второй день ............................................................. 242 День 2: задания для самостоятельного решения ........................... 243 6.4. День 3: Красная таблетка ....................................................................... 243 Основные примитивы параллельных вычислений ...................... 244 Обмен синхронными сообщениями ................................................... 247 Связывание процессов для повышения надежности .................. 250 Что мы узнали в третий день ................................................................ 255 День 2: задания для самостоятельного решения ........................... 256 6.5. В заключение об Erlang .......................................................................... 257 Основные сильные стороны ................................................................. 257 Основные недостатки .............................................................................. 259 Заключительные замечания ................................................................. 260 Clojure .......................................................... 261 7.1. Введение в Clojure .................................................................................... 262 О Lisp ............................................................................................................ 262 На стороне JVM ........................................................................................ 263 Готовность к встрече с миром параллельных вычислений ........ 263 7.2. День 1: Обучение Люка .......................................................................... 264 Вызовы простых функций ..................................................................... 265 Строки и символы .................................................................................... 267 Логические значения и выражения.................................................... 268 Списки, ассоциативные массивы, множества и векторы ............ 270 Определение функций ............................................................................ 275 Что мы узнали в первый день............................................................... 282 День 1: задания для самостоятельного решения ........................... 283 7.3. День 2: Йода и Сила ................................................................................ 284 Рекурсивные вычисления с помощью loop и recur ....................... 284
Стр.12
12  Содержание Последовательности ................................................................................ 286 Отложенные вычисления ...................................................................... 289 defrecord и defprotocol ............................................................................. 293 Макросы ....................................................................................................... 296 Что мы узнали во второй день ............................................................. 298 День 2: задания для самостоятельного решения ........................... 299 7.4. День 3: Глаз дьявола ................................................................................ 299 Ссылки и транзакционная память ...................................................... 300 Атомы ............................................................................................................ 302 Агенты .......................................................................................................... 304 Отложенные задания............................................................................... 306 Что мы пропустили .................................................................................. 307 Что мы узнали в третий день ................................................................ 308 День 3: задания для самостоятельного решения ........................... 308 7.5. В заключение о Clojure ........................................................................... 309 Парадокс языка Lisp ............................................................................... 309 Основные сильные стороны ................................................................. 310 Основные недостатки .............................................................................. 312 Заключительные замечания ................................................................. 313 Haskell .......................................................... 315 8.1. Введение в Haskell.................................................................................... 315 8.2. День 1: логический ................................................................................... 317 Выражения и простые типы.................................................................. 317 Функции ...................................................................................................... 320 Рекурсия ...................................................................................................... 322 Кортежи и списки ..................................................................................... 323 Создание списков ..................................................................................... 328 Интервью с Филиппом Уодлером (Philip Wadler) ....................... 332 Что мы узнали в первый день............................................................... 333 День 1: задания для самостоятельного решения ........................... 334 8.3. День 2: Самая сильная черта характера Спока .............................. 335 Функции высшего порядка ................................................................... 335 Частично примененные функции и карринг ................................. 338 Отложенные вычисления ...................................................................... 339 Интервью с Саймоном Пейтоном-Джонсом ................................... 342 Что мы узнали во второй день ............................................................. 344 День 2: задания для самостоятельного решения ........................... 345 8.4. День 3: Слияние разумов ....................................................................... 346 Классы и типы ........................................................................................... 346
Стр.13
Содержание  13 Монады......................................................................................................... 353 Что мы узнали в третий день ................................................................ 361 День 3: задания для самостоятельного решения ........................... 361 8.5. В заключение о Haskell ........................................................................... 362 Основные сильные стороны ................................................................. 363 Основные недостатки .............................................................................. 365 Заключительные замечания ................................................................. 366 Послесловие ................................................. 367 9.1. Модели программирования .................................................................. 367 Объектно-ориентированное программирование (Ruby, Scala) ............................................................................................................. 368 Программирование на основе прототипов (Io) ............................. 369 Логическое программирование (Prolog) .......................................... 369 Функциональное программирование (Scala, Erlang, Clojure, Haskell) ......................................................................................................... 369 Смена парадигмы ...................................................................................... 370 9.2. Параллельные вычисления ................................................................... 371 Управляемое изменение состояния.................................................... 371 Акторы в Io, Erlang и Scala .................................................................... 372 Отложенные задания............................................................................... 373 Транзакционная память.......................................................................... 373 9.3. Конструкции программирования ....................................................... 374 Генераторы списков ................................................................................. 374 Монады......................................................................................................... 374 Сопоставление ........................................................................................... 375 Унификация ............................................................................................... 376 9.4. Найдите свой стиль ................................................................................. 376 Список литературы ......................................... 378 Предметный указатель .................................... 379
Стр.14

Облако ключевых слов *


* - вычисляется автоматически
Антиплагиат система на базе ИИ