Librería Portfolio Librería Portfolio

Búsqueda avanzada

TIENE EN SU CESTA DE LA COMPRA

0 productos

en total 0,00 €

PROGRAMMING LANGUAGE EXPLORATIONS
Título:
PROGRAMMING LANGUAGE EXPLORATIONS
Subtítulo:
Autor:
TOAL, R
Editorial:
CRC PRESS
Año de edición:
2016
ISBN:
978-1-4987-3846-0
Páginas:
344
66,96 €

 

Sinopsis

Features

Explores the most modern versions of several established languages as well as several up-and-coming languages
Uses a language-by-language approach to study the programming language landscape, featuring twelve in-depth language explorations followed by a brief tour of over two dozen additional languages
Focuses on fundamental language concepts and the practices underlying language design and use
Includes end of chapter summaries, pointers to open source projects, references for further study, and motivating exercises
Provides code, together with test scripts that show how to run the examples, in an online repository at https://github.com/rtoal/ple. Errata, additional exercises, and bonus material can be found at the companion website http://rtoal.github.io/ple/


Summary

Programming Language Explorations is a tour of several modern programming languages in use today. The book teaches fundamental language concepts using a language-by-language approach. As each language is presented, the authors introduce new concepts as they appear, and revisit familiar ones, comparing their implementation with those from languages seen in prior chapters. The goal is to present and explain common theoretical concepts of language design and usage, illustrated in the context of practical language overviews.

Twelve languages have been carefully chosen to illustrate a wide range of programming styles and paradigms. The book introduces each language with a common trio of example programs, and continues with a brief tour of its basic elements, type system, functional forms, scoping rules, concurrency patterns, and sometimes, metaprogramming facilities.

Each language chapter ends with a summary, pointers to open source projects, references to materials for further study, and a collection of exercises, designed as further explorations. Following the twelve featured language chapters, the authors provide a brief tour of over two dozen additional languages, and a summary chapter bringing together many of the questions explored throughout the text.

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 practice, covers cutting-edge languages and patterns, and provides many runnable examples, all of which can be found in an online GitHub repository. The exploration style places this book between a tutorial and a reference, with a focus on the concepts and practices underlying programming language design and usage. Instructors looking for material to supplement a programming languages or software engineering course may find the approach unconventional, but hopefully, a lot more fun.



Table of Contents

Introduction
WHY STUDY PROGRAMMING LANGUAGES
PROGRAMMING LANGUAGE ELEMENTS
EVALUATING PROGRAMMING LANGUAGES
JavaScript
HELLO JAVASCRIPT
THE BASICS
CLOSURES
METHODS
PROTOTYPES
SCOPE
CALLBACKS AND PROMISES
JAVASCRIPT WRAP UP

CoffeeScript
HELLO COFFEESCRIPT
THE BASICS
NO SHADOWING?!
COMPREHENSIONS
DESTRUCTURING
EXISTENTIAL OPERATORS
COFFEESCRIPT WRAP UP

Lua
HELLO LUA
THE BASICS
SCOPE
TABLES
METATABLES
COROUTINES
LUA WRAP UP

Python
HELLO PYTHON
THE BASICS
SCOPE
PARAMETER ASSOCIATION
SPECIAL METHODS
ITERATORS AND GENERATORS
DECORATORS
PYTHON WRAP UP

Ruby
HELLO RUBY
THE BASICS
OBJECT ORIENTATION
Messaging
Encapsulation
Inheritance
Polymorphism
Singleton Classes
BLOCKS
MIXINS
ACCESS CONTROL
METAPROGRAMMING
RUBY WRAP UP

Julia
HELLO JULIA
THE BASICS
TYPES
Abstract Types
Parametric Types
Sum and Product Types
Type Annotations
Covariance, Contravariance, and Invariance
MULTIPLE DISPATCH
METAPROGRAMMING
PARALLEL COMPUTING
JULIA WRAP UP

Java
HELLO JAVA
THE BASICS
INTERFACES
STATIC TYPING
GENERICS
THREADS
METAPROGRAMMING
JAVA WRAP UP

Clojure
HELLO CLOJURE
THE BASICS
NAMESPACES
PERSISTENT DATA STRUCTURES
TRANSIENTS
SOFTWARE TRANSACTIONAL MEMORY
AGENTS
THE EXPRESSION PROBLEM
MACROS
CLOJURE WRAP UP

Elm
HELLO ELM
THE BASICS
TYPE INFERENCE
TAGGED UNIONS
RECORDS
EFFECTS
ELM WRAP UP

Erlang
HELLO ERLANG
THE BASICS
MATCHING
MESSAGING
ERLANG WRAP UP

Go
HELLO GO
THE BASICS
POINTERS
SLICES
INTERFACES
PANICS
GOROUTINES
REFLECTION
GO WRAP UP

Swift
HELLO SWIFT
THE BASICS
OPTIONALS
OPERATORS
PROTOCOLS
EXTENSIONS
SAFETY FEATURES
AUTOMATIC REFERENCE COUNTING
SWIFT WRAP UP

Additional Languages
THE CLASSICS
SYSTEMS LANGUAGES
THE ENTERPRISE
SCRIPTING
THE ML FAMILY
CONCURRENCY MATTERS
THE WEB
CRYSTALLIZATIONS OF STYLE
ESOTERIC LANGUAGES
ASSEMBLY LANGUAGES

Afterword
WHERE WE'VE BEEN
Functions
Types
Expressions
Control Flow
Concurrency
Modularity
Metaprogramming
WHERE TO GO NEXT

Appendix A ª Numbers
INTEGERS
FLOATING POINT NUMBERS
RATIOS AND DECIMALS

Appendix B ª Text
CHARACTERS, GLYPHS, AND GRAPHEME CLUSTERS
CHARACTER PROPERTIES
CHARACTER ENCODING