Название: Programming Language Explorations, 2nd Edition Автор: Ray Toal, Sage Strieker, Marco Berardini Издательство: CRC Press Год: 2024 Страниц: 408 Язык: английский Формат: pdf (true) Размер: 13.4 MB
Programming Language Explorations helps its readers gain proficiency in programming language practice and theory by presenting both example-focused, chapter-length explorations of fourteen important programming languages and detailed discussions of the major concepts transcending multiple languages. A language-by-language approach is sandwiched between an introductory chapter that motivates and lays out the major concepts of the field and a final chapter that brings together all that was learned in the middle chapters into a coherent and organized view of the field.
Each of the featured languages in the middle chapters is introduced with a common trio of example programs and followed by a tour of its basic language features and coverage of interesting aspects from its type system, functional forms, scoping rules, concurrency patterns, and metaprogramming facilities. These chapters are followed by a brief tour of over 40 additional languages designed to enhance the reader’s appreciation of the breadth of the programming language landscape and to motivate further study.
Targeted to both professionals and advanced college undergraduates looking to expand the range of languages and programming patterns they can apply in their work and studies, the book pays attention to modern programming practices, keeps a focus on cutting-edge programming patterns, and provides many runnable examples, all of which are available in the book’s companion GitHub repository. The combination of conceptual overviews with exploratory example-focused coverage of individual programming languages provides its readers with the foundation for more effectively authoring programs, prompting AI programming assistants, and, perhaps most importantly, learning—and creating—new languages.
This book aims to acquaint you with a number of programming languages and with fundamental concepts transcending multiple languages. Language tours will present these concepts augmented with plenty of runnable scripts. We hope to provide you with a foundation for more effectively authoring programs, prompting your AI programming assistants, and, perhaps most importantly, learning—and creating—new languages.
We’ve carefully chosen the order of languages to make a story out of the book. We start with Lua for its elegant design and relatively small but powerful feature set. jаvascript follows with similar features to Lua (such as first class functions and prototypal inheritance), while adding a host of modern features and a powerful event-driven, asynchronous programming model. As perhaps the world’s most popular language, jаvascript has influenced hundreds of successors, the most popular of which, TypeScript, comes next, along with an introduction to static types.
The next two languages, Python and Ruby, are general-purpose scripting languages, in which we focus on first-class types and object-oriented programming, respectively. We then encounter Java, an extraordinarily popular language in the enterprise computing space. Java was introduced along with the Java platform, which includes a virtual machine and an extensive set of powerful libraries for just about every task imaginable. Hundreds of languages are targeted to this platform, including our next case study, Kotlin. This pair of languages provides us with an opportunity to study how expressive forms in one language are improved upon in a successor language.
Next comes Julia, a modern language for scientific computing featuring multidimensional arrays and mechanisms for concurrent and distributed programming. It also introduces an approach to object orientation—multimethods—shared by the next stop on our tour, Clojure. Clojure is a modern dialect of the venerable Lisp, famous for its hygienic macros, support for functional programming, and concurrency. Next up is another functional language, Haskell, which while less popular, is essential to visit: its powerful type inference mechanism and support for pure functions and lazy computing are not found in quite the same way anywhere else on our tour. Our next language, Go, introduces explicit pointers, an interesting convention for package export, and its signature feature, the goroutine, which enables large-scale concurrent and distributed applications rather unlike those of our previous three languages.
Our last three languages place the burden of memory management knowledge on the programmer, forgoing the tracing garbage collector taken for granted in our first 11 languages. First is the venerable C, an intentionally small and unsafe system-level language, but worth studying to see low-level details every other language hides from application programmers. Next up is Swift, exemplifying many of the modern trends in programming language design—it is static, safe, and expressive—and achieves memory safety not with a garbage collector but via reference counting. The much-loved Rust closes the tour with its elegant approach to compile-time guarantees of memory and thread safety that surprisingly maintain zero-cost abstractions.
Скачать Programming Language Explorations, 2nd Edition
Внимание
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.